目录
- 参考
- 概述
- 部署安装
- 环境准备
- 原理和流程图
- 一键启动
- 启动WebAPI 服务
- 启动WebUI服务
- Docker部署
- 知识库管理
- 常见问题
- 本地知识库怎么微调?回答不准确
参考
手把手教你搭建本地知识库问答AI机器人
LangChain-Chatchat:基于LangChain和ChatGLM2-6B构建本地离线私有化知识库
在家庭私有云上部署体验语言模型chatglm3-6b,打造私人助理
概述
自从去年GPT模型火爆以来,降低了很多个人和企业进入人工智能领域的门槛,对于大模型尤其是开源的大模型国内应该比较受关注和期待,毕竟高额的成本也能将不少人阻挡在门外,其次,大家都希望在产品中集成LLM的能力,结合业务来落地智能化应用,提升产品的竞争力,最直接的应用就是构建知识库。
下面汇总了一下之前介绍的有关构建知识库相关的文章和视频,包含了开源和闭源多种不同的解决方案,从使用情况来看,因为都是开源产品,所以在架构和功能完整性上可能都不够全面,因为一直在持续的迭代过程。
如果是站在一个中小企业的角度,去选型一款比较符合企业构建本地知识库需求的产品来评估,从以下介绍的开源产品目前的实现效果和未来规划目标来看,个人觉得Quivr从设计上来讲更加符合应用需求,前提是增加企业已有文档库、数据库纳入知识库的能力,扩展Danswer提高的功能,完善并丰富对于开源或者闭源模型的支持(目前暂时支持较弱)尤其是对于中文支持不错的国产模型比如ChatGLM2等,另外一种方案就是今天介绍的LangChain-Chatchat刚好可以与Quivr互补,其对于模型的支持很丰富,但对于业务端的属性支持较弱,只支持单个用户单个知识库,不能建立多个知识库通过权限来隔离。
部署安装
环境准备
我使用的硬件和模型信息:
显卡:一块英伟达的A6000
LLM:开源的chatglm3-6b
向量模型:开源的jina-embedding-l-en-v1
向量数据库:开源的milvus
原理和流程图
一键启动
一键启动聊天机器人
安装完成,输入以下命令启动
$ python startup.py -a
看到下面画面后,表示正常启动了
启动WebAPI 服务
在线调用API服务的情况下,直接执执行 server/api.py 脚本启动 API 服务;
python server/api.py
启动 API 服务后,可访问 localhost:7861 或 {API 所在服务器 IP}:7861 FastAPI 自动生成的 docs 进行接口查看与测试。
FastAPI docs 界面
启动WebUI服务
在浏览器输入聊天机器人地址:http://127.0.0.1:8561
Docker部署
如果想快速部署 LangChain-Chatchat 产品来体验,可以选择Docker一键部署的方式,比较简单,只需要先安装Docker 容器,在Unbuntu环境中如何安装 Docker & Docker Compose,可以参考文章 《Quivr 基于GPT和开源LLMs构建本地知识库 (更新篇)》中的3.2节。这里不过多赘述。 Windows安装Docker更简单。
Docker镜像使用的版本一般会稍微滞后一些,如果想快速体验最新的版本按前面开发模式部署会更合适一点。
LangChain-Chatchat项目使用的 Docker 镜像地址是:
http://registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0
docker run -d --gpus all -p 80:8501 registry.cn-beijing.aliyuncs.com/chatchat/chatchat:0.2.0
- 该版本镜像大小 33.9GB,使用 v0.2.0,以 nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04 为基础镜像
- 该版本内置一个 embedding 模型:m3e-large,内置 chatglm2-6b-32k
- 该版本目标为方便一键部署使用,请确保您已经在Linux发行版上安装了NVIDIA驱动程序
- 请注意,您不需要在主机系统上安装CUDA工具包,但需要安装 NVIDIA Driver 以及 NVIDIA Container Toolkit,请参考安装指南
- 首次拉取和启动均需要一定时间,首次启动时请参照下图使用 docker logs -f 查看日志
- 如遇到启动过程卡在 Waiting… 步骤,建议使用 docker exec -it bash 进入 /logs/ 目录查看对应阶段日志
知识库管理
切换到知识库管理后,可以查看和删除已创建知识库、新增知识库,也可以对知识库进行文件增减。
新建知识库:点击“新建知识库”,输入知识库名称和简介,选择向量数据库和模型,再点击新建即可。
上传文件到知识库:选择已创建知识库,选择上传文件,点击“添加文件到知识库”
创建好知识库后,可以切换菜单到“对话”,选择对话模式为“知识库问答”,并选择要对话的知识库,即可开启和特定知识库聊天。
常见问题
本地知识库怎么微调?回答不准确
知识库不用微调,不准确需要分析定位原因,是数据本身问题还是ai问题,ai层面可以考虑增加问题改写步骤(看我前两天分享),换更好的大模型,向量切分方面的优化等