chatchat-space /Langchain-Chatchat
Langchain-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
★ 38,712⑂ 6,254👁 286⑃ 885● 4,262▤ 31◈ 195
38,712
stars
+1
6,254
forks
286
watchers
885
prs
4,262
issues
31
releases
195
discussions
README
!
🌍 READ THIS IN ENGLISH
📃 LangChain-Chatchat (原 Langchain-ChatGLM)
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的 RAG 与 Agent 应用项目。
---
目录
概述
功能介绍
0.3.x 功能一览
已支持的模型推理框架与模型
快速上手
pip 安装部署
源码安装部署/开发部署
Docker 部署
项目里程碑
联系我们
概述
🤖️ 一种利用 langchain
思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
💡 受 GanymedeNil 的项目 document.ai
和 AlexZhangji
创建的 ChatGLM-6B Pull Request
启发,建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中可使用 Xinference、Ollama
等框架接入 GLM-4-Chat、 Qwen2-Instruct、 Llama3
等模型,依托于 langchain
框架支持通过基于 FastAPI 提供的 API
调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
!
✅ 本项目支持市面上主流的开源 LLM、 Embedding 模型与向量数据库,可实现全部使用开源模型离线私有部署。与此同时,本项目也支持
OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。
⛓️ 本项目实现原理如下图所示,过程包括加载文件 - 读取文本 - 文本分割 - 文本向量化 - 问句向量化 -
在文本向量中匹配出与问句向量最相似的 top k个 - 匹配出的文本作为上下文和问题一起添加到 prompt中 - 提交给 LLM生成回答。
📺 原理介绍视频
!实现原理图
从文档处理角度来看,实现流程如下:
!实现原理图2
🚩 本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。
🌐 AutoDL 镜像 中 0.3.0
版本所使用代码已更新至本项目 v0.3.0 版本。
🐳 Docker 镜像将会在近期更新。
🧑💻 如果你想对本项目做出贡献,欢迎移步开发指南 获取更多开发部署相关信息。
功能介绍
0.3.x 版本功能一览
| 功能 | 0.2.x | 0.3.x |
|-----------|----------------------------------|---------------------------------------------------------------------|
| 模型接入 | 本地:fastchat在线:XXXModelWorker | 本地:model_provider,支持大部分主流模型加载框架在线:oneapi所有模型接入均兼容openai sdk |
| Agent | ❌不稳定 | ✅针对ChatGLM3和Qwen进行优化,Agent能力显著提升 ||
| LLM对话 | ✅ | ✅ ||
| 知识库对话 | ✅ | ✅ ||
| 搜索引擎对话 | ✅ | ✅ ||
| 文件对话 | ✅仅向量检索 | ✅统一为File RAG功能,支持BM25+KNN等多种检索方式 ||
| 数据库对话 | ❌ | ✅ ||
| 多模态图片对话 | ❌ | ✅ 推荐使用 qwen-vl-chat ||
| ARXIV文献对话 | ❌ | ✅ ||
| Wolfram对话 | ❌ | ✅ ||
| 文生图 | ❌ | ✅ ||
| 本地知识库管理 | ✅ | ✅ ||
| WEBUI | ✅ | ✅更好的多会话支持,自定义系统提示词... |
0.3.x 版本的核心功能由 Agent 实现,但用户也可以手动实现工具调用:
|操作方式|实现的功能|适用场景|
|-------|---------|-------|
|选中"启用Agent",选择多个工具|由LLM自动进行工具调用|使用ChatGLM3/Qwen或在线API等具备Agent能力的模型|
|选中"启用Agent",选择单个工具|LLMTop issues
#5102[FEATURE] 有没有只用本地代码跑的模式?不使用webui38 comments · 2024-11-23#4813xinference安装完成之后启动报错问题29 comments · 2024-08-14#5516【Security Vulnerability Report】CWE-502 summary_doc_ids_to_vector_store pickle deserialization RCE (CVSS 9.8)2 comments · 2026-09-28#5515【Security Vulnerability Report】CWE-78 /tools/call endpoint shell tool direct RCE (CVSS 9.8)2 comments · 2026-09-28#5517[FEATURE] 默认知识库提示词(rag.default)遇到前提错误的问题时,倾向于回答「无法回答」而不是依据资料纠正0 comments · 2026-10-14
Discussions
#5486Free 12-domain science knowledge API for RAG — 4,000+ structured entities, MCP-compatible0 comments · 2026-06-21#5484ccline — 在命令行提示符直接问 Claude,Langchain-Chatchat 的终端伴侣0 comments · 2026-06-10#5481Survey: Does your AI agent have an identity problem?0 comments · 2026-06-02#5480Test - will delete0 comments · 2026-06-02#5477Claude Code investment analysis skills — options flow scanner + price alerts (open source)0 comments · 2026-05-13#5459Prompt工程师 + AI Infra工程师 | AI营销决策引擎 | 北大/康奈尔/TikTok背景团队 | 杭州0 comments · 2026-04-06#5455Langchain-Chatchat is listed on Shypd — AI Tool Directory0 comments · 2026-03-30#5284可以API方式对接 DeepSeek吗?1 comments · 2025-03-23
Latest release
Langchain-Chatchat v0.3.1 v0.3.1 2024-07-12重要提示 Langchain-Chatchat v0.3.1 中命令行调用方式发生调整,请依据项目 README 进行操作;知识库的源文件与向量库仍可与前序版本通用,建议参考项目 README.md 中 快速上手 章节内容进行新版本部署。 ------ 新增功能 所有配置项改成 yaml 配置文件,改为命令行执行 chatchat init 初始化项目配置,需要本地文件中修改配置,配置项修改后即时生效,无需重启项目 by @liunux4odoo in https://github.com/chatchat-space/Langchain-Chatchat/pull/4421 chatchat init 可以直接指定 Xinference API 地址、LLM 模型、Embedding 模型,一步完成知识库初始 by @liunux4odoo in https://github.com/chatchat-space/Langchain-Chatchat/pull/4425 新增 RAG 对话页面,包含知识库对话、文件对话、搜索引擎对话 by @liunux4odoo @imClumsyPanda in https://github.com/chatchat-space/Langchain-Chatchat/pull/4471 调整对话界面按钮