开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 839|回复: 13
收起左侧

[闲聊] 记录一下公众号对接chatgpt踩过的坑

[复制链接]
结帖率:75% (3/4)
发表于 2024-2-17 15:04:46 | 显示全部楼层 |阅读模式   云南省昆明市
本帖最后由 刚性兑付 于 2024-2-17 15:13 编辑

前段时间突发奇想,想将chatgpt对接到自己的公众号,初步的想法包括:

  • 文字提问

  • 语音对话

  • 图片生成

  • 积分充值


  • ……

过程中踩了很多坑,一 一分享一下,自己淋过雨,也帮别人撑把伞,希望对后面想要研究这个的朋友有1..帮助哈~


# 遇到的第一个问题:gbk不支持emoji的问题,如果gpt返回的答案有emoji表情的时候,怎么正确解析并发送给用户?

正常的gbk肯定是不行的,编码后只有问号。卡了我一晚上,找遍论坛也没找什么合适的解决方案。

##解决方法:zyjson 或者 字节集提取
下载.png
两种方案都可以正常提取UTF8文本,就算含有emoji也可以正常解析。得到后直接到文本(),就可以得到乱码的utf8的乱码数据了,然后将这个乱码的数据直接发送到微信,ok可以正常解析
下载 1.png

# 遇到的第二个问题(应该是第一个):服务器方案采用问题

一开始的时候在论坛找到一个前辈用的易语言的服务端和客户端,而且写的也是公众号的对接,我一整个欣喜若狂,但是最后发现:我草,丢包好严重~

公众号每次请求都会尝试发送三次,但是自带的服务器组件 只能收到2.5次,第三次的时候妈的只能收到个请求头…………………………

最后又是一番论坛搜索(面向论坛编程石锤):采用了HP_socket,而且有现成的通信框架,手动@Daen https://bbs.125.la/forum.php?mod=viewthread&tid=14739507

# 遇到的第三个问题:莫名其妙的调试运行完成,窗口也没了,程序直接运行结束

最初,我以为是多线程的问题。找到了上面帖子作者daen咨询(超级好的一位前辈哈),指导我改了一段多线程的代码,因为我一开始的时候是每次都要自己申请内存,指针传参,然后大佬告诉我

精易模块有直接可以传参启动的一条命令,我真的哭死,10行代码一条命令解决。然后问题得到了缓解,直到我测试并发访问的时候,妈的,问题又出现了……

排查后才发现,HP_socket的通信句柄和连接ID的如果为空(0)的时候,程序直接运行完成。怎么排查出来的呢,一行行打断点,苦了我了

# 遇到的第四个问题:多轮会话?

这其实不是啥难题,看看openai的开发文档就能解决,只要你将之前的提问和回答按照一定的格式一起提交给gpt就可以了

但是费用也是几倍的增长啊,顶得住?

# 遇到的第五个问题:sqlite与多线程问题

一开始我是打算用本地的json文档作数据控制的,但是疯狂读写直接炸了,后面才考虑用数据库,然后几番对比用上了sqlite,功能都写完了,发现sqlite不支持多线程

注意:这个不支持多线程是不支持同时操作同一条数据,例如修改,查询啥的随便(艹皿艹 )

最后我实在是懒得改了,直接加许可证和事务,防止爆表,截至目前还没有发现有什么问题

哦,还有:自带支持库里面对数据库的增删查改是没有直接的命令的,要么用sql语句,上传字节集什么的,就每次都打开表-找字段-改数据-提交-关闭表

# 遇到的第六个问题:回答超过微信支持最大字数

按字数分割文本,然后根据用户的指令多次返回即可

# 遇到的第七个问题:5s内必须响应?不存在的,我要15s

微信规定:必须要对用户的消息5s内作出响应,否则会断开连接发起重试,总共三次,但是对于gpt来说,5s够干嘛?

所以说只要把每次的连接的通信句柄和连接ID存下来,利用消息id排重,回复最新的请求就可以实现15s的响应啦!至于怎么存,怎么改,就看技术了

# 遇到的第八个问题:语音对话?

功能里面要实现语音对话,第一步就是要理解用户说了什么

微信官方说只要开启语音识别接口,微信发来的就消息就有识别好的文本,实际上有个JB,直接是空的

所以流程就变成:拉取微信的语音数据-上传语音识别接口识别-获取返回文本提交到gpt-获取文本答案-TTS文本转语音-上传微信临时素材-获取微信语音消息ID-发送给用户!

然后微信语音的格式是尼玛的amr 一般的平台还不支持识别 快点的有腾讯云……

点评

厉害厉害o( ̄▽ ̄)d   山东省济南市  发表于 2024-2-17 18:00

评分

参与人数 1好评 +1 精币 +1 收起 理由
但愿人长久 + 1 + 1 代码发出来 让大佬给你优化优化

查看全部评分

结帖率:100% (3/3)

签到天数: 11 天

发表于 2024-4-4 17:12:01 | 显示全部楼层   山东省潍坊市
好高级!~我没有这个水平
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 11 天

发表于 2024-4-4 17:11:38 | 显示全部楼层   山东省潍坊市
好高级!~我没有这个水平
回复 支持 反对

使用道具 举报

结帖率:63% (5/8)

签到天数: 17 天

发表于 2024-2-18 22:45:23 | 显示全部楼层   江西省九江市
刚性兑付 发表于 2024-2-18 22:34
放到公众号给粉丝尝尝鲜~

自己练练技术就可以了,这玩意没啥太高技术含量,但是为啥没啥人搞到公众号,因为这东西违法,你不知道用户会问什么东西,到时候返回一串敏感涉政的话,一举报就是进去喝茶。
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 15 天

 楼主| 发表于 2024-2-18 22:34:30 | 显示全部楼层   云南省昆明市
Bszk 发表于 2024-2-18 00:15
gpt网站太多了,现在搞连汤都喝不上了。

放到公众号给粉丝尝尝鲜~
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)

签到天数: 14 天

发表于 2024-2-18 08:23:27 | 显示全部楼层   山东省潍坊市
刚性兑付 发表于 2024-2-17 21:08
公众号后台有开发者文档 公众号会将消息推送到你设置的服务器上

这一部分的源码可以分享一下吗?
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 25 天

发表于 2024-2-18 00:15:17 | 显示全部楼层   广东省云浮市
gpt网站太多了,现在搞连汤都喝不上了。
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 24 天

发表于 2024-2-17 21:16:36 | 显示全部楼层   河南省商丘市
这个真的给你点个赞,感谢分享
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 15 天

 楼主| 发表于 2024-2-17 21:08:23 | 显示全部楼层   云南省昆明市
guoge110 发表于 2024-2-17 18:16
大佬你是怎么把易语言对接上公众号的呐?

公众号后台有开发者文档 公众号会将消息推送到你设置的服务器上
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 15 天

 楼主| 发表于 2024-2-17 21:07:13 | 显示全部楼层   云南省昆明市
糖心疼 发表于 2024-2-17 19:35
异步http都不是。。。承接不了多少并发请求的。

哈哈蛤公众号用的人少 先用用看看 遇到问题 研究问题 解决问题~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表