5分钟上手Langchain-Chatchat:从0到1搭建本地知识库问答系统

5分钟上手Langchain-Chatchat:从0到1搭建本地知识库问答系统

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

你是否还在为企业文档查询效率低而烦恼?是否希望拥有一个能理解本地文件的智能助手?本文将带你一站式完成Langchain-Chatchat的安装部署,无需专业开发背景,只需跟着步骤操作,即可在自己的电脑上搭建一套完整的本地知识库问答系统。读完本文后,你将掌握Docker快速部署、环境配置、模型启动和知识库初始化的全流程。

一、项目简介

Langchain-Chatchat(原Langchain-ChatGLM)是一个基于Langchain与大语言模型(如ChatGLM)构建的本地知识库问答系统。它能够将你的文档资料转化为向量数据存储,并通过大语言模型实现智能问答,保护数据隐私的同时提高信息检索效率。

项目结构清晰,主要包含以下核心模块:

项目架构

二、两种部署方案对比

部署方式难度适用场景优点缺点
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/目录下找到以下关键文件:

执行以下命令注册并启动模型:

# 注册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寻求帮助。最后,欢迎你为项目贡献代码或文档,一起完善这个开源项目。

项目Logo

本文档基于Langchain-Chatchat v0.3.1版本编写,随着项目迭代,部分步骤可能会有变化,请以官方文档为准。

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值