本系列第一篇,我们将从项目背景、目标定位、核心架构、使用场景出发,全面剖析 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 的运行机制:
graph TDA[用户输入问题] --- B[判断是否使用 Agent ?];B --- E[Yes] --> 选择工具 --> 获取工具输出 --> X1[构造 Prompt];B --- P[No] --> L[是否使用知识库 RAG ?];L --> M[Yes] --> D[检索相关文档片段] --> X1;L --> F[No] --> X[输入 LLM];N[知识库构建流程] --- U[上传 > 切分 > 嵌入 > 存入] --> I[向量库 FAISS/Milvus/Chroma] --> D;X1 --> X --> Y[LLM 生成回答] --> Z[Web UI 展示]
主要模块分层
层级 | 模块 | 功能说明 |
---|---|---|
应用层 | 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 数:超过 25K(截至 2025年7月)
📦 PyPI 安装:pip install langchain-chatchat
🧪 已被 Intel IPEX-LLM 集成为 CPU 部署范式参考
🚀 未来趋势:
- 多 Agent 任务链支持(LangGraph 接入)多用户、权限隔离功能完善插件系统化(用户可通过 YAML 注册自定义工具)
✅ 小结
Langchain-Chatchat 是一个高度模块化、灵活部署、安全可控的本地中文智能问答系统。它结合了 LangChain 的强大能力、国产大模型的语义理解优势,以及向量搜索的检索增强机制,已成为构建 RAG/Agent 智能体的理想起点。