import streamlit as st from gitdb.pack import write_stream_to_pack from deepseek import get_response_stream # 会话管理状态:在程序执行过程中,无论代码重新运行多少次,会话状态里面的变量都会保存 st.title("黑马智聊机器人") # st.session_state 对象,本质就是json对象字典, if "messages" not in st.session_state: st.session_state["messages"] = [{"role": "assistant", "content": "你好,我是黑马智聊机器人,有什么可以帮助你的么?"}] for message in st.session_state.messages: with st.chat_message(message["role"]): st.write(message["content"]) # 聊天输入 user_input = st.chat_input() #你好 if user_input: #1 把用户的输入添加到会话状态里面messages中 st.session_state.messages.append({"role": "user", "content": user_input}) #2 在网页上渲染用户输入 with st.chat_message("user"): st.write(user_input) #3 调用deepseek.py中的get_response方法,获取大模型的回复 # 调用get_response_stream方法,流式获取大模型的回复 response = get_response_stream(st.session_state.messages) with st.chat_message("assistant"): st.write_stream(response) #4 把大模型的回复添加到会话状态里面messages中 st.session_state.messages.append({"role": "assistant", "content": response})