鱼C论坛

 找回密码
 立即注册
查看: 131|回复: 10

[已解决][Streamlit] 求助, Streamlit流式输出后刷新就不再输出了

[复制链接]
回帖奖励 30 鱼币 回复本帖可获得 10 鱼币奖励! 每人限 1 次
发表于 5 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是这样的 我用Python简单的写了一个调用本地Ollama的函数
用Streamlit简单搓了一个框架
但是我用stream_write输出之后 输入框回车刷新了代码
然后之前的流式输出就不见了
想了半天也没想到到底怎么把Streamlit流式输出后的结果留下来
最佳答案
5 天前
在使用 Streamlit 时,每次用户交互(比如输入框中按回车)都会导致页面刷新,从而导致之前的输出消失。要解决这个问题,可以利用 Streamlit 的状态管理功能来保存流式输出的结果,这样刷新页面时可以重新显示。

以下是一个简单的步骤来实现这一点:

1. **使用 `st.session_state`**:这个对象可以保存数据,在页面刷新时仍然保留。需要将流式输出结果保存到 `session_state` 中。

2. **更新代码示例**:

import streamlit as st

   # 初始化 session_state,如果没有,设置为空列表
   if 'streamed_data' not in st.session_state:
       st.session_state['streamed_data'] = []

   # 模拟流式输出的函数
   def simulate_stream_output():
       # 这里可以是你的流式输出逻辑
       st.session_state['streamed_data'].append("新流数据")

   # 定义输入框
   user_input = st.text_input("输入后按回车进行刷新:")

   # 每当输入框更新时调用流式输出逻辑
   if st.button("流式输出"):
       simulate_stream_output()

   # 显示保存的流式输出
   for data in st.session_state['streamed_data']:
       st.write(data)

3. **要点解释**:
   - `st.session_state` 用于在刷新中保持状态。
   - 每次用户点击“流式输出”按钮时,新的流数据会被添加到 `session_state` 中。
   - 每次刷新页面时,都会从 `session_state` 中重新读取并显示所有流式输出。

通过这种方式,你可以在刷新页面后保持流式输出的持久化显示。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层    本楼为最佳答案   
在使用 Streamlit 时,每次用户交互(比如输入框中按回车)都会导致页面刷新,从而导致之前的输出消失。要解决这个问题,可以利用 Streamlit 的状态管理功能来保存流式输出的结果,这样刷新页面时可以重新显示。

以下是一个简单的步骤来实现这一点:

1. **使用 `st.session_state`**:这个对象可以保存数据,在页面刷新时仍然保留。需要将流式输出结果保存到 `session_state` 中。

2. **更新代码示例**:

import streamlit as st

   # 初始化 session_state,如果没有,设置为空列表
   if 'streamed_data' not in st.session_state:
       st.session_state['streamed_data'] = []

   # 模拟流式输出的函数
   def simulate_stream_output():
       # 这里可以是你的流式输出逻辑
       st.session_state['streamed_data'].append("新流数据")

   # 定义输入框
   user_input = st.text_input("输入后按回车进行刷新:")

   # 每当输入框更新时调用流式输出逻辑
   if st.button("流式输出"):
       simulate_stream_output()

   # 显示保存的流式输出
   for data in st.session_state['streamed_data']:
       st.write(data)

3. **要点解释**:
   - `st.session_state` 用于在刷新中保持状态。
   - 每次用户点击“流式输出”按钮时,新的流数据会被添加到 `session_state` 中。
   - 每次刷新页面时,都会从 `session_state` 中重新读取并显示所有流式输出。

通过这种方式,你可以在刷新页面后保持流式输出的持久化显示。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 5 天前 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
懂了 下次有问题问AI
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层

回帖奖励 +10 鱼币

6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层

回帖奖励 +10 鱼币

我是人,我赞同最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 前天 08:22 | 显示全部楼层

回帖奖励 +10 鱼币

大气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 前天 17:16 | 显示全部楼层

回帖奖励 +10 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 前天 20:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 17:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表