摘要
1) 一句话总结 Langchain-Chatchat 是一款基于 Python 和 Langchain 框架的开源(Apache-2.0)本地知识库问答应用,专注于提供支持纯离线部署、多模型接入的 RAG(检索增强生成)与 Agent 解决方案。
2) 核心要点
- 开源与热度:采用 Apache-2.0 协议,GitHub 拥有超 3.7 万 Stars,主要开发语言为 Python。
- 核心功能:提供完整的 RAG 流程(涵盖文件加载、分割、向量化、BM25+KNN检索及生成),支持构建保障数据隐私的私有知识库问答系统。
- 广泛的模型接入:支持 Xinference、Ollama 等本地推理框架,以及通过 One API 接入 OpenAI、Claude、智谱等在线大模型,所有接口均兼容 OpenAI SDK 标准。
- 多模态与 Agent 支持:支持图片对话、搜索引擎、数据库及文献检索等工具交互,并针对 ChatGLM3 和 Qwen 模型优化了 Agent 任务处理能力。
- 硬件与跨平台兼容:支持 Windows、macOS、Linux 系统(Python 3.8-3.11),可在 CPU、GPU、NPU、MPS 等多种异构硬件上运行。
- 开箱即用:提供基于 Streamlit 的可视化 WebUI,无需进行模型微调或训练即可直接使用,支持 pip、源码及 Docker 多种部署方式。
3) 风险与不足
- 依赖冲突风险:与模型部署框架(如 Xinference)共用环境易产生冲突,强烈建议分别部署在独立的 Python 虚拟环境中。
- 网络访问限制:默认监听地址为
127.0.0.1(仅限本机访问),需手动修改配置文件为0.0.0.0才能对外提供服务。 - Windows 兼容性问题:在 Windows 环境下构建知识库时,可能因
python-magic-bin依赖导致进程卡死,需手动重新安装特定版本。 - 版本迁移风险:0.3.x 版本架构变化较大,旧版(0.2.x)迁移不保证 100% 兼容,官方强烈建议重新部署而非直接升级。
功能与定位
Langchain-Chatchat(原名 Langchain-ChatGLM)是一个基于大语言模型(如 ChatGLM、Qwen、Llama 等)与 Langchain 框架实现的本地知识库问答应用。其核心目标是提供一套对中文场景与开源模型支持友好、可完全离线运行的 RAG(检索增强生成)与 Agent 解决方案。
典型使用场景
- 企业/个人私有知识库问答:利用本地文档构建离线问答系统,在保障数据隐私的前提下进行信息检索与问答。
- 多模态与多工具交互:支持图片对话(推荐使用 qwen-vl-chat 等模型)、搜索引擎对话、数据库对话、ARXIV 文献检索及 Wolfram 运算。
- 智能体(Agent)任务处理:通过 LLM 自动或手动调用外部工具完成复杂任务(针对 ChatGLM3 和 Qwen 模型进行了专门优化)。
核心功能
- 完整的 RAG 流程:涵盖文件加载、文本分割、向量化、问句向量化、相似度检索(支持 BM25+KNN 等多种检索方式),并结合 Prompt 交由 LLM 生成回答。
- 广泛的模型与框架接入:
- 本地部署框架:支持接入 Xinference、Ollama、LocalAI、FastChat 等主流推理框架,可加载 LLM、Embedding、Rerank 及多模态模型。
- 在线 API 接入:支持通过 One API 接入 OpenAI、Azure OpenAI、Anthropic Claude、智谱清言、百川等在线大模型。
- 多类型对话支持:涵盖基础 LLM 对话、知识库对话、文件对话(统一为 File RAG 功能)、文生图等。
- 可视化交互界面:提供基于 Streamlit 的 WebUI,支持多会话管理、自定义系统提示词及本地知识库管理。
特色与差异点
- 纯离线私有部署:支持市面主流开源 LLM、Embedding 模型与向量数据库,可实现全流程断网运行,无需依赖外部 API。
- 硬件兼容性广:支持在 CPU、GPU、NPU、MPS 等多种异构硬件条件下运行。
- 接口标准化:所有模型接入均兼容 OpenAI SDK 接口标准。
- 开箱即用:项目本身不涉及模型微调或训练过程,直接通过 RAG 技术提升问答准确性(但也兼容用户自行微调后的模型)。
使用方式概览
- 环境要求:支持 Python 3.8-3.11 环境,兼容 Windows、macOS、Linux 操作系统。
- 安装方式:提供
pip install langchain-chatchat -U(支持附加特定框架依赖如[xinference])、源码部署及 Docker 镜像部署(推荐使用 docker-compose)。 - 初始化与启动流程:
- 启动第三方模型推理框架(如 Xinference)并加载所需模型。
- 使用
chatchat init初始化配置与数据目录,生成本地yaml配置文件。 - 修改配置文件以匹配选用的模型推理框架、模型名称和知识库路径。
- 使用
chatchat kb -r初始化并构建知识库。 - 使用
chatchat start -a启动 WebUI 服务。
限制与注意事项
- 环境隔离:强烈建议将 Langchain-Chatchat 与模型部署框架(如 Xinference)放在不同的 Python 虚拟环境中(如 conda, venv)以避免依赖冲突。
- 网络访问限制:默认监听地址为
127.0.0.1,仅限本机访问。如需局域网或公网访问(如部署在 Linux 服务器上),需在配置文件中将监听地址修改为0.0.0.0。 - Windows 兼容性问题:在 Windows 下新建虚拟环境构建知识库时,可能会遇到
python-magic-bin依赖导致进程卡死的问题,需重新安装特定版本的该依赖包予以解决。 - 版本迁移风险:0.3.x 版本架构变化较大,官方强烈建议重新部署而非直接升级,旧版(0.2.x)迁移不保证 100% 兼容。