Langchain-Chatchat(原名 Langchain-ChatGLM)是一个基于大语言模型与Langchain等应用框架实现的开源、可离线部署的RAG(检索增强生成)与Agent应用项目。该项目致力于建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
项目支持市面上主流的开源大语言模型:
支持多种模型部署框架,提供灵活的接入方式:
框架 | 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 |
0.3.x版本提供多种对话模式:
功能 | 0.2.x | 0.3.x |
---|---|---|
LLM对话 | ✅ | ✅ |
知识库对话 | ✅ | ✅ |
搜索引擎对话 | ✅ | ✅ |
文件对话 | ✅仅向量检索 | ✅统一为File RAG功能,支持BM25+KNN等多种检索方式 |
数据库对话 | ❌ | ✅ |
多模态图片对话 | ❌ | ✅ 推荐使用 qwen-vl-chat |
ARXIV文献对话 | ❌ | ✅ |
Wolfram对话 | ❌ | ✅ |
文生图 | ❌ | ✅ |
Agent | ❌不稳定 | ✅针对ChatGLM3和Qwen进行优化 |
项目的核心技术基于RAG(检索增强生成)架构:
文档加载 → 文本读取 → 文本分割 → 文本向量化 → 问句向量化 →
相似度匹配(Top-K) → 上下文构建 → LLM生成回答
0.3.x版本的核心功能由Agent实现,提供三种操作模式:
操作方式 | 实现功能 | 适用场景 |
---|---|---|
启用Agent + 多工具 | LLM自动工具调用 | ChatGLM3/Qwen等具备Agent能力的模型 |
启用Agent + 单工具 | LLM仅解析工具参数 | Agent能力一般的模型,手动选择功能 |
不启用Agent + 单工具 | 手动参数填入 | 不具备Agent能力的模型 |
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
# 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
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
该项目为需要构建本地知识库问答系统的用户提供了完整的解决方案,特别适合对数据隐私有严格要求的企业和个人用户。