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

AIChatBot -- AI对话机器人

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

安装和配置

准备资料

  1. 访问并开通微信测试号,将页面上的appID和appsecret作为环境变量,分别命名为MP_APPIDMP_APPSECRET
  2. 随机编写一个Token,并将其设置为环境变量MP_TOKEN
  3. 配置OpenAI或AIGC2D接口,设置以下环境变量:
    • DEFAULT_API_URL:API的地址,默认为https://api.openai.com/v1或https://api.aigc2d.com/v1。
    • DEFAULT_API_KEY:API的密钥。
    • DEFAULT_MODEL:模型名称,默认为gpt-3.5-turbo-16k。
  4. 设置触发词,可以通过设置环境变量来实现。如果测试为空,则每一句话都会触发AI答复。
  5. 配置Google搜索引擎插件,使用serper实现,注册后可获得2500次免费请求。设置以下环境变量:
    • ENABLE_SEARCH:是否启用搜索引擎插件。
    • SERPER_KEY:搜索引擎的API密钥。
  6. 启动服务后,记得将回调地址和Token回填到微信测试号设置页面。

Docker安装

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

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

代码语言:javascript
复制
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安装

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

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

代码语言:javascript
复制
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

启动服务。

回填Token和回调地址

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

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

使用

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

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

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

环境变量说明

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

变量名

说明

MP_APPID

微信公众号APPID

MP_SECRET

微信公众号Secret

MP_TOKEN

微信公众号Token

DEFAULT_API_KEY

OpenAI/AIGC2D的apikey

DEFAULT_API_URL

OpenAI/AIGC2D的接口地址,默认为https://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吧!