从零到一玩转 Langchain-Chatchat:4 步搭起私有化本地知识库问答
2026/9/1 21:07:43 网站建设 项目流程

从零到一玩转 Langchain-Chatchat:4 步搭起私有化本地知识库问答

【免费下载链接】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 就是干这件事的:一套基于 Langchain 与 ChatGLM、Qwen、Llama 等开源大语言模型的本地知识库问答系统,你喂文档、它答题,模型跑在本地,整条链路可以完全离线。

这篇文章写给完全没碰过它的你。不需要懂向量库,照着走一遍,就能得到一个"只根据你自己的文档回答"的问答系统。

先看清它到底在做什么

原理一句话就够:你的文档被切成小段、转成向量存起来;你提问时,系统先从向量库捞出最相关的几段,连同问题一起塞进提示词,再交给大模型作答。所以答案出自你的文档,而不是模型的"记忆"。

动手前,先确认两件事 ⚠️

  • Python 版本在 3.8 到 3.11 之间,Windows、macOS、Linux 均可
  • 没有独立显卡也能跑,只是模型选小一点;有 8G 以上显存则能流畅跑主流的 7B 模型

特别提醒一个容易踩的坑:Langchain-Chatchat 和模型推理框架请各用各的虚拟环境,混装最容易出依赖冲突,这也是大部分"莫名报错"的源头。

里程碑一 · 搭好骨架:安装与初始化

先把本体装进来:

pip install langchain-chatchat -U

如果你打算搭配 Xinference 框架加载模型,多装一份附加依赖:

pip install "langchain-chatchat[xinference]" -U

成功标志:终端最后显示Successfully installed langchain-chatchat-...,全程没有ERROR

接下来指定数据要落在哪里(不设置就默认放在当前目录),然后跑初始化:

# Linux / macOS export CHATCHAT_ROOT=/path/to/chatchat_data # Windows set CHATCHAT_ROOT=C:\chatchat_data chatchat init

这一条命令会建好数据目录、复制内置的 samples 示例知识库,并落下一批带默认值的 yaml 文件。成功标志:指定目录下多了config/data/,config 里躺着model_settings.yamlbasic_settings.yamlkb_settings.yaml三个文件。

现在先别改它们,等模型启动后只动其中两个字段。

里程碑二 · 接入大脑:用 Xinference 拉起来模型

Langchain-Chatchat 自己不去加载模型,而是通过模型推理框架与模型"通话"。这里以 Xinference 为例:跨平台、模型库全。

pip install "xinference[all]" xinference -H 0.0.0.0

成功标志:浏览器打开 http://127.0.0.1:9997 能看到 Xinference 的模型管理页面。

在页面上启动两个模型:

  1. 一个 LLM,比如qwen1.5-7b-chat或 GLM-4 系列
  2. 一个 Embedding 模型,比如bge-large-zh-v1.5——它是"向量化器",建知识库离不开它

首次启动会自动下载模型文件,耐心等。注意记下列表里显示的模型 uid(ID),马上要用。

然后打开model_settings.yaml,把这两行改成你启动的模型 uid:

DEFAULT_LLM_MODEL: qwen1.5-chat DEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5

同文件里LLM_MODEL_CONFIG的 llm_model、action_model 以及MODEL_PLATFORMS的平台信息也要同步指向你的模型。文件内自带中文注释,照注释改即可;保存后无需重启,配置会自动刷新。

里程碑三 · 喂上知识:一次性建好向量库 🔍

现在到了最见成效的一步。先确认 Xinference 里 Embedding 模型还在运行,然后执行重建:

chatchat kb -r

内置 samples 知识库有 47 个文件,CPU 上需要几分钟。跑完会看到一份类似这样的报表:

知识库名称 :samples 知识库类型 :faiss 向量模型 :bge-large-zh-v1.5 文件总数量 :47 入库文件数 :42 知识条目数 :740

成功标志:知识条目数是非零数字,说明文档确实进了向量库。

如果卡住了:Windows 下卡死不动,多半是python-magic-bin依赖的问题,先pip uninstall python-magic-bin再装回兼容版本pip install "python-magic-bin==0.4.14",然后重跑chatchat kb -r即可。

向量库建好后,日常管理都在 WebUI 里做:上传新文档、调整切分参数、按源文件重建,一个页面全搞定。

里程碑四 · 跑通闭环:启动服务打开 WebUI

chatchat start -a

成功标志:终端打印出http://127.0.0.1:8501开头的本地地址,浏览器打开就是 Langchain-Chatchat 主界面。

想从别的机器用 IP 访问的话,把basic_settings.yaml里的DEFAULT_BIND_HOST改成0.0.0.0,默认的 127.0.0.1 只允许本机访问。

不想逐项装依赖的,可以跳过上面全部步骤直接用 Docker Compose 一键拉起,参考 Docker 部署指引。

第一次实测:问一个只有文档能答的问题

点左侧"对话"入口,把模式切换成"知识库问答",选中samples知识库,输入"用一句话介绍Prompt工程"。

回答下方会挂着一个可展开的"知识库匹配结果",出处标得明明白白——哪篇文档、哪一段,这就是它和普通闲聊最直观的区别:答案是从你的文档里"读"出来的。

如果回答是"根据已知信息无法回答该问题",说明问题超出了知识库范围。这是设计使然,反而是好事:它不瞎编。

不止问答:还能往哪走

闭环跑通之后,顺手看看它的边界。

  • Agent 工具调用:对话页勾选"启用Agent"再挑几个工具(天气查询、网络检索等),模型会自己规划调用
  • 数据库对话:接上数据库让模型用 SQL 作答,配置说明见 数据库对话配置
  • 多模态:接入 qwen-vl-chat 这类视觉模型,图片也能问

配置项细节、开发部署等更深入的内容,可以看项目内的 配置说明 与开发指南。

系统跑起来了,文档也进库了,第一个"只有你的文档能答"的问题有了出处——接下来,换成你自己的文档,问你的问题。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询