playwithai / app.py
yy0511's picture
Add application file
558803b
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()