docker云部署自建知识库的ai微信机器人(易上手很详细)
1、前言
1.1、介绍
本次演示采用的是2核2g Ubunto系统,无内置镜像的华为云服务器
推荐使用腾讯云轻量云服务器docker镜像,可以省去前面第二节步骤,如果还是境外服务器更方便了
1.2、注意事项
需要有linux基础,有用过docker的经验,当然没用过跟着做就行
本文档每一步都有演示,请认真看完文字描述
2、搭建docker环境
2.1、docker和docker-compose
# 安装 Docker
curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker -v
docker-compose -v
当效果如下图,即配置成功
2.2、优化配置过程
需要注意的是,由于docker-compose安装命令是从github上,速度会很慢,下面是解决方法
# 下载完docker以后,找到cli-plugins文件
find / -name cli-plugins
# cd到cli-plugins目录
ls -lah
# 你会在里面找到docker-compose
# 复制cli-plugins目录路径
nano ~/.bashrc
# 编辑环境变量,将下面这行添加到最后一行即可,注意需要将/path/to/your/directory换成你复制的cli-plugins目录
export PATH=/path/to/your/directory:$PATH
# 随后Ctrl+X,Ctrl+Y,Enter
# 随后生效环境变量
source ~/.bashrc
# 接下来再检测一下docker-compose
docker-compose -v
3、下载并修改配置文件config.json和docker-compose.yml
3.1、下载配置文件
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
3.2、修改配置文件docker-compose.yml
vim docker-compose.yml
启用阿里云的镜像,把上面的镜像注释掉,不然拉取很慢而且可能报错
但是腾讯云docker镜像服务器不用在意,境外服务器更不用在意
# 注意需要键盘i键进入修改状态
# 修改完后键盘ESC,英文输入法的":"+wq+Enter
# 随后执行
docker-compose up -d
等待一会变成下面这样
3.3测试容器运行是否正常
oneapi运行在3001端口,默认用户名root密码123456
fastgpt运行在3000端口,默认用户名root密码1234
通过http://<服务器公网ip>:端口号 进行访问
请注意为服务器的安全组或者防火墙放通端口!!!
oneapi
首先是oneapi,点击渠道会让你输入账号密码,输入完后会让你修改密码,不必修改
api-hub进入这个网址注册一个获取api的代理中转站
工作台->余额充值->1元即可测试
点击API令牌->添加令牌->分组选择default->ip段填入0.0.0.0/0,随后创建即可
复制好你的APikey
回到oneapi
点击添加渠道
注意:模型名称必须按要求,如果你会oneapi的配置可以自己换,如果没用过建议跟我一样
点击提交即可
随后点击测试,如果出现右上角测试成功则llm模型api连接完毕
同样的添加embedding模型渠道
注意这里不是选择Openai,而是选择自定义渠道
测试embedding模型,只需要响应403即可,这是因为对话模型和向量模型接口不一样,而oneapi只调chat接口。如果是404响应就是错的
至此oneapi结束
fastgpt
docker ps
可以看到fastgpt运行在3000端口
但是不着急访问,先修改一下config.json文件
这里原本就是gpt-4o-mini,所以我们不需要修改
同样的向量模型也不用更改,但是切记如果你用的模型不一样的话,确保config.json添加了,并且oneapi中也添加了相应渠道,修改完后重启docker-compose,跟我一样的不用执行下面命令
docker-compose down
docker-compose up -d
修改好后,没变动config.json的执行ESC+英文下的:+q+Enter
变动过的执行ESC+英文下的:+wq+Enter
如果不想保存修改的执行ESC+英文下的:+q!+Enter
接下来通过http://<公网ip>:3000访问fastgpt
点击工作台->新建简易应用,创建好后如下图进行llm测试
llm测试成功后,测试embedding
新建一个手动数据集,这边先测试一下embedding是否正常工作
4、知识库问答测试
4.1、获取或准备一份文件(最好是markdown)
我这边在法律数据库中下载了一份中国道路交通安全法的docx文件
4.2、构建知识库
这没有什么问答的,直接分段即可
这边可以点进去看一下分段情况
接下来直接点击工作台->简易应用
4.3、测试知识库问答
跟文档里面一模一样,注意如果没有知识库检索,他可能会乱说一个日期,这边可以测试一下,首先需要清除上下文->把知识库去掉
他这里说的也不完全错,但是他是根据自己原有知识进行的问答,如果换成不公开的内容,没有知识库就会一本正经的胡说八道
5、chat-on-wechat项目
5.1、下载docker-compose.yml文件
接下来要配置启动chat-on-wechat项目
# 退出fastgpt目录
cd ..
mkdir onwechat
cd onwechat
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml
vim docker-compose.yml
添加环境变量OPEN_AI_API_BASE
并且将这三个环境变量暂时置为和我一样
5.2、配置docker-compose.yml环境变量
然后回到fastgpt
你会获得一个api-key,请复制好,因为一旦离开就找不到了只能新建一个
将复制的api-key填入环境变量:OPEN_AI_API_KEY
复制api根地址
填入OPEN_AI_API_BASE参数,注意末尾加个/v1
然后ESC+英文:+wq+Enter保存并退出即可
5.3、启动并拉取镜像
# 第一次别用docker-compose up,因为hub.docker.com仓库是国内禁掉的,需要配置加速器
docker pull docker.1panel.live/zhayujie/chatgpt-on-wechat
# 使用腾讯云轻量docker服务器的可以执行,然后就是境外服务器也无障碍可以拉取到
docker-compose up
# 腾讯云的docker镜像服务器里面配置了私有源(限制了IP只能腾讯云服务器可以用),可以拉取到该镜像
不保证这个源长期有效,如果失效了请参照下面方法(国内普通服务器需要考虑)
有三种解决方式
方式1:寻找新的加速源(最简单)
方式2:服务器内部配置代理
方式3:注册cloudflare配合github上的CF-Workers-docker.io项目进行反代,可以去搜一下教程(相当于自己做一个加速源的代理)
pull结束之后,需要相应修改一下docker-compose.yml文件(仅国内普通服务器需要)
# cd到onwechat目录,执行下面
docker-compose up
随后会出现一个二维码,用实名认证过的微信号扫码登录即可,默认通过bot和@bot开头进行问答,注意未实名过的微信不会成功
6、补充
6.1、项目涉及
fastgpt和chat-on-wechat
chat-on-wechat项目采用的itchat协议
注意里面的参数灵活多变,可以去研究一下chatgpt-on-wechat文档
6.2、本文档补充
1.小白最好还是用腾讯云轻量内置docker容器的服务器最方便,可以省去很多步骤
2.本文档演示每一步都有,请不要跳过文字描述
3.如果对你有帮助的话可以点赞关注一下