今天发现了一个很有意思的项目,将聊天机器人应用到微信上,因此尝试搭建一下
项目源出处:https://github.com/zhayujie/chatgpt-on-wechat?tab=readme-ov-file
steps
环境
- Windows 10 专业版
- docker desktop
- wget 工具
- ollama
准备工作
1. 安装 docker desktop
在控制面板中 -> 程序 -> 启用或关闭windows功能 -> 勾选Hyper-V、适用于Linux的Windows子系统、虚拟机平台
点击“确定” -> 重启电脑
2. 安装wsl
管理员模式 打开 powershell 输入以下命令
wsl --update
wsl --install
注意:在执行wsl --install(这个命令可能要魔法)
注册账号和密码,之后会安装一个linux系统
安装完成后重启电脑
注意:如果没有执行前面的部分,安装的docker后,界面将会是空白
3. 安装 docker
安装完成后会自动重启电脑(如果没有重启,建议手动重启一下)
重启电脑后再次打开docker,若启动docker后看到侧边栏有容器、图像等字样说明安装成功
也可以使用以下命令验证是否安装成功(cmd)
docker -v
docker compose version
4. docker 部署 fastgpt
在FastGPT创建一个应用
创建完应用后,进去刚刚创建的应用,配置AI模型,测试一下刚刚创建的应用的ai模型是否能使用
根据官方文档下载config.json
如果你是Linux用户的话,可以通过命令行下载
下载完后,打开docker,直到右下角变绿(启动成功后)
打开你的两个文件的所在处(我这里新建了一个chatgpt-on-wechat目录来存放这两个文件),然后cmd执行命令
docker-compose up
安装过程非常慢,成功后的状态
此时docker desktop容器里就可以看到了
双击点击去,所在路径是你刚刚执行docker-compose up的所在目录
然后运行localhost:3000,运行登录进去fastgpt(默认账号:root,密码:1234),测试成功
此时你要重新创建一下应用(前面的创建只是为了演示fastgpt的使用)
注意:此时的AI模型只有三个,而这三个你是没有权限的(如果有openAPI账号,可以在后续中ollama里配置
发布应用,创建的fastgpt密钥
5. 配置wget(因为Windows没有自带的wget工具,需要手动下载,Linux用户可以跳过此步骤)
访问wget官网,下载wget压缩包
解压压缩包后,将其配置到环境变量当中
部署微信机器人
找到微信机器人项目
新建一个目录,名字为chatgpt-on-wechat,这个与你上面的docker部署fastgpt的目录名字是一样的
然后根据项目的快速搭建,在这个项目运行。将这个文件替换掉你之前下载的文件
然后在cmd中运行
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml
修改这个docker-compose.yml配置文件
version: '2.0'
services:
chatgpt-on-wechat:
image: zhayujie/chatgpt-on-wechat
container_name: chatgpt-on-wechat
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: 'fastgpt-DlzLulpesfJIrbPKKmEbsgyqFBLg7xeh70bpYRws3ZMYbDYgZtXOB8dtUwnV'
OPEN_AI_API_BASE: 'http://host.docker.internal:3000/api/v1'
MODEL: 'gpt-3.5-turbo'
PROXY: ''
SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
GROUP_CHAT_PREFIX: '["@bot"]'
GROUP_NAME_WHITE_LIST: '["九转寿司"]'
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
CONVERSATION_MAX_TOKENS: 1000
SPEECH_RECOGNITION: 'False'
CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
EXPIRES_IN_SECONDS: 3600
USE_GLOBAL_PLUGIN_CONFIG: 'True'
USE_LINKAI: 'False'
LINKAI_API_KEY: ''
LINKAI_APP_CODE: ''
修改的部分
- OPEN_AI_API_KEY: 填入你刚刚创建的fastgpt应用的密钥
- 新增:OPEN_AI_API_BASE: 'http://host.docker.internal:3000/api/v1'
- 修改GROUP_NAME_WHITE_LIST,值为你的微信群的名称
重启docker,运行
docker-compose up
此时,你的docker会多了一个容器
稍等片刻,然后微信扫码
注意:这里Windows的cmd有个毛病,弹出的二维码你扫不了
但是非常幸运的是,docker里面可以看到你的cmd日志信息,在那里可以扫描
如果登录的时候,登录确认了但是遇到了问题
原因是由于你的微信是刚刚注册的,微信权限管控的限制,你必须使用相对注册较久的账号
扫码登录确认后,就可以用其他微信号@这个机器人发送消息了
此时又遇到了一个问题,就是用的chatgpt3.5是没有余额的
安装ollama ,搭建一个本地的AI
安装完成后,通过cmd验证是否安装成功
ollama --version
在刚刚的ollama官网中,下载一个模型,这里使用的是qwen模型
将下载模型的命令复制到cmd中
ollama run qwen:7b
下载完后可以通过ollama list查看是否有下载成功
接着再次重启docker
访问One API(localhost:3001)
登录oneAPI(默认账号:root 密码:123456)
添加渠道
↓这里的名称,是后续你在fastgpt里看到的模型的名称
填入的模型是你刚刚下载的模型,可以通过cmd的ollama list查看你的模型名称,再填进去
提交完毕后,出去测试一下,测试所需响应时间根据电脑不同而不同
去到目录文件config.json中,添加自己的模型
赋值某一个,然后修改model和name即可
model和name是你刚刚创建渠道对应的名字
"llmModels": [
{
"model": "gpt-3.5-turbo",
"name": "gpt-3.5-turbo",
"maxContext": 16000,
"avatar": "/imgs/model/openai.svg",
"maxResponse": 4000,
"quoteMaxToken": 13000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": false,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": true,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
},
{
"model": "gpt-4-0125-preview",
"name": "gpt-4-turbo",
"avatar": "/imgs/model/openai.svg",
"maxContext": 125000,
"maxResponse": 4000,
"quoteMaxToken": 100000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": false,
"datasetProcess": false,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": false,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
},
{
"model": "gpt-4-vision-preview",
"name": "gpt-4-vision",
"avatar": "/imgs/model/openai.svg",
"maxContext": 128000,
"maxResponse": 4000,
"quoteMaxToken": 100000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": true,
"datasetProcess": false,
"usedInClassify": false,
"usedInExtractFields": false,
"usedInToolCall": false,
"usedInQueryExtension": false,
"toolChoice": true,
"functionCall": false,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
},
{
"model": "qwen:7b",
"name": "ollama-qwen:7b",
"maxContext": 16000,
"avatar": "/imgs/model/openai.svg",
"maxResponse": 4000,
"quoteMaxToken": 13000,
"maxTemperature": 1.2,
"charsPointsPrice": 0,
"censor": false,
"vision": false,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"usedInQueryExtension": true,
"toolChoice": true,
"functionCall": true,
"customCQPrompt": "",
"customExtractPrompt": "",
"defaultSystemChatPrompt": "",
"defaultConfig": {}
}
],
此时重启docker,再次进入fastgpt后可以看到可以选择本地模型ollama-qwen:7b的
选择此模型后,测试一下是否可以使用
重新运行,扫码登录,即可使用微信机器人
至此,部署微信机器人成功