5分钟上手Langchain-Chatchat:从0到1搭建本地知识库问答系统
你是否还在为企业文档查询效率低而烦恼?是否希望拥有一个能理解本地文件的智能助手?本文将带你一站式完成Langchain-Chatchat的安装部署,无需专业开发背景,只需跟着步骤操作,即可在自己的电脑上搭建一套完整的本地知识库问答系统。读完本文后,你将掌握Docker快速部署、环境配置、模型启动和知识库初始化的全流程。
一、项目简介
Langchain-Chatchat(原Langchain-ChatGLM)是一个基于Langchain与大语言模型(如ChatGLM)构建的本地知识库问答系统。它能够将你的文档资料转化为向量数据存储,并通过大语言模型实现智能问答,保护数据隐私的同时提高信息检索效率。
项目结构清晰,主要包含以下核心模块:
- 官方文档:docs/
- 启动脚本:tools/autodl_start_script/
- 模型加载:tools/model_loaders/
- 前端界面:frontend/
二、两种部署方案对比
| 部署方式 | 难度 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| Docker容器化 | ★☆☆☆☆ | 快速体验、生产环境 | 一键部署、环境隔离 | 自定义配置较复杂 |
| 源码编译 | ★★★☆☆ | 开发调试、定制化需求 | 灵活配置、便于修改 | 依赖安装繁琐 |
本文将重点介绍Docker快速部署方案,适合大多数普通用户和运营人员。
三、Docker快速部署步骤
3.1 环境准备
首先需要安装Docker和Docker Compose工具:
# 安装Docker Compose
cd ~
wget https://github.com/docker/compose/releases/download/v2.27.3/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
# 验证安装
docker-compose -v
对于NVIDIA显卡用户,还需要安装NVIDIA Container Toolkit以支持GPU加速:
# 添加NVIDIA官方仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 安装nvidia-docker2
sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
3.2 创建数据缓存目录
为了避免每次重启容器丢失数据,建议创建本地数据目录:
# 创建xinference模型缓存目录
mkdir -p ~/xinference
# 创建chatchat数据目录
mkdir -p ~/chatchat/data
3.3 下载配置文件并启动服务
# 下载docker-compose配置文件
cd ~
wget https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat/raw/master/docker/docker-compose.yaml
# 启动服务
docker-compose up -d
第一次启动时会自动下载镜像,根据网络情况可能需要10-30分钟。启动成功后,可以通过以下命令检查服务状态:
# 查看容器运行状态
docker-compose ps
# 检查端口占用情况
ss -anptl | grep -E '(8501|7861|9997)'
成功启动后会看到三个端口被占用:
- 8501:Langchain-Chatchat Web界面
- 9997:Xinference模型管理界面
- 7861:模型API服务
四、模型配置与启动
4.1 访问Xinference管理界面
在浏览器中输入http://<你的IP地址>:9997,即可打开Xinference的Web管理界面。首次使用需要注册模型,我们可以通过脚本快速完成。
4.2 注册并启动模型
项目提供了自动化脚本,可以在tools/autodl_start_script/目录下找到以下关键文件:
- model_registrations.sh:注册LLM模型
- model_registrations_emb.sh:注册Embedding模型
- start_models.sh:启动LLM模型
- start_models_emb.sh:启动Embedding模型
执行以下命令注册并启动模型:
# 注册LLM模型
bash ./model_registrations.sh
# 注册Embedding模型
bash ./model_registrations_emb.sh
# 启动LLM模型
bash ./start_models.sh
# 启动Embedding模型
bash ./start_models_emb.sh
注意:脚本中的模型路径需要根据实际情况修改,将
/root/autodl-tmp/glm-4-9b-chat替换为你的模型存放路径。
五、初始化知识库
5.1 下载初始化数据
# 进入chatchat数据目录
cd ~/chatchat
# 下载数据压缩包
wget https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat/raw/master/docker/data.tar.gz
# 解压数据
tar -xvf data.tar.gz
解压后会得到以下目录结构:
data/
├── knowledge_base # 知识库文件
├── logs # 系统日志
├── media # 媒体文件
├── nltk_data # 自然语言处理数据
└── temp # 临时文件
5.2 配置Chatchat
# 进入Chatchat容器
docker exec -it root-chatchat-1 bash
# 初始化配置
chatchat-config basic --verbose true
chatchat-config basic --data /usr/local/lib/python3.11/site-packages/chatchat/data
# 配置模型平台
chatchat-config model --set_model_platforms "[{
\"platform_name\": \"xinference\",
\"platform_type\": \"xinference\",
\"api_base_url\": \"http://xinference:9997/v1\",
\"api_key\": \"EMPT\",
\"llm_models\": [\"autodl-tmp-glm-4-9b-chat\"],
\"embed_models\": [\"autodl-tmp-bge-large-zh\"]
}]"
5.3 启动Web界面
完成上述配置后,在浏览器中访问http://<你的IP地址>:8501,即可打开Langchain-Chatchat的Web界面。首次登录需要初始化知识库:
六、使用流程演示
6.1 上传文档
在"知识库管理"页面,点击"上传文件"按钮,支持PDF、TXT、DOCX等多种格式的文档:
6.2 开始问答
在聊天界面输入问题,系统会自动检索知识库并生成答案:
七、常见问题解决
7.1 服务启动失败
如果服务启动失败,可以通过以下命令查看日志:
# 查看Chatchat日志
docker logs root-chatchat-1
# 查看Xinference日志
docker logs root-xinference-1
7.2 模型加载失败
- 确保模型路径正确,且有足够的磁盘空间
- 检查GPU内存是否充足,大型模型可能需要10GB以上显存
- 确认NVIDIA Container Toolkit已正确安装
7.3 无法访问Web界面
- 检查防火墙设置,确保8501和9997端口已开放
- 确认容器是否正常运行:
docker-compose ps - 检查服务器IP地址是否正确
八、进阶配置
对于有一定技术基础的用户,可以参考以下文档进行高级配置:
九、总结
通过本文的步骤,你已经成功搭建了一套完整的本地知识库问答系统。Langchain-Chatchat不仅可以用于企业内部文档管理,还可以作为个人学习助手、客服问答系统等多种场景。
如果在使用过程中遇到问题,可以参考项目的README.md或提交Issue寻求帮助。最后,欢迎你为项目贡献代码或文档,一起完善这个开源项目。
本文档基于Langchain-Chatchat v0.3.1版本编写,随着项目迭代,部分步骤可能会有变化,请以官方文档为准。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考









