基于 Langchain-Chatchat 快速构建本地 LLM 智能知识库
Langchain-Chatchat 是基于 Langchain 和开源大语言模型构建的本地知识库问答项目,支持 RAG 检索增强生成技术。项目提供 Docker 一键部署和本地源码部署两种方式,支持多种开源模型如 ChatGLM、LLaMA 等,并可离线运行保障数据安全。内容涵盖环境配置、模型下载、数据库初始化及 Lite 模式使用说明,同时包含高级配置与性能优化建议,适合开发者快速搭建私有化 AI 知识库系统。

Langchain-Chatchat 是基于 Langchain 和开源大语言模型构建的本地知识库问答项目,支持 RAG 检索增强生成技术。项目提供 Docker 一键部署和本地源码部署两种方式,支持多种开源模型如 ChatGLM、LLaMA 等,并可离线运行保障数据安全。内容涵盖环境配置、模型下载、数据库初始化及 Lite 模式使用说明,同时包含高级配置与性能优化建议,适合开发者快速搭建私有化 AI 知识库系统。

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现的开源项目。它支持检索增强生成(RAG)技术,旨在提供一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。该项目允许用户利用本地部署的开源模型进行私有化知识管理,确保数据安全性。
本项目全流程使用开源模型来实现本地知识库问答应用。最新版本中通过使用 FastChat 接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 langchain 框架支持通过基于 FastAPI 提供的 API 调用服务,或使用基于 Streamlit 的 WebUI 进行操作。
整个流程的执行过程主要包括:
需要注意的是,本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。
操作系统 推荐使用 Linux Ubuntu 22.04.5 kernel version 6.7。其他系统可能出现系统兼容性问题。
最低要求 该要求仅针对标准模式,轻量模式使用在线模型,不需要安装 torch 等库,也不需要显卡即可运行。
推荐要求 开发者在以下环境下进行代码调试,在该环境下能够避免最多环境问题。
如果想要顺利在 GPU 运行本地模型的 FP16 版本,你至少需要以下的硬件配置,来保证在我们框架下能够实现稳定连续对话:
实际部署配置示例:
处理器: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
显卡驱动版本:545.29.06
Cuda 版本:12.3 Update 1
Python 版本:3.11.7
开发组为开发者们提供了一键部署的 docker 镜像文件懒人包。开发者们可以在 AutoDL 平台和 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
首先,确信你的机器安装了 Python 3.8 - 3.10 版本。
# 检查版本
$ python --version
Python 3.8.13
# 创建 conda 环境
$ conda create -p /your_path/env_name python=3.8
$ source activate /your_path/env_name
# 或者使用 conda 命名空间
$ conda create -n env_name python=3.8
$ conda activate env_name # Activate the environment
# 更新 pip 库
$ pip3 install --upgrade pip
# 拉取仓库
$ git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
# 进入目录
$ cd Langchain-Chatchat
# 安装全部依赖
$ pip install -r requirements.txt
默认依赖包括基本运行环境(FAISS 向量库)。以下是可选依赖:
如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地,通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。
$ git lfs install
$ git clone https://huggingface.co/THUDM/chatglm2-6b
$ git clone https://huggingface.co/moka-ai/m3e-base
当前项目的知识库信息存储在数据库中,在正式运行项目之前请先初始化数据库。
# 如果您已经有创建过知识库
$ python init_database.py --create-tables
# 如果您是第一次运行本项目
$ python init_database.py --recreate-vs
一键启动脚本 startup.py,一键启动所有 Fastchat 服务、API 服务、WebUI 服务。
$ python startup.py -a
正常启动后,会有两种使用界面,一种是 WebUI,另一种是使用方式是 API。
Web UI 提供知识库管理页面,支持文档上传、切片配置及问答交互。API 接口则允许开发者通过 HTTP 请求集成到自己的应用中。
以上的部署方式是需要显卡的,对于我们这些没卡的一族来说,就很尴尬。但是项目很贴心,提供一个 lite 模式,该模式的配置方式与常规模式相同,但无需安装 torch 等重依赖,通过在线 API 实现 LLM 和 Embeddings 相关功能,适合没有显卡的电脑使用。
$ pip install -r requirements_lite.txt
$ python startup.py -a --lite
该模式支持的在线 Embeddings 包括:
在 model_config.py 中将 LLM_MODELS 和 EMBEDDING_MODEL 设置为可用的在线 API 名称即可。
项目核心配置文件通常为 config.yaml 或 model_config.py。用户可以通过修改此文件来调整默认模型路径、向量库类型及 API 密钥。
例如,若需切换默认使用的 Embedding 模型,可在配置文件中指定:
embedding_model: m3e-base
项目的结构非常不错,针对当前热门的 AI 知识库给出一种非常好的构建方式,而且还做到了全链条的开源产品。所以无论你是希望直接使用它来构建知识库,还是希望通过本项目学习和实现自己的解决方案,都会是非常好的选择。
建议大家不要单纯的伸手党,还是要自己去研究一下项目的架构,因为这类项目实际上最精华的就是架构设计。通过深入理解其 RAG 流程和模块解耦,可以为后续的业务定制打下坚实基础。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online