跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Langchain-Chatchat 基于 LLM 构建本地智能知识库部署指南

综述由AI生成Langchain-Chatchat 开源项目,这是一个基于 Langchain 框架和 ChatGLM 等大语言模型实现的检索增强生成 (RAG) 知识库解决方案。文章详细阐述了项目的实现原理,包括文档处理、向量化及检索流程。内容涵盖软件与硬件部署要求,提供了 Docker 一键部署和本地源码部署两种方案,并说明了 Lite 模式的使用方法。此外,还补充了模型配置详解、向量数据库选择及常见问题的排查方法,旨在帮助用户快速搭建本地智能知识库。

咸鱼开飞机发布于 2025/2/7更新于 2026/6/721 浏览
Langchain-Chatchat 基于 LLM 构建本地智能知识库部署指南

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 进行操作。

数据流程

整个流程的执行过程主要包含以下步骤:

  1. 文档加载:读取本地文件(PDF, TXT, Markdown 等)。
  2. 文本分割:将长文本按策略切分为小块(Chunk)。
  3. 向量化:使用 Embedding 模型将文本块转换为向量。
  4. 存储:将向量存入向量数据库(如 FAISS, Milvus, PG_Vector)。
  5. 检索:根据用户问题检索相关向量片段。
  6. 生成:将检索到的上下文与问题结合,输入 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
显卡驱动版本:545.29.06
Cuda 版本:12.3 Update 1
Python 版本:3.11.7

部署 Langchain-Chatchat

Docker 部署

开发组提供了一键部署的 Docker 镜像文件。开发者可以在 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
  • 该版本镜像大小约 50.1GB,使用 v0.2.10,以 nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04 为基础镜像。
  • 该版本为正常版本,非轻量化版本。
  • 内置并默认启用一个 Embedding 模型:bge-large-zh-v1.5。
  • 内置并默认启用 ChatGLM3-6B。
  • 请确保您已经在 Linux 发行版上安装了 NVIDIA 驱动程序。
  • 您不需要在主机系统上安装 CUDA 工具包,但需要安装 NVIDIA Driver 以及 NVIDIA Container Toolkit。

本地部署方案

1. 安装 Python 环境

首先确认机器安装了 Python 3.8 - 3.10 版本。

python --version
conda create -p /your_path/env_name python=3.8
source activate /your_path/env_name
pip3 install --upgrade pip
2. 安装项目依赖

拉取仓库并进入目录:

git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat

安装全部依赖:

pip install -r requirements.txt

默认依赖包括基本运行环境(FAISS 向量库)。以下是可选依赖说明:

  • 如果要使用 Milvus/PG_Vector 等向量库,请将 requirements.txt 中相应依赖取消注释再安装。
  • 如果要开启 OCR GPU 加速,请安装 rapidocr_paddle[gpu]。
  • 如果要使用在线 API 模型,请安装对应的 SDK。
3. 下载模型

如需在本地或离线环境下运行本项目,需要首先将项目所需的模型下载至本地。通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。

git lfs install
git clone https://huggingface.co/THUDM/chatglm2-6b
git clone https://huggingface.co/moka-ai/m3e-base
4. 初始化数据库

当前项目的知识库信息存储在数据库中,在正式运行项目之前请先初始化数据库。

# 如果您已经有创建过知识库
python init_database.py --create-tables
# 如果您是第一次运行本项目
python init_database.py --recreate-vs
5. 启动服务

一键启动脚本 startup.py,启动所有 Fastchat 服务、API 服务、WebUI 服务。

python startup.py -a

启动界面

正常启动后,会有两种使用界面:

  1. WebUI:基于 Streamlit 的图形化界面,方便管理知识库和进行问答。
  2. API:基于 FastAPI 提供的接口,便于集成到其他系统中。

最轻模式 (Lite Mode)

对于没有显卡的用户,项目提供了 Lite 模式。该模式的配置方式与常规模式相同,但无需安装 torch 等重依赖,通过在线 API 实现 LLM 和 Embeddings 相关功能。

pip install -r requirements_lite.txt
python startup.py -a --lite

该模式支持的在线 Embeddings 包括:

  • 智谱 AI
  • MiniMax
  • 百度千帆
  • 阿里云通义千问

在 model_config.py 中将 LLM_MODELS 和 EMBEDDING_MODEL 设置为可用的在线 API 名称即可。

配置详解

模型配置文件

核心配置文件位于 config/model_config.py。在此文件中可以自定义以下参数:

  1. LLM Model: 选择使用的语言模型,例如 chatglm3, qwen, llama2 等。
  2. Embedding Model: 选择向量模型,例如 m3e-base, bge-large-zh 等。
  3. Vector Store: 选择向量数据库类型,如 faiss, milvus, pgvector。
  4. Device: 指定计算设备,如 cuda, cpu。

向量数据库选择

  • FAISS: 适合单机部署,速度快,但扩展性较差。
  • Milvus: 适合大规模数据,支持分布式部署,性能优异。
  • PG_Vector: 基于 PostgreSQL 插件,适合已有 Postgres 环境的用户。

常见问题与排查

显存不足

如果报错 CUDA out of memory,尝试以下方法:

  1. 减小 batch_size。
  2. 使用量化模型(如 INT8 版本)。
  3. 更换显存更大的显卡。
  4. 减少并发请求数。

模型加载失败

如果提示找不到模型文件,请检查 model_config.py 中的路径是否正确,并确保模型文件已下载到本地目录。

依赖冲突

如果遇到依赖包版本冲突,建议使用虚拟环境隔离,并严格按照 requirements.txt 安装。

总结

Langchain-Chatchat 项目结构清晰,针对当前热门的 AI 知识库给出了一种非常好的构建方式,并且做到了全链条的开源产品。无论你是希望直接使用它来构建知识库,还是希望通过本项目学习和实现自己的解决方案,都会是非常好的选择。

建议深入理解项目的架构设计,因为这类项目最精华的部分在于其架构逻辑。通过合理配置模型和向量库,可以实现高效、私有的本地智能问答系统。

目录

  1. Langchain-Chatchat 简介
  2. 实现原理
  3. 数据流程
  4. 部署要求
  5. 软件要求
  6. 硬件要求
  7. 实际部署配置示例
  8. 部署 Langchain-Chatchat
  9. Docker 部署
  10. 本地部署方案
  11. 1. 安装 Python 环境
  12. 2. 安装项目依赖
  13. 3. 下载模型
  14. 4. 初始化数据库
  15. 如果您已经有创建过知识库
  16. 如果您是第一次运行本项目
  17. 5. 启动服务
  18. 启动界面
  19. 最轻模式 (Lite Mode)
  20. 配置详解
  21. 模型配置文件
  22. 向量数据库选择
  23. 常见问题与排查
  24. 显存不足
  25. 模型加载失败
  26. 依赖冲突
  27. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Linux Socket 编程核心:深入解析 sockaddr 数据结构
  • SkyWalking Java Agent 配置实战:IDEA 与 Tomcat 多场景详解
  • Hash 校验 MD5 值及 SHA1 值
  • LLM Agent 微调最佳实践与部署指南
  • Meta ShapeR:基于随机拍摄视频的 3D 物体生成技术
  • AI-Goofish-Monitor 闲鱼商品智能监控工具详解
  • Python 与 Java:哪个更好,如何选择?
  • HarmonyOS 5.0 星闪智能家居边缘计算网关开发
  • Spring MVC 核心实战:请求映射与参数传递全解
  • Python 兼职开发指南:技术栈与实战方向
  • Copilot 指令文件配置详解:copilot-instructions.md、AGENTS.md 与 .instructions.md
  • CyberStrikeAI:AI 驱动的自主渗透测试平台深度解析
  • LangChain 学习实战:核心难点解析与国产模型集成指南
  • 微信接入 OpenClaw 插件,支持 AI 智能体管理
  • llama.cpp 量化模型部署实战:从模型转换到 API 服务
  • 链表算法实战:反转、合并与排序(Python)
  • Vue 实战:HTTP 请求拦截与路由守卫
  • OpenClaw 接入飞书:让 AI 直接操作文档和表格
  • Java 入门篇:环境配置与第一个程序
  • FPGA 全加器设计实战:Verilog 实现与时序优化

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online