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
該項目為需要構建本地知識庫問答系統的用戶提供了完整的解決方案,特別適合對數據隱私有嚴格要求的企業和個人用戶。