From 350b5f661133db591cf2678bc787b00b265ebde6 Mon Sep 17 00:00:00 2001 From: hebaodan409 <3022723547@qq.com> Date: Sat, 21 Mar 2026 14:21:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=E3=80=8C/=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01.py | 12 ++++++++++++ 02.py | 5 +++++ 03.py | 15 +++++++++++++++ 04.py | 31 +++++++++++++++++++++++++++++++ 05.py | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 97 insertions(+) create mode 100644 01.py create mode 100644 02.py create mode 100644 03.py create mode 100644 04.py create mode 100644 05.py diff --git a/01.py b/01.py new file mode 100644 index 0000000..ce5b60a --- /dev/null +++ b/01.py @@ -0,0 +1,12 @@ +import streamlit as st + +st.title("Streamlit 示例") + +st.write("这是一个简单的 Streamlit 应用程序。") + +st.markdown("#这是一个一级标签") +st.markdown("##这是一个二级标签") +st.markdown("###这是一个三级标签") +st.markdown("####这是一个四级标签") +st.markdown("#####这是一个五级标签") +st.markdown("这是正文") \ No newline at end of file diff --git a/02.py b/02.py new file mode 100644 index 0000000..8b4eb2f --- /dev/null +++ b/02.py @@ -0,0 +1,5 @@ +import streamlit as st + +user_data = [{'编号': 1, '姓名': '张三', '年龄': 18},{'编号': 2, '姓名': '李四', '年龄': 19},{'编号': 3, '姓名': '王五', '年龄': 20}] + +st.table(user_data) \ No newline at end of file diff --git a/03.py b/03.py new file mode 100644 index 0000000..37f940c --- /dev/null +++ b/03.py @@ -0,0 +1,15 @@ +import streamlit as st + +st.text_input(label="姓名") + +st.text_input(label="年龄") + +st.text_input(label="密码", type="password") + +st.text_input(label="数字") + +st.number_input(label="日期") + +st.date_input(label="时间") + +st.text_input("时间") \ No newline at end of file diff --git a/04.py b/04.py new file mode 100644 index 0000000..0235443 --- /dev/null +++ b/04.py @@ -0,0 +1,31 @@ +import streamlit as st +from deepseek import get_response +# 会话管理状态:在程序执行过程中,无论代码重新运行多少次,会话状态里面的变量都会保存 + +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方法,获取大模型的回复 + with st.spinner("正在思考中..."): + response = get_response(st.session_state.messages) + #4 把大模型的回复添加到会话状态里面messages中 + st.session_state.messages.append({"role": "assistant", "content": response}) + #5 在网页上渲染大模型的回复 + with st.chat_message("assistant"): + st.write(response) + diff --git a/05.py b/05.py new file mode 100644 index 0000000..3506689 --- /dev/null +++ b/05.py @@ -0,0 +1,34 @@ +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}) + +