chatchat-space/Langchain-ChatchatView GitHub Homepage for Latest Official Releases
基于ChatGLM、Qwen、Llama等大语言模型与Langchain框架实现的开源、可离线部署的RAG与Agent应用项目
Apache-2.0TypeScriptLangchain-Chatchatchatchat-space 35.9k Last Updated: March 25, 2025
Langchain-Chatchat 项目详细介绍
项目概述
Langchain-Chatchat(原名 Langchain-ChatGLM)是一个基于大语言模型与Langchain等应用框架实现的开源、可离线部署的RAG(检索增强生成)与Agent应用项目。该项目致力于建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
核心特性
1. 多模型支持
项目支持市面上主流的开源大语言模型:
- GLM系列: GLM-4-Chat, ChatGLM等
- Qwen系列: Qwen2-Instruct, Qwen-VL-Chat等
- Llama系列: Llama3等
- 在线API: 支持OpenAI GPT API调用
2. 多种部署框架
支持多种模型部署框架,提供灵活的接入方式:
框架 | Xinference | LocalAI | Ollama | FastChat |
---|---|---|---|---|
OpenAI API接口对齐 | ✅ | ✅ | ✅ | ✅ |
加速推理引擎 | GPTQ, GGML, vLLM, TensorRT, mlx | GPTQ, GGML, vLLM, TensorRT | GGUF, GGML | vLLM |
接入模型类型 | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Text-to-Image, Vision | LLM, Vision |
3. 丰富的对话功能
0.3.x版本提供多种对话模式:
功能 | 0.2.x | 0.3.x |
---|---|---|
LLM对话 | ✅ | ✅ |
知识库对话 | ✅ | ✅ |
搜索引擎对话 | ✅ | ✅ |
文件对话 | ✅仅向量检索 | ✅统一为File RAG功能,支持BM25+KNN等多种检索方式 |
数据库对话 | ❌ | ✅ |
多模态图片对话 | ❌ | ✅ 推荐使用 qwen-vl-chat |
ARXIV文献对话 | ❌ | ✅ |
Wolfram对话 | ❌ | ✅ |
文生图 | ❌ | ✅ |
Agent | ❌不稳定 | ✅针对ChatGLM3和Qwen进行优化 |
技术架构
RAG实现原理
项目的核心技术基于RAG(检索增强生成)架构:
文档加载 → 文本读取 → 文本分割 → 文本向量化 → 问句向量化 →
相似度匹配(Top-K) → 上下文构建 → LLM生成回答
Agent功能
0.3.x版本的核心功能由Agent实现,提供三种操作模式:
操作方式 | 实现功能 | 适用场景 |
---|---|---|
启用Agent + 多工具 | LLM自动工具调用 | ChatGLM3/Qwen等具备Agent能力的模型 |
启用Agent + 单工具 | LLM仅解析工具参数 | Agent能力一般的模型,手动选择功能 |
不启用Agent + 单工具 | 手动参数填入 | 不具备Agent能力的模型 |
安装部署
1. Python库安装
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
2. 环境要求
- Python版本: 3.8-3.11
- 操作系统: Windows, macOS, Linux
- 硬件支持: CPU, GPU, NPU, MPS
3. 配置步骤
设置根目录(可选)
# Linux/macOS
export CHATCHAT_ROOT=/path/to/chatchat_data
# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data
初始化项目
chatchat init
配置文件修改
主要配置文件包括:
model_settings.yaml
: 模型配置basic_settings.yaml
: 基础路径配置kb_settings.yaml
: 知识库配置
知识库初始化
chatchat kb -r
启动服务
chatchat start -a
4. Docker部署
docker pull chatimage/chatchat:0.3.1.3-93e2c87-20240829
docker pull ccr.ccs.tencentyun.com/langchain-chatchat/chatchat:0.3.1.3-93e2c87-20240829
使用场景
1. 企业知识库问答
- 文档管理与检索
- 内部知识分享
- 客服自动化
2. 学术研究
- 文献检索与分析
- 学术论文对话
- 研究资料整理
3. 个人知识管理
- 个人文档整理
- 学习笔记检索
- 资料归档管理
优势特点
- 完全开源: 遵循Apache-2.0协议,代码完全开放
- 离线部署: 支持完全离线运行,保护数据隐私
- 中文友好: 针对中文场景优化,支持中文模型
- 框架灵活: 支持多种模型部署框架
- 功能丰富: 提供RAG、Agent、多模态等多种功能
- 易于部署: 提供pip安装和Docker部署方式
技术栈
- 核心框架: Langchain
- Web框架: FastAPI, Streamlit
- 向量数据库: FAISS等
- 模型推理: Xinference, Ollama, LocalAI, FastChat
- API接入: One API支持多种在线API
该项目为需要构建本地知识库问答系统的用户提供了完整的解决方案,特别适合对数据隐私有严格要求的企业和个人用户。