30分钟搭好本地知识库问答:Langchain-Chatchat 完整部署指南
【免费下载链接】Langchain-ChatchatLangchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat
Langchain-Chatchat 是一套本地知识库问答系统,让 ChatGLM、Qwen 等大模型基于你的私有文档回答问题,可完全离线运行。读完本文,你能在自己的机器上完成环境准备、首次启动、导入私有资料,并开始知识库问答。
五步命令跑通服务
这个项目 0.3.x 版本起不直接加载模型,而是靠 Xinference、Ollama 等推理框架托管模型。两个部分建议放在不同的 Python 虚拟环境,避免依赖冲突。
第一步,装主程序,要求 Python 3.8–3.11:
pip install langchain-chatchat -U第二步,单独的环境里装模型推理框架并启动。以 Xinference 为例,它能加载 GLM-4、Qwen 等对话模型和 Embedding 模型:
pip install xinference --force xinference-local等 Xinference 页面里 LLM 和 Embedding 两类模型都加载完成后,回到 chatchat 环境执行初始化,它生成 model_settings、basic_settings、kb_settings 三个配置文件,并复制 samples 示例知识库:
chatchat init打开 model_settings.yaml,把 DEFAULT_LLM_MODEL、DEFAULT_EMBEDDING_MODEL 改成你加载的模型名,MODEL_PLATFORMS 里填上平台地址(Xinference 默认 http://127.0.0.1:9997/v1)。
第三步,为 samples 知识库建向量库,日志打印出知识条目数即成功:
chatchat kb -r最后一步,同时启动 API 服务和 WebUI:
chatchat start -a这就是启动成功后的主界面。左侧面板选"LLM对话"模式和模型,右侧输入问题即可得到第一个结果。
把私有文档变成可检索的知识库
切到左侧导航的"知识库管理"页,新建一个知识库,向量库类型用默认的 FAISS 即可。⚠️ 上传前确认 Embedding 模型仍在运行。
图中中间的"上传知识文件"区域就是放你自己数据的地方。支持 txt、md、pdf、docx、csv、xlsx 和带 OCR 的图片,单文件 200MB 以内,拖拽或点选都行。
导入时有两个参数要注意:
- 单段文本最大长度:文件切分后每段的上限,越短检索越准,但上下文越碎
- 相邻文本重合长度:段与段之间保留的重叠,防止一句话在切分处被截断
点"添加文件到知识库",等向量化完成。回到"对话"页,模式改"知识库问答",选中你的知识库即可提问:
答案下方的"知识库匹配结果"会展开检索到的源文件片段,点开核对,就能判断回答是否真的出自你的文档。
调参让回答更贴合数据
对话页左侧的常用参数,调高或调低的效果各不相同:
- Temperature:调高表达更多样、易跑题;调低更稳定贴题。知识库问答建议 0.1–0.3
- 历史对话轮数:调高模型携带的上下文更多、连贯性更好,但更耗 token;调低响应快但可能丢上下文
- 匹配知识条数:调高检索覆盖更广,适合需要跨文件归纳的问题;调低答案更聚焦
- 知识匹配分数阈值:调高只采纳高相关片段,噪音少;调低则可能混入无关内容
每调一次就拿同一个问题对比验证。若回答总引用不到你的文档,先调大匹配条数,再检查阈值。
处理常见卡点
其他设备访问不了 WebUI现象:本机 localhost 正常,别的机器访问超时。原因:默认监听本地回环地址。处理:basic_settings.yaml 中把 DEFAULT_BIND_HOST 改为 0.0.0.0 后重启。
知识库初始化卡住现象:chatchat kb -r 长时间无输出,新虚拟环境常见。原因:python-magic-bin 依赖冲突。处理:卸载后重装同版本的 python-magic-bin,再重建知识库。
对话超时现象:模型加载慢、对话中途报错。原因:默认请求超时 300 秒。处理:调大 basic_settings.yaml 的 HTTPX_DEFAULT_TIMEOUT。
模型下载缓慢现象:Xinference 拉取模型很慢。原因:默认源速度有限。处理:手动下载模型文件,启动 Xinference 后用 tools/model_loaders/xinference_manager.py 指定本地路径。
下一步可以做什么
跑通闭环后,建议按方向继续:
- 用 API 把问答能力接进你自己的系统:docs/contributing/api.md
- 想在服务器上一键部署:docs/install/README_docker.md
- 想改代码或加功能:docs/contributing/README_dev.md
更多配置项都带中文注释,直接打开对应 yaml 阅读即可。
【免费下载链接】Langchain-ChatchatLangchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考