通过ChatGPT构建微信ai助理(一)

0x01 背景和功能

ChatGPT 相信大家最近都玩的比较多了 , 但是其只提供网页端服务与国服锁区的限制,导致我不是特别专门去开一个tab,去挂这个服务,我就在想能否做一个微信机器人,让我在微信里面,就可以使用 ChatGPT ? 爆肝一整天,总算是搞定了,基于企业微信应用的 ChatGPT 聊天机器人~

/img/chatgpt-wechat-01.png

ChatGPT 是什么?

ChatGPT 是一种由 OpenAI 训练的大型语言模型,可以让人们在多种语言下与设备进行交流,可以被用于回答人们提出的问题,分析文本,完成自然语言处理任务,如情绪分析、机器翻译等,还可以自动生成文本。

企业微信如何与微信进行联动?

  • 如何给微信发消息?
    一般情况下,通过微信第三方客户端,或是网页扫码来绕过微信客户端的行为,很快就会收到,警告⚠ 或者被永久封禁,对于个人大号,来说风险太大了。
    一般可以通过测试公众号模板消息来进行提示,但是要做一个双向对话的机器人还是不够。
    这个时候我发现了企业微信的内部应用的消息是跟微信互通的,通过开发文档发现思路上是可行的,而且企业微信也是允许个人注册但不认证的~

0x02 方案与踩坑

使用GPT-3和企业微信来构建一个个人ai微信助理最终实现的方案是
/img/chatgpt-wechat-02.png

本来就是同步调用API的事情为什么架构到最后变得怎么复杂?

坑一

企业微信要求回调请求地址必须为域名,但在国内备案实在是给自己找事,只能通过其他方式来中转。

坑二

我一开始选择了一家香港的 serviceless 服务商 aircode,说句实话,做的很简洁也很舒适,很符合小而美的应用,但是我写了半天,发现它家的服务,给我把微信回调的xml 给吞了,我收不到用户消息,只能转战 阿里/腾讯云这种 函数云服务来实现,所以就多了 阿里云fc中间层用来给企业微信消息做中转。

坑三

阿里云的 fc node.js runtime 同步函数服务超时时间为 5 - 6 秒,我 await 等待openai服务给响应的过程中,整个服务还是会被杀掉,实在无奈只能同步转异步,在自己的服务器上起了一个 golang 的服务,接受微信消息,异步等待openai响应后,再调用 企业微信服务给微信推送消息。

0x03 未来

经过一些测试,我发现这个机器人在很多方面都有提高的空间,毕竟也才刚刚发布3个多月,在使用上 prompt 很重要,基于一些限制条件,同一机器人可以承担各种各样的功能。能够模拟各种角色,且差的不是很离谱,这大概就是这个机器人用途广泛的原因。

我之后会把详细的配置文档跟代码放到 https://github.com/whyiyhw/chatgpt-wechat 上,各位感兴趣的,我也可以拉进 企业微信,自己体验,代码开源的也可以自己搭建试试?

目前我使用的ai 辅助软件有 openai ChatGPTgithub copilotstable-diffusion-webui ai也在渐进式的进入我们的生活,君子不器

(以上文章大纲与部分内容出自 ChatGPT ,你们觉得哪些是 它写的?)


通过ChatGPT构建微信ai助理(一)
https://blogxy.cn/posts/30156e50/
作者
YI
发布于
2023年4月23日
许可协议