本系列第一篇,我们将从项目背景、目标定位、核心架构、使用场景出发,全面剖析 Langchain-Chatchat 项目的技术基础与应用潜力,为后续实战打下坚实基础。
一、项目简介:Langchain-Chatchat 是什么?
Langchain-Chatchat (前身为 Langchain-ChatGLM)是一个开源的本地部署智能问答系统,基于 LangChain 框架和国产大模型(如 ChatGLM、Qwen、GLM-4)构建,支持中文场景,致力于打造离线可用、安全可控的企业级知识问答系统(KBQA)。
✅ 项目亮点
特性 | 说明 |
---|---|
📚 本地知识库问答(RAG) | 支持任意文档接入,自动切分、向量化、检索、生成答案 |
💡 LLM 模型灵活接入 | 可接入 ChatGLM、GLM-4、Qwen、Llama3、OpenAI API |
🧠 多 Agent 工具支持 | 支持调用数据库、文献(Arxiv)、Wolfram Alpha、Text2Image 等工具 |
🎛️ 多前端交互 | 提供 FastAPI 接口 + Streamlit Web UI |
💾 离线部署 | 完全本地运行,适配 CPU/GPU,无需联网也可运行 |
🔧 模块化扩展性 | 拥抱 Langchain 架构,便于自定义 Chain/Agent/工具组件 |
二、项目定位:解决哪些核心问题?
Langchain-Chatchat 聚焦以下关键痛点:
-
开源中文大模型应用门槛高 → 提供 ChatGLM/Qwen 等模型的统一接入封装。
-
构建知识库问答系统困难 → 自动完成文本切分、向量化、检索与 RAG 输出。
-
Agent 工具链融合复杂 → 提供可插拔式工具集成机制,一行代码添加能力。
-
企业数据安全问题 → 允许私有数据本地处理,摆脱对外部 API 的依赖。
-
国产大模型缺乏易用生态 → 构建统一的中文场景"ChatGPT 本地替代品"基础设施。
三、整体架构图与模块说明
我们用一张图概括 Langchain-Chatchat 的运行机制:
主要模块分层
层级 | 模块 | 功能说明 |
---|---|---|
应用层 | Streamlit UI / FastAPI 接口 | 用户交互,调用底层服务 |
逻辑层 | RAG引擎 / Agent执行器 | 知识检索 / 工具推理流程 |
基础层 | LLM模型 / 向量库 / Embedding模型 | 模型推理、文本嵌入、文档存储 |
四、核心技术流程
Langchain-Chatchat 构建了一个完整的 RAG 管道:
🧠 RAG 检索增强生成流程
- 上传知识文件:支持 PDF、TXT、DOCX、Markdown 等格式;
- 文本预处理:分段切分(支持自定义长度、重叠等参数);
- 文本向量化 :使用 HuggingFace 模型(如
m3e
、bge
)生成嵌入; - 存入向量库:默认使用 FAISS,本地高性能向量检索库;
- top-k 检索:根据用户问题检索最相关文段;
- 构建 Prompt:将问题 + 检索片段拼接为输入提示;
- 交给大模型生成回答:通过本地 LLM(如 ChatGLM)生成最终回复。
五、支持的模型与工具
✅ 支持的主流模型(可灵活切换)
模型 | 说明 |
---|---|
ChatGLM 系列 | 支持 ChatGLM2、ChatGLM3、GLM-4 |
Qwen 系列 | 通义千问开源模型 |
Llama 系列 | 支持 LLaMA2/LLaMA3 |
OpenAI | GPT-3.5 / GPT-4 API |
🧰 支持的 Agent 工具
工具名称 | 功能 |
---|---|
search_arxiv |
学术搜索(根据关键词返回文献摘要) |
text_to_image |
输入描述,生成图像(调用 stable-diffusion) |
sql_query_tool |
查询本地数据库 |
wolfram |
数学/物理公式计算、图形绘制 |
file_reader |
读取 URL、PDF 等外部信息 |
六、适用场景推荐
Langchain-Chatchat 特别适合以下场景:
- 🏢 企业内部知识库问答系统:上传规章制度、流程文件、合同文档等。
- 🧑🏫 教育行业知识讲解系统:支持教材内容、题库文档等内容交互。
- 🏥 医疗行业助手:本地部署医学知识问答,保障隐私。
- 🧑🔬 科研场景文献检索/分析:结合 ArXiv 工具,构建科研助手。
- 📊 数据分析辅助:结合 SQL 工具生成自动报表解读。
七、社区现状与发展趋势
-
🔧 GitHub 地址:github.com/chatchat-sp...
-
⭐ Star 数:超过 35K(截至 2025年7月)
-
📦 PyPI 安装:
pip install langchain-chatchat
-
🧪 已被 Intel IPEX-LLM 集成为 CPU 部署范式参考
-
🚀 未来趋势:
- 多 Agent 任务链支持(LangGraph 接入)
- 多用户、权限隔离功能完善
- 插件系统化(用户可通过 YAML 注册自定义工具)
✅ 小结
Langchain-Chatchat 是一个高度模块化、灵活部署、安全可控的本地中文智能问答系统。它结合了 LangChain 的强大能力、国产大模型的语义理解优势,以及向量搜索的检索增强机制,已成为构建 RAG/Agent 智能体的理想起点。