侧边栏壁纸
  • 累计撰写 27 篇文章
  • 累计创建 42 个标签
  • 累计收到 33 条评论

目 录CONTENT

文章目录

如何基于 Chat GPT 搭建微信聊天机器人?

miykah
2023-12-27 / 0 评论 / 0 点赞 / 254 阅读 / 7194 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-12-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

在2023年,Chat GPT成为了热门话题,许多人都想要拥有一个属于自己的聊天机器人。本文将手把手教大家搭建自己的聊天机器人,支持微信、企业微信、公众号、飞书接入,支持群聊

本项目为 Github 开源项目 chatgpt-on-wechat ,目前将近20k stars!

效果如下图所示:

项目文档的部署方式有四种:Docker部署、本地运行、源码部署、RailWay 部署。

本文选择使用 Docker 进行部署,并接入个人微信,非常简单。

本文不涉及企微、公众号等接入,需要的话可以看官方的文档

准备工作

部署一个聊天机器人需要准备:

  • 一台服务器

  • openai API Key

  • 一个实名过的微信小号(最好是小号,因为想要一个微信号成为机器人,相当于一直在电脑端登录着,自己就不能再使用电脑登陆,否则运行在 chatgpt-on-wechat 上的微信号会被挤下去)

使用 Docker Compose 部署

安装 Docker

  • 如果有旧版本 Docker,想重新安装,需要先卸载

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
  • 安装相关依赖

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加 Docker 软件源

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    国内服务器可以使用阿里镜像源:

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安装 Docker

    sudo yum install -y docker-ce
  • 启动 Docker 服务

    sudo systemctl start docker
  • 设置开启自动启动 Docker 服务

    sudo systemctl enable docker
  • 测试是否安装成功,安装成功会显示详细信息

    docker version

安装 Docker Compose

  • 执行以下命令下载 Docker Compose 的二进制文件:

    sudo curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  • 添加执行权限

    sudo chmod +x /usr/local/bin/docker-compose
  • 测试是否安装成功

    docker-compose --version

下载 docker-compose.yml 文件

# 创建目录,路径按需修改
mkdir -p /opt/chatgpt-on-wechat
cd /opt/chatgpt-on-wechat/

# 下载 docker-compose.yml 文件
wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml

修改 docker-compose.yml 文件

具体配置项说明可以参考项目文档:https://docs.link-ai.tech/cow/quick-start/config

这里提供我自己的 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: 'sk-xxxxxxxxxxxxxxxxxxxxxxxxx'   # 按需修改API Key
      OPEN_AI_API_BASE: 'https://api.openai.com/v1'     # 按需修改URL
      MODEL: 'gpt-3.5-turbo'
      PROXY: ''
      SINGLE_CHAT_PREFIX: '["bot", "@bot"]'
      SINGLE_CHAT_REPLY_PREFIX: '"[bot] "'
      GROUP_CHAT_PREFIX: '["@bot"]'
      GROUP_NAME_WHITE_LIST: '["ALL_GROUP"]'
      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 :填入自己的 openai API Key

  • OPEN_AI_API_BASEhttps://api.openai.com/v1 的话需要保证服务器能科学上网,否则应该使用中转接口。

  • SINGLE_CHAT_PREFIX :私聊机器人时,唤醒机器人的前缀。也就是说,需要使用 bot 你是谁?@bot 你是谁 ,才会触发机器人回复。

  • SINGLE_CHAT_REPLY_PREFIX :机器人私聊回复的前缀。机器人的回复会加上 [bot] 前缀,与真人区分开。

  • GROUP_NAME_WHITE_LIST :群聊白名单,在白名单中的群,才会触发机器人。如果是所有群聊都可以,则使用 ["ALL_GROUP"] ,否则应该是:["群名称1", "群名称2"]

目前我主要修改的配置就这些,其余配置按需修改,可以参考文档。

启动容器

执行以下命令,启动容器:

cd /opt/chatgpt-on-webchat/

docker-compose up -d

查看日志:

docker-compose logs -f

日志中会出现二维码,使用准备好的微信小号扫码登陆。

小号需要实名认证,否则登录会报错

出现 Start auto replying 即代表部署完成,可以发送消息测试。

小技巧

如何退出手机微信小号,而登录在 chatgpt-on-wechat 的微信不自动退出?

我部署完成后遇到一个问题:

登录的时候,手机先登录上微信小号,然后扫描日志中的二维码登录(相当于chatgpt-on-wechat是电脑端),微信号在 chatgpt-on-wechat 登录上之后,我手机上小号肯定是会退出的,因为这不是我的常用号。

但是手机一退出小号微信,chatgpt-on-wechat 上的也会被自动退出 (微信这个机制就很奇葩),如何保证手机退出微信后,chatgpt-on-wechat 上的微信不会退出呢?

解决方法也很简单,就是在手机退出登录的时候,先把 WIFI 和 数据流量 都关闭,在无网络的环境下,点击退出登录,等系统转圈,一会就会退出成功,但此时 chatgpt-on-wechat 上登录的微信是不会被自动退出的。

为什么要使用微信小号?

很简单,因为登录在 chatgpt-on-wechat 上的微信,等同于登录在电脑端。 如果你的个人微信,想作为机器人,那么就需要登录在 chatgpt-on-wechat 上。如果你又需要使用电脑微信的时候,chatgpt-on-wechat 上的微信肯定会被挤下去呀!

0

评论区