You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit聊天应用会话变量不持久,单词计数无法累加问题排查

问题原因及解决方法

问题出在每次运行main()函数时都会强制重置会话变量。Streamlit的运行机制是:用户每一次交互(比如发送提问、触发页面刷新)都会重新执行整个脚本,包括main()函数内的所有代码。你在main()开头直接赋值st.session_state['words'] = 0,相当于每次交互都把计数归零,自然只能看到单次问答的单词数,无法累加总数。

解决步骤:

  • 将会话变量的初始化改为仅在首次运行时执行,通过判断键是否存在来避免重复重置:
    if 'words' not in st.session_state:
        st.session_state['words'] = 0
    
  • 保留后续计算单次问答单词数wd_cnt,并执行st.session_state.words += wd_cnt的逻辑,这样每次交互都会累加总数,不会被重置。

内容的提问来源于stack exchange,提问作者mrgou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:13:09