哈喽,大家好,我是小付,又是好久不见。月更选手今天又来完成这个月的 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 表情了。
Emoji表情支持
(二)诡异的BUG
过程中还遇到过一个比较诡异的 BUG,就是写好的程序会莫名奇妙的结束运行。我一开始还以为是多线程的问题,但当我把多线程改写之后几乎没有得到改善。
没办法,只能一行一行代码地排查。最后才发现是服务器通讯的问题。因为有时候异步处理会删除与用户的通信句柄和连接 ID,导致主程序无法获取到通信对象,回复请求的时候就会报错。
微信有个比较离谱的规定:对于用户的消息,服务端必须在五秒内做出响应,否则就会关闭连接。可是对于对接 GPT 而言,5 秒够做什么呢?生成一个回复动辄就是几十秒。
没办法,又研究了好久。终于是让他持久了一些,达到了 15 秒。因为微信 5 秒内如果得不到响应的话会重试三次,只要获取到第三次的通讯请求,同样可以对用户进行回复,因此就可以多出 10 秒的业务处理时间。但是 15 秒仍然是不够的,所以说只能迂回,将响应消息存起来,规定时间内如果没办法响应完成,就发送特定的提示内容,让用户主动发送消息建立连接再进行回复。
总之,拦路虎实在太多了:再比如如何用 Windows 客户端软件做服务端?与数据库通信问题?多线程问题?多轮对话问题?微信显示字数的限制问题等等,随便简单记录几个吧。全写下来,我感觉一篇文章都不够我说的。
尽管牺牲了我过年期间的休息时间,遇到了好多好多问题,所幸最后算是勉强完成了,嗯,我还挺棒的……目前我已经将软件部署到我的服务器上面,可以提供给大家使用。
公众号 GPT 的操作采用文字指令方式,用户需要发送特定格式的文本供后台解析,相关操作指令如下:
交互类
1. 文字对话
发送:[问-文字内容]----如:问-你好,请简单介绍一下你自己
通过文字与 GPT 交流,如果回复太长无法在 15 秒内生成完成的,可以稍等几秒后通过发送数字【8】获取回答。
回答文本若超过微信单条消息的最大字数限制的,用户可以分次提取消息内容。
2. 语音对话
发送:[语音消息] ----直接发送语音即可,不需要格式
通过直接发送语音的方式与 GPT 进行语音交流,GPT 同样进行语音回复。但微信有单条语音不能超过 60 秒的限制,所以若果生成的文本较长的,不建议使用语音对话。且相对文字对话,语音对话的响应时间会更长。
3. 图片生成
发送:[画-Prompt]----如:画-几只可爱的小猫咪在玩耍
默认仅支持DALL-E-3模型,1024*1024大小。其实还可以控制很多变量,但是没时间完善啦,先这样吧!
4. 课程搜索
发送:[找课-关键词]----如:找课-推广
这个功能与 GPT 无关,是对接我的网站课堂中心的内容。可以为大家提供一些与网络副业有关的课程内容,感兴趣的朋友也可以直接访问我的网站:withlaw.cn/video.html了解。
5. 提取超时回复
发送:[8]----直接发送数字8即可获取回答
对于无法在规定时间内回复的内容可以通过此指令提取回复。
6. 清除上下文会话
发送:[清除对话]----直接发送括号内指令即可
开启多轮会话后,每次提问都会将之间的会话记录一起提交给 GPT。如果之前生成的回答很长,则会加速 Tokens 的消耗,所以建议清除对话再行提问。
设置类
[模型-1]=设置模型为3.5
[模型-2]=设置模型为4.0
[多轮-开]=开启多轮对话
[多轮-关]=关闭多轮对话
[充值-二维码]=获取充值二维码
[充值-交易单号]=激活刚才的充值
关于充值:如果大家要使用 GPT4、语音对话、画图功能的话,需要自己支付费用哦,太贵咯,我没办法免费提供→[我好没本领.jpg]
但3.5的模型可以免费使用嗷~
其他类
[查询]=查询自己各项账户信息
[帮助]=获取帮助文档
(二)拥有我的同款
当然,如果你是一名公众号自媒体儿,且对我开发的这个小软件比较感兴趣,你也可以联系我帮你对接。
自定义各类指令提示
自定义系统人设
支持用户付费等
一个自己的公众号
服务器:最好是两台,境内做服务端;境外做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的技术操作系列分享,欢迎感兴趣朋友关注~