Ссылка выше — это код GitHub приложения чат-бота, использующегоstreamlit. Хотя он работает нормально, у меня есть несколько вопросов относительно Streamlit.
- Какова цель фразы «если «сообщений» нет в st.session_state:» ?
Почему я не могу просто использовать st.session_state['messages'] = [{'role': 'assistant', 'content': 'Hello?'}]
Потому что, когда я запускаю приложение впервые, я думаю, очевидно, что сообщения нет. Так какой в этом смысл? - Я не понимаю, почему этот код должен быть в операторе if. Насколько я знаю, если оператор выполняется один раз. Но в приложенииstreamlit оно запускается несколько раз
и продолжает диалог. Я предполагаю, что внутри или снаружи оператора if должен быть цикл for, но без него он работает нормально. Можете ли вы объяснить, почему?
st.session_state['messages'].append({'role': 'user', 'content': prompt})
st.chat_message('user').write(prompt)
response = client.chat.completions.create(
model='gemma2-9b-it',
messages=context + st.session_state['messages']
)
msg = response.choices[0].message.content
st.session_state['messages'].append({'role': 'assistant', 'content': msg})
st.chat_message('assistant').write(msg)
Подробнее здесь: https://stackoverflow.com/questions/789 ... hatbot-app