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

基于Streamlit实现PDF对话时遇Segmentation fault:11致应用无法运行

Segmentation fault: 11 错误含义及解决办法

错误含义

Segmentation fault: 11是操作系统抛出的内存访问错误,意味着程序试图访问不属于它的内存区域(比如越界访问、访问已释放的内存)。在Python场景下,这类错误大多是依赖的底层C扩展模块(比如Chromadb、SQLite相关组件)存在兼容性问题,或是二进制包与当前Python版本、系统环境不匹配导致的。

针对你的场景的解决步骤

1. 修正OpenAI模型调用错误

你的代码中用langchain.llms.OpenAI调用gpt-3.5-turbo是错误的:OpenAI类对应OpenAI的补全模型(如text-davinci-003),而gpt-3.5-turbo是聊天模型,需要用ChatOpenAI类。修改代码如下:

  • 替换导入语句:
    from langchain.chat_models import ChatOpenAI
    
  • 修改查询时的LLM初始化:
    response = index.query(llm=ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.2), question=prompt, chain_type='stuff')
    

2. 修复Chromadb兼容性问题

Chromadb是引发这类段错误的常见原因,尤其在Mac+Python3.10环境下,建议指定稳定版本安装:

pip install chromadb==0.4.15

3. 安装Watchdog优化环境

按照终端提示完成安装,避免潜在的文件监听问题:

xcode-select --install
pip install watchdog

4. 用虚拟环境隔离依赖

全局Python环境的包冲突也可能引发这类问题,创建并激活虚拟环境后重新安装所有依赖:

# 创建虚拟环境
python3 -m venv pdf-query-env
# 激活环境(Mac/Linux)
source pdf-query-env/bin/activate
# 安装依赖
pip install langchain streamlit pypdf openai chromadb==0.4.15 tiktoken

5. 验证PDF文件路径

确保代码中的<PDF file>是正确的相对路径或绝对路径,比如./sample.pdf或者/Users/xxx/Documents/test.pdf,避免文件加载异常引发连锁问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:24:56