Files
hpme/05.py

35 lines
1.4 KiB
Python
Raw Normal View History

2026-03-21 14:21:09 +08:00
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})