LocalGPT 知识库配置怎么让本地文档可问答
LocalGPT 知识库配置的本质,是把本地文档切分、向量化后存入向量库,再让本地大模型基于检索到的片段回答。
整个过程不依赖云端 API,但需要先准备好模型文件和嵌入模型,并正确设置 .env 中的路径。
下面按实际配置顺序说明关键步骤和验证方法。
先确认模型和嵌入模型是否就位
LocalGPT 需要两类模型:生成回答的 LLM 和把文本转成向量的嵌入模型。
如果使用默认配置,通常需要把模型文件放在 models/ 目录下,例如 GGUF 格式的 LLM 文件和嵌入模型文件。
检查目录结构:
ls models/
预期能看到类似 ggml-model-q4_0.bin 和嵌入模型文件。
如果目录为空,需要先下载模型;
具体文件名以你使用的 LocalGPT 版本和文档为准,不要随意改名后直接引用。
修改 .env 中的关键路径
LocalGPT 的配置集中在项目根目录的 .env 文件。
用编辑器打开后,重点检查以下参数:
MODEL_PATH=models/你的LLM模型文件名
EMBEDDINGS_PATH=models/你的嵌入模型文件名
PERSIST_DIRECTORY=db
MODEL_PATH指向生成回答的模型文件。EMBEDDINGS_PATH指向嵌入模型文件,负责把文档转成向量。PERSIST_DIRECTORY是向量库的存储目录,首次 ingest 后会自动生成。
如果路径写错,运行时会提示找不到模型或加载失败。
修改后保存,并确认 .env 文件在项目根目录下,而不是子目录。
把文档放进指定目录并执行入库
LocalGPT 默认从 SOURCE_DIRECTORY 读取文档,常见默认值是 SOURCE_DOCUMENTS。
把需要问答的 PDF、TXT 或 Markdown 文件放入该目录:
mkdir -p SOURCE_DOCUMENTS
cp 你的文档.pdf SOURCE_DOCUMENTS/
然后执行入库命令:
python ingest.py
执行过程中会看到文档切分和向量化进度。
如果终端停在加载嵌入模型处,通常是模型文件路径不对或文件损坏;
如果提示缺少依赖,先按项目 requirements.txt 安装依赖。
入库完成后,db 目录下会生成向量库文件,说明索引已经建立。
用提问验证检索是否生效
入库完成后,运行问答命令:
python run_localGPT.py
程序启动后会提示输入问题。
问一个文档中明确出现过的内容,例如文档里写了“备份策略是每日一次”,就问“备份策略是什么”。
如果回答能引用该内容,说明知识库配置生效。
如果回答与文档无关,先检查两点:一是 SOURCE_DOCUMENTS 里是否确实有文档,二是 python ingest.py 是否成功执行完毕。
修改文档后需要重新执行 ingest,否则向量库不会更新。
容易踩坑的几个配置点
- 模型格式不匹配:LocalGPT 不同版本对模型格式要求不同,GGUF 和 GGML 不能混用。下载模型时看清项目文档要求的格式。
- 嵌入模型缺失:只放了 LLM 模型,没有放嵌入模型,ingest 会失败。嵌入模型负责检索,不能省略。
- 路径使用相对路径但工作目录不对:建议在项目根目录下执行命令,避免
.env中的相对路径解析到错误位置。 - 重复入库前未清理旧库:如果文档大幅更换,可以删除
db目录后重新 ingest,避免旧向量干扰检索。
常见疑问
问:必须联网下载模型吗?
答:LocalGPT 本身不要求联网运行,但模型文件需要提前获取。可以从模型发布页下载后放入本地目录,之后问答过程不依赖外网。
问:支持哪些文档格式?
答:常见支持 PDF、TXT、Markdown 等,具体以项目当前版本的加载器为准。扫描版 PDF 如果没有文本层,需要先做 OCR 再入库。
问:入库后新增文档怎么办?
答:把新文档放入 SOURCE_DOCUMENTS 后重新执行 python ingest.py。如果发现检索结果混乱,可以清空 db 目录后完整重建索引。
配置完成后,建议先用一篇内容明确的短文档测试问答,确认链路通畅后再批量导入正式资料。
LocalGPT 知识库配置的核心不在参数多少,而在模型路径、嵌入模型和入库命令三者一致且可验证。