ChatGPT刚刚开放API,价格低到没朋友。抛开背后的商业运作,这本身对人类的进步是很大的贡献。
可惜ChatGPT国内的网络环境让大家没法很容易的体验到最新的人工智能成果。
本人利用业余时间,搭建了一个简单的开源项目,可以帮助大家快速的基于微信公众号搭建自己的ChatGPT智能助理。
先上几个聊天截图,大家先睹为快。
为什么需要本项目
为什么 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 | admin-command:{YOUR_ADMIN_TOKEN} |
规划中的功能
- 处理用户发送的图片消息
- 配置公众号关注消息
- 消息加解密
- 更多的管理接口
- 持久化消息存储
- 让用户配置模型参数
试用
如果想直接体验,可以在以下公众号发起聊天(看不到图片的同学请微信搜索:Bright 技术 人生):
注意:以上公众号系个人微信公众号,使用 OpenAI 的免费额度,每人每天只能对话 20 次。详见项目代码默认设置。后续可能限制更加严格。如果对本人公众号内容感兴趣,欢迎关注。否则,请试用后取关,以免受可能的消息打扰。