- 大家好,我是同学小张,日常分享AI知识和实战案例
- 欢迎 点赞 + 关注 👏,持续学习,持续干货输出。
- 一起交流💬,一起进步💪。
- 微信公众号也可搜【同学小张】 🙏
本站文章一览:
本文主要讨论下我在公众号开发过程中遇到的问题,给大家避个坑。
0. 背景
前一段时间,我折腾过 微信公众号 的开发,成功将 ChatGPT 接入了微信公众号。但那只是实现了与 ChatGPT 的简单对话,并没有实际用途。
之前的开发教程可参考我的这个专栏:微信公众号开发
而随着这段时间学习AI大模型应用开发,萌生了在微信上搞点真正有用的东西给大家参考的想法。于是今天想重启下微信公众号开发。
不幸的是,遇到了无法解决的问题,在本文中写出来,供大家避坑。
当然,我的微信公众号是 个人订阅号,如果是企业订阅号或服务号需要大家自行甄别。
1. 避坑
1.1 限制
- 个人订阅号, 接口权限不足,无法主动给用户发消息(客服接口),只能被动回复用户的消息。也就是说,用户在公众号界面给你发了一条消息,你才能给一条回复。
- 而且,对于自建的服务来说,你只有5s的时间去回复消息。超过5s,微信服务器会重新发起请求,重试2次,一共是3次请求。如果每次请求5s内都没有给回复,那就算应答失败,服务即使在第6s给了回复,用户不会收到任何回复。
1.2 我的问题
我想在微信公众号自建服务上接通 ChatGPT(已完成),但是想在此基础上,做些其它功能,例如总结一段文字内容,很容易超出5s需要回复的限制。
1.3 网上的解决方案
搜了网上的解决方案,大体都差不多,总结下来,有以下几种。
1.3.1 将超时时间增加到15s
这种方式不用额外的接口调用。
实现思路是:因为微信服务会发3次请求,每5s一次,那就在第一次请求时记录请求ID(这个ID在重试时是不变的),然后将请求转到另外的线程去处理。
如果在5s内该消息处理完了,直接返回。如果处理不完,5s超时,微信服务会来第二次重试请求,或者第三次重试请求。在每一次重试时查看这个消息ID是否处理完成,处理完成就直接返回。
这样,我们就将5s超时增加到了15s才超时。
但是这种方法还是有弊端的,也无法完全保证用户的请求能在15s内处理完,尤其是在AI应用中。
1.3.2 处理完后主动给用户发信息
这种方式的处理思路是:接收到请求后,将请求转到其它线程去处理,然后本次请求直接返回 sucess。这样,微信服务不会重试请求。
当其它线程处理完消息后,主动调用接口给用户发消息。
这种方式没有超时的限制,但是需要有接口权限。很遗憾,个人订阅号没有此权限。
参考链接:
2. 结论
最终结论就是,个人订阅号开发限制太多,权限太低,自己玩玩儿可以,但想实现一些有用的功能,还是比较困难。
意见仅供参考,如果有有效的解决方案,欢迎评论或私信,求指教。
如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~
- 大家好,我是 同学小张,日常分享AI知识和实战案例
- 欢迎 点赞 + 关注 👏,持续学习,持续干货输出。
- 一起交流💬,一起进步💪。
- 微信公众号也可搜【同学小张】 🙏
本站文章一览: