Langchain-Chatchat 简介
Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型与 Langchain 应用框架实现的开源项目。它支持检索增强生成 (RAG) 技术,提供可离线部署的本地知识库问答解决方案。
本项目利用 Langchain 思想实现基于本地知识库的问答应用。目前 Langchain 是开发大语言模型 (LLM) 应用的首选框架之一。本项目的目标是建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
依托于本项目支持的开源 LLM 与 Embedding 模型,可实现全部使用开源模型进行离线私有部署。同时,项目也支持 OpenAI GPT API 的调用,并持续扩充对各类模型及模型 API 的接入。
实现原理
本项目全流程使用开源模型来实现本地知识库问答应用。最新版本中通过 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型。依托于 Langchain 框架,支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
数据流程
整个流程的执行过程主要包含以下步骤:
- 文档加载:读取本地文件(PDF, TXT, Markdown 等)。
- 文本分割:将长文本按策略切分为小块(Chunk)。
- 向量化:使用 Embedding 模型将文本块转换为向量。
- 存储:将向量存入向量数据库(如 FAISS, Milvus, PG_Vector)。
- 检索:根据用户问题检索相关向量片段。
- 生成:将检索到的上下文与问题结合,输入 LLM 生成回答。
从文档处理角度来看,实现流程包括解析、清洗、分块、嵌入和索引。需要注意的是,本项目未涉及微调或训练过程,但可利用微调或训练对本项目效果进行优化。
部署要求
软件要求
- 操作系统:推荐 Linux Ubuntu 22.04.5 kernel version 6.7。其他系统可能出现兼容性问题。
- Python 版本:>= 3.8 (< 3.12)。建议 Python 3.11.7 以获得最佳稳定性。
- CUDA 版本:>= 12.1。若使用轻量模式在线模型则不需要 CUDA。
硬件要求
在 GPU 上运行本地模型的 FP16 版本需要足够的显存以保证稳定连续对话:
- 7B 模型 (如 ChatGLM3-6B, LLaMA-7B-Chat):最低显存 14GB,推荐显卡 RTX 4080。
- 14B 模型 (如 Qwen-14B-Chat):最低显存 30GB,推荐显卡 V100。
- 34B 模型 (如 Yi-34B-Chat):最低显存 69GB,推荐显卡 A100。
- 72B 模型 (如 Qwen-72B-Chat):最低显存 145GB,推荐多卡 A100 以上。
实际部署配置示例
处理器:Intel® Core™ i9 processor 14900K
内存:256 GB DDR5
显卡组:NVIDIA RTX4090 X 1 / NVIDIA RTXA6000 X 1
硬盘:1 TB
操作系统:Ubuntu 22.04 LTS / Arch Linux, Linux Kernel 6.6.7
显卡驱动版本:.
Cuda 版本: Update
Python 版本:.


