项目简介
Langchain-Chatchat 是一个结合大语言模型(ChatGLM 等)与 Langchain 的开源项目,利用检索增强生成(RAG)在本地搭建知识库问答系统。因为全链条都可用开源模型离线运行,所以数据完全保留在自己机器上,不用担心泄露。
实现流程不算复杂:
- 文档上传后,先解析清洗,再分块。
- 用 Embedding 模型将文本块转为向量,存进 FAISS 或 Milvus 之类的向量库。
- 提问时,从向量库检索相关片段,和问题一起喂给 LLM 生成回答。 整个过程没有微调或训练环节,但如果你有微调模型,也可以替换上去优化效果。
硬件与环境要求
想在 GPU 上跑 FP16 模型,显存是首道坎。实测几个典型模型:
- 7B 模型(如 ChatGLM3-6B):至少 14GB 显存,推荐 RTX 4080。
- 14B 模型(如 Qwen-14B-Chat):至少 30GB,V100 能扛住。
- 34B 模型(Yi-34B-Chat):至少 69GB,得上 A100。
- 72B 模型:145GB 起,多卡 A100 比较好。 我的部署环境供参考:i9-14900K + 256GB DDR5 + RTX 4090,系统 Ubuntu 22.04,CUDA 12.3,Python 3.11.7。
软件方面,Python 3.8 ~ 3.12 都可以,但最稳的还是 3.11 搭配 CUDA 12.1 以上。官方用 3.11.7 调试,直接照搬最省心。
Docker 快速体验
如果你不想折腾环境,官方提供了懒人包,一个命令就能跑起来:
docker run -d --gpus all -p 80:8501 isafetech/chatchat:0.2.10
国内镜像也可以用:
docker run -d --gpus all -p 80:8501 ccr.ccs.tencentyun.com/chatchat/chatchat:0.2.10
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.10
这个镜像约 50GB,内置了 bge-large-zh-v1.5 Embedding 模型和 ChatGLM3-6B,是一套完整环境,无需额外安装 CUDA Toolkit,只要装好 NVIDIA 驱动和 Container Toolkit 即可。
本地一步步部署
不用 Docker 的话,也能自己挨个装,灵活性更高。
1. 准备 Python 环境 建议 Conda 虚拟环境,避免污染系统。
# 创建 conda 环境,Python 3.8
conda create -n chatchat python=3.8
conda activate chatchat
# 更新 pip
pip install --upgrade pip
2. 克隆仓库并安装依赖
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat
pip install -r requirements.txt
requirements.txt 里默认带了 FAISS,如果需要 Milvus 等,自行取消注释即可。OCR 加速可以加装 rapidocr_paddle[gpu],用在线 API 则安装对应 SDK。
3. 下载模型 本地运行得有模型文件,去 HuggingFace 拉取:
git lfs install
git clone https://huggingface.co/THUDM/chatglm2-6b
git clone https://huggingface.co/moka-ai/m3e-base
ChatGLM2 和 m3e-base 只是示例,可根据需要换成其他支持的模型。


