35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
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})
|
||
|
||
|