不适用模型的简易ai交互页面
一.形式

import streamlit as st
st.title("测试标题")
st.divider()
prompt=st.chat_input("请输入你的问题")
if prompt:#如果问题不为空才输出答案st.chat_message("user").markdown(prompt)st.chat_message("assistant").markdown("我不会")
二.增加思考等待功能

import streamlit as st
import time
st.title("测试标题")
st.divider()
prompt=st.chat_input("请输入你的问题")
if prompt:#如果问题不为空才输出答案st.chat_message("user").markdown(prompt)#增加思考功能with st.spinner("思考中"):time.sleep(3)st.chat_message("assistant").markdown("我不会")
三.历史记录保存
问题:利用普通变量他不会保存如count,每次刷新会重新赋值=1
import streamlit as st
import time
st.title("测试标题")
st.divider()
prompt=st.chat_input("请输入你的问题")
count=1
if prompt:#如果问题不为空才输出答案st.chat_message("user").markdown(prompt)#增加思考功能with st.spinner("思考中"):time.sleep(3)st.chat_message("assistant").markdown(f"我不会{count}")count+=1
办法:用session_state

import streamlit as st
import time
st.title("测试标题")
st.divider()
prompt=st.chat_input("请输入你的问题")
if "count" not in st.session_state:st.session_state["count"]=1
if prompt:#如果问题不为空才输出答案st.chat_message("user").markdown(prompt)#增加思考功能with st.spinner("思考中"):time.sleep(3)st.chat_message("assistant").markdown(f"我不会{st.session_state['count']}")st.session_state["count"]+=1
四.保存历史的聊天记录(简易聊天机器人完整版)-->不用大模型回答,固定答复

import streamlit as st
import time
st.title("简单的聊天机器人")
st.divider()
if "count" not in st.session_state:st.session_state["count"] = 1
#st.session_state["message"]是形如[{"role":"user/assistant","content":内容},"role":"user/assistant","content":内容}... ]列表嵌套字典
if "message" not in st.session_state:st.session_state["message"]=[]
prompt=st.chat_input("请输入问题")
if prompt:st.session_state["message"].append({"role":"user","content":prompt})#输出历史记录(包含问题和答复for message in st.session_state["message"]:st.chat_message(message["role"]).markdown(message["content"])#答复等待with st.spinner("思考中"):time.sleep(2)st.chat_message("assistant").markdown(f"我不会{st.session_state["count"]}")st.session_state["message"].append({"role":"assistant","content":f"我不会{st.session_state["count"]}"})st.session_state["count"]+=1