基于 LangChain-Chatchat 实现本地知识库问答应用快速上手
1. 项目介绍
LangChain-Chatchat 是一个基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现的开源、可离线部署的检索增强生成 (RAG) 大模型知识库项目。其目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
本项目受相关开源项目启发,建立了全流程可使用开源模型实现的本地知识库问答应用。最新版本中通过接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于 Langchain 框架支持通过 API 服务或 WebUI 进行操作。
依托于本项目支持的开源 LLM 与 Embedding 模型,可实现全部使用开源模型离线私有部署。同时支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。
1.1 实现原理
过程包括:
- 加载文件 -> 读取文本
- 文本分割 -> 文本向量化
- 问句向量化 -> 在文本向量中匹配出与问句向量最相似的
top k个 - 匹配出的文本作为上下文和问题一起添加到
prompt中 - 提交给
LLM生成回答

从文档处理角度来看,实现流程如下:

- 本项目未涉及微调、训练过程,但可利用微调或训练对本项目效果进行优化。
- Docker 镜像已更新到
0.2.10版本。 - 本次更新后同时支持 DockerHub、阿里云、腾讯云镜像源。
docker run -d --gpus all -p 80:8501 isafetech/chatchat:0.2.10
docker run -d --gpus all -p 80:8501 uswccr.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
注意:本项目有一个非常完整的官方仓库,README 只是一个简单的介绍,仅仅是入门教程,能够基础运行。如果你想要更深入地了解本项目,或者想对本项目做出贡献,请移步 GitHub 界面。
2. 解决的痛点
该项目是一个可以实现完全本地化推理的知识库增强方案,重点解决数据保护、私域化部署的企业痛点。本开源方案采用 Apache License,可以免费商用,无需付费。
我们支持市面上主流的本地大语言模型和 Embedding 模型,支持开源的本地部署。支持列表详见官方文档。
3. 快速实现案例
3.1 环境配置
首先,确保你的机器安装了 Python 3.8 - 3.11(强烈推荐使用 Python 3.11)。
$ python --version
Python 3.11.7
接着,创建一个虚拟环境,并在虚拟环境内安装项目的依赖。
$ git https://github.com/chatchat-space/Langchain-Chatchat.git
$ Langchain-Chatchat
$ pip install -r requirements.txt
$ pip install -r requirements_api.txt
$ pip install -r requirements_webui.txt


