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


