ChatGPT最近火出了圈,它强大的AI智能可以辅助大家更快的完成工作。但由于它还未开放国内访问,所以在国内出现了一些第三方服务,提供了类似ChatGPT的功能。 但往往会遇到服务没有ChatGPT官网智能、限流严重、甚至是收费等问题。
本文会讲述如何搭建一个可服务千人以上的ChatGPT机器人方案。
一、必备知识
ChatGPT、OpenAI、GPT-3.5之间是什么关系
OpenAI是一家人工智能公司,旗下有一款聊天机器人产品,叫ChatGPT,可以通过网页使用。
ChatGPT使用的是改良版的GPT-3.5模型,是目前最智能的聊天机器人,但OpenAI公司并没有对外开放它的API。
目前开放的API是基于GPT-3.5模型,所以如果通过API形式调用,使用的是GPT-3.5模型,比ChatGPT笨一点,目前众多公众号提供的服务都是基于此,所以就会出现它们并没有ChatGPT官网聪明的情况。
各个产品分析对比如下:
产品形式优点缺点费用是否开放API相关资料ChatGPT官网1. 模型最先进最聪明
2. 支持多轮会话1. 服务不稳定,经常限流导致无法使用
2. 大陆和香港不可用,需要使用代理访问免费不开放
可以用浏览器模拟API效果,但是需要手动处理Cloudflare的防火墙验证官网地址:https://chat.openai.com/chat注册方式:https://juejin.cn/post/71734478
ChatGPT-Plus1. 使用Turbo模型,回答速度更快。
2. 提升了稳定性,限流情况大幅减少1. 20美元/月,并且需要境外信用卡支付20美元/月同ChatGPT官网Plus开通方式:https://mirror.xyz/eatdao.eth/MIZVc7NgrtXiWpt2nqovK4-3RCNC4eZVhwWJ-Xz3m6IPlus说明文档:https://help.openai.com/en/articles/6950777-chatgpt-plus
OpenAI的API接口
(基于GPT-3.5)1.服务稳定性好,不会出现限流
2. 无需代理即可使用1. 模型没有ChatGPT官网好,有点笨
2. 按字数收费
3. 多轮会话需要通过存储历史会话才能实现大约是 0.02美元/千字
新账号赠送18美元完善的API调用形式API文档:https://platform.openai.com/docs/api-reference/introduction价格说明:https://openai.com/api/pricing/
ChatGPTUnofficialProxyAPI1. 与ChatGPT官网一样聪明
2. 使用非官方代理服务器以绕过 Cloudflare 的方式访问 ChatGPT 的后端 API1. 依赖于第三方服务器并且有速率限制免费完善的API调用形式使用文档:https://github.com/transitive-bullshit/chatgpt-api#usage—chatgptunofficialproxyapi
本教程会采用 ChatGPT官网为主 + ChatGPT-Plus为辅,再加上OpenAI的API兜底的形式,实现最佳的可用性。
聊天机器人Wechaty是什么
我们实现一个ChatGPT机器人,除了底层调用ChatGPT的服务外,用户端还需要一个聊天的界面。
自研一个聊天界面,开发成本较高,需要开发前端的交互界面以及后端的Websocket服务。比较简单的方式是使用现有的聊天工具(微信、企业微信、钉钉等),将他们接入ChatGPT。
Wechaty是一个开源的的对话机器人 SDK,通过它可以接入多种微信的机器人聊天,包括普通微信和企业微信。不同的接入方式称作为不同的Puppet,当然,底层都是Wechaty。方案的架构原理如下
我们通过不同的Puppet,可以很简单的实现微信/企业微信的机器人,下面是一些常见的Puppet
Puppet使用环境使用的微信协议收费PuppetPuppeteer微信通过浏览器 Hook 网页API免费(存在微信被封风险)PuppetPadchat微信iPad 协议收费(目前200元/月)PuppetPadpro微信iPad 协议收费(目前200元/月)wechaty-puppet-service企业微信/收费(目前200元/月)PuppetWechat4u微信通过HTTP 调用网页API免费(存在微信被封风险)
可以根据需求选择不同的Puppet,不过要注意,使用免费的微信Puppet,微信时不时会封。所以对于用微信机器人来说,还是使用付费的iPad协议为好。
高可用ChatGPT机器人方案原理
了解完上述背景信息后,我们来讲讲如何实现一个高可用的ChatGPT机器人,先看看方案整体的架构图
具体的方案图片已经阐述的较为清晰,有不清楚的可以在文章下面留言。
部署该项目需要准备的东西
首先该方案是基于开源项目 https://github.com/fuergaosi233/wechat-chatgpt 二次修改,整体原理与该项目一致,可以根据个性化需求进行相应的修改(比如更换Puppet,增加API兜底逻辑等)
部署该项目需要提前准备如下东西
1. 一台可访问ChatGPT网站的Windows服务器
备注:使用Windows服务器的原因是有时候需要手动处理Cloudflare的验证码
2. 一个可用的微信/企业微信账号
3. N个ChatGPT账号(账号越多越稳定、Plus账号越多越稳定)
4. 一个OpenAI的API-KEY
有了上述准备后,可以直接Clone项目,进行部署。需要新增部分逻辑,例如Plus账号匹配概率提升、服务限流后可以通过API形式调用等。
一些注意点与玩法
1. 由于ChatGPT服务稳定性一般,所以时不时会出现服务限流的情况,目前ChatGPT的限流策略为:
– 一个账号同一时间多个聊天同时进行。 这种情况会提示服务器繁忙,需要1分钟后再试
– 一个账号1小时聊天次数过多(大概高于50次以上),会提示服务器繁忙,需要1小时后再试
2. 如果想要ChatGPT回答的更加有效,那么需要输入更好的问题,这个项目总结了一些好的问题,可以作为参考:https://github.com/f/awesome-chatgpt-prompts
不使用Wechaty机器人的替代方案
如果不使用Wechaty机器人,那么可以选择的替代方案有
使用微信公众号(但公众号有5秒必须回复的限制,但是ChatGPT回答生成会超过5秒,所以体验不佳)使用企业微信的应用开发一个简易的IM服务作为前端交互入口
最后总结,本方案具有较好的使用体验与稳定性,对于要搭建一个公共的ChatGPT服务的同学,可以参考参考。