0%

微信中的智能助手--WeChatGPT

ChatGPT刚刚开放API,价格低到没朋友。抛开背后的商业运作,这本身对人类的进步是很大的贡献。

可惜ChatGPT国内的网络环境让大家没法很容易的体验到最新的人工智能成果。

本人利用业余时间,搭建了一个简单的开源项目,可以帮助大家快速的基于微信公众号搭建自己的ChatGPT智能助理。

先上几个聊天截图,大家先睹为快。

Chat 1
Chat 2

为什么需要本项目

为什么 OpenAI 开放了网页版本的聊天功能之后,还需要一个基于微信公众号的版本?主要原因是:

  • 国内网络无法直接访问
  • 网页版本体验较差,无法在任意时刻任意地点有手机就能用

微信作为一个广泛使用的专业的聊天软件,是智能助手的理想载体。

项目的初衷和目的

项目的目标是提供一套可用的代码及尽可能简单完善的步骤,帮助一般开发人员通过几步操作就能搭建自己的微信智能助理。

本项目不会致力于让代码具备高性能和支持高并发,因为出于个人用途(或者小的团体,比如家庭),这些特性是没必要的,只能白白的增加复杂度。

(如果希望基于此项目,搭建并发布自己的对外公共服务,出现的一切问题,请自行负责。)

使用教程

借助云服务的能力及微信的免费开放服务,可以零成本搭建一个智能助手。

主要需要完成以下几步:

  • 注册 aws 云服务账号,并启动虚拟机
  • 注册 OpenAI 开发者账号,获取 token
  • 注册微信公众号
  • 配置微信公众号自动回复
  • 部署此服务

完成上述步骤需要具备一定的技术基础,熟练的同学应该可以很快搞定。具体操作就不详述了,请大家移步GitHub参考。

功能说明

基本功能

  • 微信消息签名验证及接口集成
  • 调用 OpenAI 的 API 发起聊天
  • 聊天会话管理
  • 多人同时独立对话互不影响
  • 处理微信公众号 API 返回时间限制
  • 在对话太长时,提示会开启新的对话
  • 定期清理聊天会话
  • 记录基本聊天统计信息
  • 获取微信 ID:发送消息"My ID"或者"我的微信 ID"可获取微信 ID(用于辅助管理此服务)

管理功能

项目支持管理员用户通过微信公众号消息管理服务。目前支持的管理功能包括:对话权限管理、对话次数限制、获取对话统计等。

当前一共定义了以下几类管理命令:

  • add_white_list: 添加白名单用户。参数为用户的微信 OpenID,可从日志中或通过基本功能中的“获取微信 ID”功能获取。
  • remove_white_list: 移除白名单用户。参数为用户的微信 OpenID,可从日志中或通过基本功能中的“获取微信 ID”功能获取。
  • set_limit: 设置用户对话次数限制。参数为用户的微信 OpenID 及每日对话次数限制,以逗号分隔,如 user_a,100表示限制 OpenID 为user_a的用户的每天对话次数为 100 次。
  • set_token: 设置管理员 token。参数为新的 token 值。
  • get_config: 获取配置。无参数,可将参数行设置为 1。
  • get_stat: 获取对话统计。无参数,可将参数行设置为 1。
    调用命令的方式是通过微信公众号发特定格式的消息。

消息格式如下(消息必须包含三行):

1
2
3
admin-command:{YOUR_ADMIN_TOKEN}
{COMAND_NAME}
{COMMAND_ARGS}

规划中的功能

  • 处理用户发送的图片消息
  • 配置公众号关注消息
  • 消息加解密
  • 更多的管理接口
  • 持久化消息存储
  • 让用户配置模型参数

试用

如果想直接体验,可以在以下公众号发起聊天(看不到图片的同学请微信搜索:Bright 技术 人生):

注意:以上公众号系个人微信公众号,使用 OpenAI 的免费额度,每人每天只能对话 20 次。详见项目代码默认设置。后续可能限制更加严格。如果对本人公众号内容感兴趣,欢迎关注。否则,请试用后取关,以免受可能的消息打扰。

欢迎关注我的其它发布渠道