/wechat-chatgpt-1

一个基于 ChatGPT 的 AI 助手微信机器人

Primary LanguageTypeScript

ChatGPT 微信机器人

三分钟,创建一个 ChatGPT AI 小助手。

  • 负载均衡:多个 Token 增强其稳定性
  • 场景模式:可通过 PROMPT 配置机器人为专业的翻译、面试官、医生等
  • 群聊控制:可通过正则表达式根据群聊名称控制在哪个群开启机器人
  • 私聊控制:可通过正则表达式根据私聊微信昵称控制开启机器人
  • 支持日志:可查看每天多少条记录
  • 反向代理:为不同地区提供更快的 OpenAI 的代理 API 地址

环境要求

  1. node.js >= 18
  2. 基于 Web 协议的机器人最近有可能被封禁,可采用 iPad 其它协议的机器人,可在 index.ts 中更换其他 Puppet

配置与环境变量

编辑 ./config.ts 配置文件。

export default {
  // 自动同意添加好友的口令
  acceptText: /ChatGPT/,

  // 如果微信机器人跑在国内,必须配置该项,其为官方 API 在国内的代理
  baseURL: process.env.BASE_URL || 'https://api.openai.com/v1',
  apiKey: process.env.OPEN_API_KEY.split(','),
  model: process.env.GPT_MODEL || 'gpt-3.5-turbo',
  // 通过 prompt 可以配置为各种各样的机器人,如翻译、面试、SQL 生成器等。
  prompt: process.env.PROMPT || '',

  // 判断在哪里开启机器人,默认是私聊以及艾特机器人的群聊
  // 是否开启群聊模式,可使用正则以及 boolen,如果是正则用以决定在那些群开启群聊
  enableGroup: /^(技术交流群|面试直通车|学习)$/,
  // enableGroup: true,

  // 是否开启私聊模式,可使用正则以及 boolen,如果是正则用以决定与谁私聊
  // enablePrivate: true,
  enablePrivate: /(山月)/,
}

对于 OpenAI 的 key 及国内代理 BaseURL 等敏感数据,可以置于环境变量中,编辑 .env 配置文件。

OPEN_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxybnC"

其中,OPEN_API_KEY 支持多个 key 负载均衡,在环境变量中使用 , 隔开

OPEN_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxybnC,k-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxybnC,k-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxybnC"

步骤

  1. 编辑环境变量
$ cp .example.env .env

并编辑以下环境变量。注意,如果你在国内服务器部署,必须配置 BASE_URL 环境变量,其为 OpenAI 在国内的代理 API,需自行搭建

# 如果部署在 vercel 等境外服务器,则不需要此项配置
# 如果部署在境内,可以使用山月的临时代理 API,不过强烈建议自行搭建
BASE_URL="https://ai.devtool.tech/proxy"
OPEN_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  1. 编辑是否允许群聊以及私聊

编辑 ./config.ts,配置是否开启群聊以及私聊模式。

{
  // 判断在哪里开启机器人,默认是私聊以及艾特机器人的群聊
  // 是否开启群聊模式,可使用正则以及 boolen,如果是正则用以决定在那些群开启群聊
  enableGroup: true,

  // 或者只允许在特定的群开启群聊
  enableGroup: /^(技术交流群|面试直通车|学习)$/,

  // 是否开启私聊模式,可使用正则以及 boolen,如果是正则用以决定与谁私聊
  enablePrivate: true,

  // 或者只允许对特定的人开启私聊
  enablePrivate: /(山月)/,
}
  1. 开启一个微信机器人,使用将要作为机器人的微信扫码进行登录
$ npm start

待出现登录成功字样时,则成功开启。

  1. 健康检查

向机器人发送 /ping 指定,它会默认回复 pong。以确保机器人已经正常工作。

  1. 与机器人对话

交流

如需协助部署,或者二次开发定制服务,可添加微信。

如需技术交流,可添加微信或者进入飞书群。