我如何将ChatGpt搬进微信公众号,开启公众号智能对话新篇章

[自主开发] 我如何将ChatGpt搬进微信公众号,开启公众号智能对话新篇章

依然废话在前


哈喽,大家好,我是小付,又是好久不见。月更选手今天又来完成这个月的 KPI了。这一次的探索尝试有点硬核:我自己开发了一套系统,将chatgpt接入到了我的公众号。文章可能有点小长,主要就是分享记录一下我这次尝试的一些心路、过程、软件的食用方法等,赶时间的朋友可以适当跳过前面两部分,不赶时间的话请慢慢听我叨叨吧~


一、一个偶然的想法


上月底的一天中午吧,我打开公众号的后台。无意间点到了微信的开发者文档 。之前就有听说过这个,比较陌生却又一直有点好奇公众号开发到底是怎么做的?然后就点进去看了看。比较离谱的事情就是我居然看懂了。所以自然延伸到了有什么用?加之上篇推文,我写了一个[color=var(--weui-LINK)]OpenaiTTS 的软件,就在想可不可以把ChatGpt对接到公众号呢?


(一)危险的开始


我在网上搜了搜有没有这样的一些尝试,也在 GitHub 看见了几个。但是怎么说呢,不尽如人意吧(当然,指的是不满足我个人的需求)。所以就想着:要不自己动手写一下吧? 编程对我来说,有时候就像一场自陷风险行为,一旦开始对某个问题、领域好奇,就大概率会用大量的时间、精力、还有头发来偿还。


(二)过程中陷落


我承认,一开始我想要的确实不多,只要一个简单的文字对话就好了。但有时候就是这样,麻烦都是自找的。在尝试开发的过程当中,我慢慢地地一个想法一个想法的加进去:


  • GPT APP的语音对话好酷,加进去……

  • 文生图也很Nice,加进去……

  • GPT3.5表现太差,那Gpt4加进去……

  • 万一有人要用GPT4呢?那……使用者付费加进去……


梭哈梭哈!我全都要。 可开发如织网,每多一个分支,要面对的都是多条逻辑线的交叠,拿语音对话这个来说,要实现这个功能,你就得知道他说了什么?你要回复什么文本内容?如何转成语音回复?所以整个逻辑流程就变成:下载用户语音数据 → 语音转文本翻译 → 提交GPT获取回复 → 回复文本转语音 → 语音上传微信素材库 → 回复用户消息。


每一个环节都需要写一个子程序加以控制,还要防止莫名其妙的BUG,所以在逻辑上必须正确闭环。Emm~过年回家十天,敢想我知道年夜饭前一刻还陷入在这些问题的解决中。我想我大概知道我今年为什么感觉年味儿少了。


二、打死一众拦路虎


对于过程中加入新功能这个事情,我算是跟自己和解了,绝大部分处女座都是完美主义者,做什么都总希望自己可以做的好些再好些~困难面前专心做头拓荒小牛就好了。可真相是,有些困难是老虎,专吃小牛啊~


我使用的是一款比较经典的中文编程(易)语言,在某些语境下,经典其实就是落后的代名词。因为某些原因,作者直接另起炉灶,对这个语言几乎放弃了维护,导致它有些跟不上时代的发展。所以在遇到一些问题的时候,不像 Python 那样,随处都是可用的轮子。中间就遇到了几个问题,差点没把我逼疯,很多时刻甚至想放弃了算了。


(一)编码问题


易早期主打中文编程,所以 IDE 只支持 GBK、Ansi,对于 UTF8-Unicode 编码则只能内部处理,所以就没办法解析 Emoji 这种表情包。如果 GPT 返回的文本中带有 Emoji,按照 GBK 来处理直接就显示乱码了。

这个问题是生产环境的硬伤,直到最后我也没有找到完美的解决方案。所以只能在代码中开花:专门用一条线用内部处理UTF8编码的文本,在解析时直接针对字节集操作。好歹也算是实现了自己想要的效果,可以正常读取和解析 Emoji 表情了。


640.jpg

Emoji表情支持

(二)诡异的BUG


过程中还遇到过一个比较诡异的 BUG,就是写好的程序会莫名奇妙的结束运行。我一开始还以为是多线程的问题,但当我把多线程改写之后几乎没有得到改善。


没办法,只能一行一行代码地排查。最后才发现是服务器通讯的问题。因为有时候异步处理会删除与用户的通信句柄和连接 ID,导致主程序无法获取到通信对象,回复请求的时候就会报错。


(三)微信是个五秒Boy


微信有个比较离谱的规定:对于用户的消息,服务端必须在五秒内做出响应,否则就会关闭连接。可是对于对接 GPT 而言,5 秒够做什么呢?生成一个回复动辄就是几十秒。


没办法,又研究了好久。终于是让他持久了一些,达到了 15 秒。因为微信 5 秒内如果得不到响应的话会重试三次,只要获取到第三次的通讯请求,同样可以对用户进行回复,因此就可以多出 10 秒的业务处理时间。但是 15 秒仍然是不够的,所以说只能迂回,将响应消息存起来,规定时间内如果没办法响应完成,就发送特定的提示内容,让用户主动发送消息建立连接再进行回复。




总之,拦路虎实在太多了:再比如如何用 Windows 客户端软件做服务端?与数据库通信问题?多线程问题?多轮对话问题?微信显示字数的限制问题等等,随便简单记录几个吧。全写下来,我感觉一篇文章都不够我说的。


三、公主王子请享用


尽管牺牲了我过年期间的休息时间,遇到了好多好多问题,所幸最后算是勉强完成了,嗯,我还挺棒的……目前我已经将软件部署到我的服务器上面,可以提供给大家使用。


(一)个人食用指南


公众号 GPT 的操作采用文字指令方式,用户需要发送特定格式的文本供后台解析,相关操作指令如下:


交互类


1. 文字对话


发送:[问-文字内容]----如:问-你好,请简单介绍一下你自己

640.jpg
文字对话


通过文字与 GPT 交流,如果回复太长无法在 15 秒内生成完成的,可以稍等几秒后通过发送数字【8】获取回答。


回答文本若超过微信单条消息的最大字数限制的,用户可以分次提取消息内容。


2. 语音对话


发送:[语音消息] ----直接发送语音即可,不需要格式

640.jpg
语音对话


通过直接发送语音的方式与 GPT 进行语音交流,GPT 同样进行语音回复。但微信有单条语音不能超过 60 秒的限制,所以若果生成的文本较长的,不建议使用语音对话。且相对文字对话,语音对话的响应时间会更长。


3. 图片生成


发送:[画-Prompt]----如:画-几只可爱的小猫咪在玩耍

640.jpg
图片生成


默认仅支持DALL-E-3模型,1024*1024大小。其实还可以控制很多变量,但是没时间完善啦,先这样吧!


640.jpg

生成图片展示

4. 课程搜索


发送:[找课-关键词]----如:找课-推广

640.jpg
课程搜索


这个功能与 GPT 无关,是对接我的网站课堂中心的内容。可以为大家提供一些与网络副业有关的课程内容,感兴趣的朋友也可以直接访问我的网站:withlaw.cn/video.html了解。


5. 提取超时回复


发送:[8]----直接发送数字8即可获取回答

对于无法在规定时间内回复的内容可以通过此指令提取回复。


6. 清除上下文会话


发送:[清除对话]----直接发送括号内指令即可

开启多轮会话后,每次提问都会将之间的会话记录一起提交给 GPT。如果之前生成的回答很长,则会加速 Tokens 的消耗,所以建议清除对话再行提问。


设置类


[模型-1]=设置模型为3.5

[模型-2]=设置模型为4.0

[多轮-开]=开启多轮对话

[多轮-关]=关闭多轮对话

[充值-二维码]=获取充值二维码

[充值-交易单号]=激活刚才的充值


关于充值:如果大家要使用 GPT4、语音对话、画图功能的话,需要自己支付费用哦,太贵咯,我没办法免费提供→[我好没本领.jpg]


但3.5的模型可以免费使用嗷~


其他类


[查询]=查询自己各项账户信息

[帮助]=获取帮助文档

(二)拥有我的同款


当然,如果你是一名公众号自媒体儿,且对我开发的这个小软件比较感兴趣,你也可以联系我帮你对接。


640.jpg
服务端界面

除了实现上述功能以外,还可以:


  • 自定义各类指令提示

  • 自定义系统人设

  • 支持用户付费等


你需要准备的材料包括?


  • 一个自己的公众号

  • 服务器:最好是两台,境内做服务端;境外做GPT中转代理;当然,本地电脑+内网穿透+魔法也可以实现。

  • ChatGpt 秘钥

  • 腾讯云开发者账号[语音对话功能需要]


有什么作用?


这是我被前辈问住的一个问题,其实对我来说,因为没怎么考虑盈利的问题,所以开发这个更多还是为了自己的兴趣进行时间付费。但如果想开放给大家使用,这是不得不思考的一个问题。


首先,GPT 接入公众号不适合用在商业组织账号上。对于公司而言,专业性很重要,GPT 的幻觉问题导致很多时候它并不靠谱,作为一个形象助手的话可能有所不足。


其次,由于公众号的限制,导致与 GPT 的交互不流畅,15 秒的响应时间对于稍长一点的回答都没办法处理完成,必须得二次提取消息,使用体验也较差。

但我个人认为GPT接入公众号更适合个人自媒体场景:


1. 用于引流


GPT 大火了一年多,稍微爱折腾一点的网友基本已经体验过,但仍有不少的未尝试过的存量用户。这一点从小红书、Bilibili 等媒体平台的评论区用户拼车购买 GPT 账号的现象可以略窥一二。究其根本原因还是在于使用门槛,魔法、境外银行卡支付、境外电话激活等措施,可以把很大一部分用户拦住。


如果能推广出去,在公众号就能使用最新的 GPT 这样的想法应该可以引起不少一部分人的关注。如果对粉丝画像要求不高的话,理论上对涨粉有一定的帮助。


2. 用于打造个人公众号自媒体助手


以个人律师场景为例,可以通过人设模版创造一个虚拟分身助手,为粉丝提供法律咨询服务。囿于大模型的幻觉问题,在回复用户的咨询时,可能需要附加提示文本,尽到提示注意义务。同时也可以通过文本引导用户一对一联系,增强成交转化。


好处就在于律师可以拥有一个7*24H的分身为普通群体提供法律问题解答,曝光量足够的前提下,或可以积累一些潜在客户。当然,以上只是一个想法,未经实践,囿于认知,可能也有许多问题。如果有兴趣,可以大胆进行尝试。


3. 直接用 GPT 进行盈利


这个模式其实差不多已经泛滥了,现在入场可能为时稍晚,但不是完全没有操作空间。原因如前所述,GPT 在国内仍很多未经开发的存量用户群体。


最常见的操作方式就是会员制,一般都是通过免费的噱头引流,然后对于GPT4、文生图等功能则要求用户开通会员才可以使用。价格在 50+RMB/月,相较于官方的 150+RMB/月有一定的价格优势。中间的盈利点在于很多用户其实就是个尝鲜,实际使用费用基本都到不了 50RMB。针对超出这个费用的用户群体,又通过切换到 3.5 模型进行服务来控制成本。需要提示的是,这种操作既有道德风险,也有法律风险,个中利害请自行斟酌。


另一种,是按使用量收费的模式。根据 OpenAi 官方的调用价格进行一定溢价,从中间赚取一定差价。现在市场很多提供中转 API KEY 的服务商基本都是这个模式。需要特别说明的,本公众号的调用价格未溢价,只是想为大家提供一个尝鲜的平台。


四、下一个月的安排


这个软件的开发基本是占用了我的整个春节休息时间,目前也只能说是可以跑起来了,还有很多可以优化的空间。但是,接下来的一个月,要专心投身到省考中去啦~所以,基本算是告一段落。这个月,就算有什么问题,也只是记录,但不会进行任何更新。


不过,发现一个有趣的事情:可能因为之前[color=var(--weui-LINK)]个人律师数字人分身这篇文章,公众号新增了好多律师朋友,很开心可以相遇结缘~在不远的将来,又或者是很远的将来,或许我也会是这个群体中的一份子。很荣幸跟大家探索到了共同的兴趣话题。之前,看到过一篇文章是研究律师如何用网站布局搜索引擎进行获客的,且实操后有一定的效果。恰好最近个人网站的 SEO 收录也突破万+,算是小有心得。因此,目前有个打算就是下月下旬想出个律师+Website的技术操作系列分享,欢迎感兴趣朋友关注~



所有评论 0
您需要登录后才可以回档 登录 | 立即注册