不适用模型的简易ai交互页面

不适用模型的简易ai交互页面

一.形式

image

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("我不会")

 二.增加思考等待功能

image

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

image

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

四.保存历史的聊天记录(简易聊天机器人完整版)-->不用大模型回答,固定答复

image

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
posted @ 2025-11-06 19:03  Annaprincess  阅读(4)  评论(0)    收藏  举报