Spaces:
Sleeping
Sleeping
import streamlit as st | |
from utils import get_chat_response | |
from langchain.memory import ConversationBufferMemory | |
st.title("聊天小助手") | |
with st.sidebar: | |
openai_api_key = st.text_input("请输入OpenAI API密钥:", type= "password") | |
st.markdown("[获取 OpenAI API 密钥](https://platform.openai.com/docs/examples)") | |
if "memory" not in st.session_state: | |
st.session_state["memory"] = ConversationBufferMemory(return_messages=True) | |
st.session_state["messages"] = [{"role":"ai", | |
"content":"你好,我是你的AI助手,有什么可以帮你的吗?" }] | |
for message in st.session_state["messages"]: | |
st.chat_message(message["role"]).write(message["content"]) | |
prompt = st.chat_input() | |
if prompt: | |
if not openai_api_key: | |
st.info("请输入你的OpenAI API Key") | |
st.stop | |
st.session_state["messages"].append({"role":"human", "content":prompt}) | |
st.chat_message("human").write(prompt) | |
with st.spinner("AI正在思考,请稍等..."): | |
response = get_chat_response(prompt, st.session_state["memory"], openai_api_key) | |
msg = {"role": "ai", "content": response} | |
st.session_state["messages"].append(msg) | |
st.chat_message("ai").write(response) | |
submit = st.button("开启新一轮对话") | |
if submit: | |
st.session_state["memory"] = ConversationBufferMemory(return_messages=True) | |
st.session_state["messages"] = [{"role":"ai", "content":"你好,我是你的AI助手,有什么可以帮你的吗?"}] | |
st.experimental_rerun() | |