我已经创建了一个streamlit应用程序,它有两个独立的聊天机器人利用llamaindex。对于聊天机器人,用于与用户交互的流照明会话代码是常见的。因此,当我在两个聊天机器人之间切换时,我可以看到另一个聊天机器人的聊天。
流光的代码是
chat_engine = index.as_chat_engine(verbose=True)
if "messages" not in st.session_state.keys(): # Initialize the chat messages history
st.session_state.messages = [
{"role": "assistant", "content": "Hi, Welcome to KnowledgeGPT"},
{"role": "assistant", "content": f"Ask me questions from {file_name}"}
]
if prompt := st.chat_input("Your question"): # Prompt for user input and save to chat history
st.session_state.messages.append({"role": "user", "content": prompt})
for message in st.session_state.messages: # Display the prior chat messages
with st.chat_message(message["role"]):
st.write(message["content"])
# If last message is not from assistant, generate a new response
if st.session_state.messages[-1]["role"] != "assistant":
with st.chat_message("assistant"):
with st.spinner("Thinking..."):
response = chat_engine.chat(prompt)
st.write(response.response)
message = {"role": "assistant", "content": response.response}
st.session_state.messages.append(message) # Add response to message history
我希望会话状态在聊天机器人中维护,而不是在两个聊天机器人之间切换时。
1条答案
按热度按时间fhg3lkii1#
我重温了流光会议和理解。我只需要不断地将会话名称从st.session_state.messages更改为st.session_state。它解决了问题。