【从零开始】微信AI机器人部署笔记(基于Linux+docker)

介绍:
基于chatgpt-on-wechat项目,实现AI机器人自动回复微信。

支持微信公众号、企业微信应用、飞书、钉钉接入,可选择GPT3.5/GPT4.0/GPT4o/Claude/Gemini/ChatGLM/kimi/文心一言/讯飞星火/通义千问/LinkAI

项目地址 (Github):GitHub - zhayujie/chatgpt-on-wechat: 基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT4.0/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT4.0/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。 - zhayujie/chatgpt-on-wechaticon-default.png?t=O83Ahttps://github.com/zhayujie/chatgpt-on-wechat

DEMO视频:https://cdn.link-ai.tech/doc/cow_demo.mp4

环境:EOS服务器Linux centos7,通过docker部署

1.登录阿里云官网,获取免费服务器试用。我选择了Linux centos7境内服务器。按量计费,可以免费试用三个月。

Docker 部署无需安装python环境和下载源码,也不用考虑依赖

安装docker

查看是否已经安装了docker

yum list installed | grep docker

以下显示已安装,如果没有安装则没有条目

卸载已有docker(按需卸载)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

更新系统包

sudo yum update -y

安装devicemapper驱动依赖

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

安装wget(后面需用到)

yum install -y wget

下载Docker包(需在cd /etc/yum.repos.d/目录下执行该命令)

wget http://mirrors.163.com/docker-ce/linux/centos/docker-ce.repo

注意:安装之前先关闭防火墙

查看防火墙状态

systemctl status firewalld

临时关闭防火墙

systemctl stop firewalld

安装Docker

yum install -y docker-ce.x86_64

查看Docker是否安装成功

yum list installed | grep docker

启动Docker

systemctl start docker

查看Docker状态

systemctl status docker

设置开机启动Docker

systemctl enable docker

查看Docker进程

ps -ef | grep docker

查看docker系统信息

docker info

镜像源更新方法:

vim  /etc/docker/daemon.json
{
	"registry-mirrors": [
        "https://hub.uuuadc.top", 
        "https://docker.anyhub.us.kg", 
        "https://dockerhub.jobcher.com",  
        "https://docker.ckyl.me", 
        "https://docker.awsl9527.cn"]
}

查看镜像是否安装成功

docker info

然后重启docker服务

service docker restart

Docker开启远程访问(docker-compose需用)

编辑docker.service
vim /lib/systemd/system/docker.service
注释与新增


按i进入编辑模式

注释
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

新增
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

按Esc,按Shift+;右下角弹出:输入wq  写入并退出

更新配置与重新启动
systemctl daemon-reload
systemctl restart docker
添加开放2375端口
firewall-cmd --add-port=2375/tcp --permanent
重载入添加的端口
firewall-cmd --reload
查询2375端口是否开启成功
firewall-cmd --query-port=2375/tcp

安装docker-compose


下载Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

请注意,1.29.1是版本号,可以根据需要替换为最新版本

为Docker Compose二进制文件添加执行权限

sudo chmod +x /usr/local/bin/docker-compose


验证Docker Compose安装是否成功

docker-compose --version

获取AI模型API及配置信息

完成AI模型的官网注册和API获取。无需代理,可使用 Kimi、文心、讯飞、GPT-3.5、GPT-4o 等模型

以KIMI为例:

地址:Moonshot AI - 开放平台Kimi 开放平台(Moonshot AI 大模型开放平台),提供基于 Kimi 大模型(Moonshot AI 大模型)的长文本数据处理 API,开放平台支持灵活的 API 调用,带来领先的技术体验。icon-default.png?t=O83Ahttps://platform.moonshot.cn/console/api-keys

注册并登录账号后,到API管理申请API 

查看使用手册地址:https://platform.moonshot.cn/docs/intro#%E6%96%87%E6%9C%AC%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B

找到请求地址: 

新账号有15元赠送金额 

目前的收费方式如下: 

模型配置信息

1.  model: 模型名称  https://github.com/zhayujie/chatgpt-on-wechat/blob/master/common/const.py

2.按照模型的不同。参数相应变化:

以kimi为例:

model: 'moonshot-v1-8k'或 'moonshot-v1-32k'或'moonshot-v1-128k'

moonshot_api_key: 'xxxxxx'    # 填入上面创建的kimi API KEY

moonshot_base_url: 'https://api.moonshot.cn/v1/chat/completions' # 填入官网的base url

以gemini为例(需要代理或境外服务器):

GEMINI_API_KEY:'AIxxxxxxxxxx'
MODEL: 'gemini'  #其他可选模型GEMINI_PRO, GEMINI_15_flash, GEMINI_15_PRO

微信公众号部署AI机器人

先需要前往 微信公众平台 注册一个公众号,项目支持的公众号类型有两种,可根据你的需求进行选择:

类型要求特点
个人号个人可申请在收到消息时会回复用户一条消息,回复生成后需要用户主动发消息获取
企业号企业可申请,同时需要通过微信认证开通客服接口回复生成后可主动推送给用户

公众号目前只支持 服务器 和 docker 环境部署

登陆微信公众号平台

登陆微信公众平台微信公众平台,给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。icon-default.png?t=O83Ahttps://mp.weixin.qq.com/

获取基本配置信息 

主要获取以下公众号信息,用于填写配置信息。

      wechatmp_app_id: "wxxxxxx" #微信公众号的app id信息
      wechatmp_app_secret: "xxxxxxx" #微信公众号的app_secret
      wechatmp_aes_key: "xxxxxxxxxx"#微信公众号的aes_key
      wechatmp_token: "xxxxxxxxx"#微信公众号的token
      wechatmp_port: 80  #微信公众号 http必须为80端口,https必须为443端口

左侧 “设置与开发”中选择 “基本配置” ,获取公众号开发信息

1.记录开发者ID(APP ID)填写到wechatmp_app_id

2.记录开发者密码(APP Secret)填写到wechatmp_app_secret

3.IP白名单  点击“查看” ,将服务器公网IP填入IP白名单

填写服务器配置

1. 填写http://{HOST}/wx   {HOST} 可以是服务器的公网ip或域名。此处填写后暂时不能保存,等完成服务器部署后再保存

2. 设置Token  填写到wechatmp_token

3. 设置EncodingAESKey  填写到wechatmp_aes_key

配置 docker-compose.yml

vim docker-compose.yml

打开后按i 填写和修改配置信息

version: '2.0'
services:
  chatgpt-on-wechat:
    image: zhayujie/chatgpt-on-wechat
    container_name: chatgpt-on-wechat
    security_opt:
      - seccomp:unconfined
    environment:

      moonshot_api_key: 'xxxxxx'    # 填入上面创建的kimi API KEY
      moonshot_base_url: 'https://api.moonshot.cn/v1/chat/completions' # 填入base url
      MODEL: 'moonshot-v1-8k' # 模型名称。当use_azure_chatgpt为true时,其名称为Azure上model deployment名称
      PROXY: ''                             # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890"
      SINGLE_CHAT_PREFIX: '["bot", "@bot"]' # 私聊时文本需要包含该前缀才能触发机器人回复
      SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'  # 私聊时自动回复的前缀,用于区分真人
      GROUP_CHAT_PREFIX: '["@bot"]'         # 群聊时包含该前缀则会触发机器人回复
      GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]' # 开启自动回复的群名称列表
      IMAGE_CREATE_PREFIX: '["画", "看", "找"]' # 开启图片回复的前缀
      CONVERSATION_MAX_TOKENS: 1000            # 支持上下文记忆的最多字符数
      SPEECH_RECOGNITION: 'False'              # 是否开启语音识别
      CHARACTER_DESC: '你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'# 人格描述 
      EXPIRES_IN_SECONDS: 3600
      USE_GLOBAL_PLUGIN_CONFIG: 'True'  
      USE_LINKAI: 'False'        # 是否使用LinkAI接口,默认关闭,开启后可国内访问,使用知识库和MJ
      LINKAI_API_KEY: '' # LinkAI Api Key
      LINKAI_APP_CODE: ''# LinkAI 应用或工作流code
      channel_type: "wechatmp"  #微信公众号模式
      wechatmp_app_id: "wxxxxxx" #微信公众号的app id信息
      wechatmp_app_secret: "xxxxxxx" #微信公众号的app_secret
      wechatmp_aes_key: "xxxxxxxxxx"#微信公众号的aes_key
      wechatmp_token: "xxxxxxxxx"#微信公众号的token
      wechatmp_port: 80  #微信公众号 http必须为80端口,https必须为443端口
    ports:
      - "80:80"#设置微信公众号的80端口转移

    user: root #80端口需要root权限

修改后键入:wq 保存并退回

先确保80端口(http)或433端口(https)没有被占用。

检查端口上的服务

sudo netstat -tuln | grep :80

没有则表示没有被占用,如有占用,先清除 

如果你不确定哪个容器占用了端口,可以使用以下命令列出所有正在运行的容器及其端口映射:

sudo docker ps -a

停止容器:

sudo docker stop <容器ID>

 删除容器:

sudo docker rm -f <容器ID>

确保要使用的端口加入云服务器的如安全组

找到实例=>查看安全组=>入方向安全组

启动容器

在 docker-compose.yml 所在目录下执行以下命令启动容器:

sudo docker compose up -d

运行 sudo docker ps 能查看到 NAMES 为 chatgpt-on-wechat 的容器即表示运行成功。

如果出现拉取失败,修改镜像源,参考docker安装中的镜像源更新方法:

查看容器

docker ps

查看容器是否启动成功

检查是否可以ping通端口

crul {host}/wx

成功后回到微信服务器配置界面,点击保存服务器配置

修改配置 需重启容器

如果修改了 docker-compose.yml 中的配置

执行以下命令可以关闭服务:

sudo docker compose down

再执行以下代码重启容器 

sudo docker compose up -d

企业微信部署AI机器人

创建企业微信应用

登录企业微信,点击 "我的企业" 菜单,在最下方可以看到 "企业ID",保存这个id,后续需要填写在配置的 wechatcom_corp_id 字段中

切换到 "应用管理" 菜单,点击创建应用:

记录下页面上显示的AgentId和 Secret信息:

   Secret 填入:  wechatcomapp_secret: "xxxxxxxxxxxxxxx"
   AgentId填入:   wechatcomapp_agent_id:"1000002"

在功能模块中=> 接受消息,点击 "设置API接收" 配置应用接口:

url 的格式为 http://ip:9898/wxcomapp,如果是认证企业则需要填写备案域名

随机获取 Token 和 EncodingAESKey 并保存下来,

Token 填入: wechatcomapp_token

EncodingAESKey 填入: wechatcomapp_aes_key

此时无法保存 API接收配置 ,等服务器容器启动后,再回来保存。

配置 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:
      
      GEMINI_API_KEY:'AIxxxxxxxxx8'
      MODEL: 'gemini'
      PROXY: ''
      SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
      SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
      GROUP_CHAT_PREFIX: '["@bot"]'
      GROUP_NAME_WHITE_LIST: '["ChatGPT测试群", "ChatGPT测试群2"]'
      IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
      CONVERSATION_MAX_TOKENS: 1000
      SPEECH_RECOGNITION: 'False'
      CHARACTER_DESC: '你是基于大语言模型的AI智能助手,旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
      EXPIRES_IN_SECONDS: 3600
      USE_GLOBAL_PLUGIN_CONFIG: 'True'
      USE_LINKAI: 'False'
      LINKAI_API_KEY: ''
      LINKAI_APP_CODE: ''
      channel_type: "wechatcom_app"
      wechatcom_corp_id:"wwxxxxxxxxxx"
      wechatcomapp_secret: "xxxxxxxxxxxxxxx"
      wechatcomapp_agent_id:"1000002"
      wechatcomapp_aes_key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      wechatcomapp_token: "xxxxxxxxxxxx"
      wechatmp_port: 9898
   ports:
      -9898:9898

启动容器

sudo docker compose up -d

查看容器

docker ps

检查 URL是否可以ping通

ping http://ip:9898/wxcomapp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值