在Streamlit中使用Llama3模型时出现读取超时问题
问题解决思路
1. 直接运行python .\app.py的报错问题
这是预期行为,Streamlit应用依赖自身运行时上下文,st.session_state仅在通过streamlit run .\app.py启动时才会被初始化。直接用Python解释器执行脚本,不会加载Streamlit的运行环境,因此必然触发AttributeError。必须始终使用streamlit run命令启动应用,该问题无需额外处理。
2. httpx.ReadTimeout: timed out 超时问题
结合你的CPU环境(8GB内存的Windows笔记本),性能不足是核心诱因,可从以下方向优化:
使用量化版Llama3模型
Ollama提供了不同量化级别的Llama3模型,比如llama3:8b-instruct-q4_0(4-bit量化),相比全精度模型,CPU运行速度会大幅提升。执行命令拉取量化模型:ollama pull llama3:8b-instruct-q4_0随后修改
app.py中指定模型的代码,将llama3替换为llama3:8b-instruct-q4_0。调整LlamaIndex检索与推理参数
- 减小文本分块大小:在创建分块器的代码中,降低
chunk_size(比如从默认1024改为512),缩短单块文本长度。 - 减少检索匹配数量:调整
VectorIndexRetriever的top_k参数(比如从5改为3),减少模型需要处理的文本片段数量,降低推理压力。
- 减小文本分块大小:在创建分块器的代码中,降低
延长httpx超时时间
在代码中找到调用Ollama API的部分,手动设置更长的超时时间,示例:llm = Ollama(model="llama3:8b-instruct-q4_0", timeout=600) # 设置10分钟超时重启Ollama服务
若Ollama后台服务出现响应延迟,可在Windows任务管理器中结束ollama.exe进程,重新启动Ollama即可。
内容的提问来源于stack exchange,提问作者e.francis19
相关产品推荐
相关产品推荐

