使用微信测试号做一个AI对话机器人

AIChatBot – AI 对话机器人#

AIChatBot 是一个基于微信测试号的对话机器人,它可以对接任何兼容 OpenAI 规范的 API 接口,例如 AIGC2D,并且还添加了 Google 联网搜索的支持。

example.jpg

安装和配置#

准备资料#

  1. 访问并开通微信测试号,将页面上的 appID 和 appsecret 作为环境变量,分别命名为 MP_APPIDMP_APPSECRET

  2. 随机编写一个 Token,并将其设置为环境变量 MP_TOKEN

  3. 配置 OpenAI 或 AIGC2D 接口,设置以下环境变量:

  4. 设置触发词,可以通过设置环境变量来实现。如果测试为空,则每一句话都会触发 AI 答复。

  5. 配置 Google 搜索引擎插件,使用 serper 实现,注册后可获得 2500 次免费请求。设置以下环境变量:

    • ENABLE_SEARCH:是否启用搜索引擎插件。
    • SERPER_KEY:搜索引擎的 API 密钥。
  6. 启动服务后,记得将回调地址和 Token 回填到微信测试号设置页面。

Docker 安装#

  1. 确保对./data 有写权限,或者挂载到有权限的位置。

  2. 执行以下命令启动 Docker 容器:

    docker run -d --name bot \
    -e MP_APPID=<填写appID> \
    -e MP_SECRET=<填写appsecret> \
    -e MP_TOKEN=<填写Token> \
    -e DEFAULT_API_URL=https://api.aigc2d.com/v1 \
    -e DEFAULT_API_KEY=<填写API密钥> \
    -v ./data:/app/data \
    -p 80:8080 \
    alone88/aichatbot:latest

Docker Compose 安装#

  1. 确保对./data 有写权限,或者挂载到有权限的位置。

  2. 复制 docker-compose.example.ymldocker-compose.yml,并根据需要修改环境变量。

    version: '3'
    services:
      bot:
        image: alone88/aichatbot
        environment:
          - MP_APPID=<填写appID>
          - MP_SECRET=<填写appsecret>
          - MP_TOKEN=<填写Token>
          - DEFAULT_API_URL=https://api.aigc2d.com/v1
          - DEFAULT_API_KEY=<填写API密钥>
          - ENABLE_HISTORY=true
        volumes:
          - ./data:/app/data
        ports:
          - 80:8080
  3. 启动服务。

回填 Token 和回调地址#

启动服务后,可以获得回调地址。如果 IP / 域名是 xxx.xxx.xxx.xxx:xxxx,那么回调地址是 http://xxx.xxx.xxx.xxx:xxxx/wechat

在微信测试号设置页面的接口配置信息中,将回调地址和 Token 填入并保存。

wechat_example.png

使用#

用微信扫描测试号设置页面的二维码,关注测试号后,可以发送问题。也可以通过 /setXXX 命令进行个人配置。

可以通过 /help 命令查看可用命令。

你可以将测试号发送到桌面,作为快速进入的入口。这样就不用在微信里边到处找了(目前只支持安卓)。

环境变量说明#

以下是一些常用的环境变量说明:

变量名 说明
MP_APPID 微信公众号 APPID
MP_SECRET 微信公众号 Secret
MP_TOKEN 微信公众号 Token
DEFAULT_API_KEY OpenAI/AIGC2D 的 apikey
DEFAULT_API_URL OpenAI/AIGC2D 的接口地址,默认为 api.aigc2d.com/v1
DEFAULT_WORD 触发词,包含触发词才会触发回复,不设置则所有都会触发回复
DEFAULT_MODEL 模型名称,默认为 gpt-3.5-turbo-16k
DEFAULT_SYSTEM 系统提示词,默认为空
MAX_TOKEN 最大 max_tokens 限制,默认根据模型限定
TEMPERATURE 模型的 temperature
REPLY_CHUNK_LENGTH 每次输出字数限制,超过这个限制则会分多条消息返回
ENABLE_HISTORY 是否保留对话上下文
ENABLE_SEARCH 是否启用搜索引擎插件
SERPER_KEY 搜索引擎的 apikey

以上是 AIChatBot 的一些基本信息和安装配置方法。它可以帮助你快速搭建一个智能对话机器人,并且可以根据需要进行个性化配置。快来体验 AIChatBot 吧!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。