前言
最近ChatGPT比较火,玩起来确实也比什么siri,小爱,天猫精灵之类的智能太多,但由于国内与OpenAI之间的双向限制,导致很多人非技术向的人很难玩到ChatGPT,但有一些对ChatGPT有所耳闻的人又非常想玩一玩,比如那些非技术向的自媒体博主们。于是就出现了很多付费进群,付费知识星球,教如何使用魔法,使用注册ChatGPT等等,赚的盆满钵满,发这篇文章的前个晚上,还刷到一个头条图片,列出了几个大的教授ChatGPT的知识星球收入排行榜,榜首一个月收入270万,实在我等技术宅不会赚钱啊,钱都给机灵的人赚去了。
话题扯歪了,本篇文章讲的是本人在业余时间,用flutter开发了一个ChatGPT套壳应用的历程,起因是同事和朋友问我能不能搞一个让他们用用,他们有些不会魔法梯子,有些不会注册使用,我起初想弄一个简单的带有聊天UI的web给他们用用,用了几天,说网页不好用,各种细节,不如别人家的套壳app,我无语的同时,也激起了心思,那就做一个功能完整一点的应用吧,顺便试试放出去看看有没有人用。
准备工作
1.ChatGPT账号一个,绑定付费信用卡
2.境外服务器一台,用作中转api
3.境内服务器N台,用作具体业务后台
4.已备案域名一个
5.苹果开发者账号
目标是以ios平台为主,稍后我会解释为什么没提安卓。
开发大概
因本篇内容不是纯技术分享文章,所以不会分享完整的技术细节。
整个应用的流程图大概如下:
登录:
登录这里采用了最快捷的苹果登录,同时在电脑版的登录,增加了扫码登录,如果是macos的电脑版,依然提供苹果登录,同一个苹果id是同一个账号体系。
用flutter画一个极简的登录页面,其实还挺好看:
主应用布局:
跟大多数现有的聊天APP差不多,我分为3个tab页:
1.聊天列表页
2.助手管理页
3.个人中心页
创建助手: 这个其实就是类似ChatGPT官方网页版左侧的创建新对话,我只是把它做成偏拟人化一些,可以自定义取名,自己选择配音声线。
配音用的腾讯云的语音合成,这里提一下,短文本和长文本合成速度不一致,在使用过程中,长文本等待时间会稍微长一点。
聊天内页: 这个是app的重心页面,但有趣的是,这个页面我大部分代码是让chatGPT帮写出来的,开局直接问:“用Flutter帮我写一个聊天的ui页面,要区分左右布局,要带头像,消息向上滚动”,它给的答案能大概画出一个像样的聊天页面,你只需要自己修改,或者继续追问它让它帮你修改就可以达到差不多能用的地步了。
关于聊天列表向上滚动的功能,很多人第一反应是想到Listview的reverse:true,但其实有一个细节:当只有少数几条聊天记录时,撑不满一个屏幕,此时聊天记录也是从最底部排列的,这样怪怪的,为了解决这个问题,还需要把shrinkWrap:true,然后把Listview包裹在一个Align里,对齐方式是 Alignment.topCenter。
开发的细节太多了,我在这里就不一一说明了,感兴趣的可以在使用这个app后,回复或者提问。
多端
原本是想开发完一个iOS的就完事了,可是架不住朋友说,手机只能纯聊天,电脑版更方便用于工作方面的提问,然后复制粘贴。我一想也是,刚好借着flutter多端编译的优势,搞一下多端发布。
mac端: 苹果的生态,只能说这个几乎是无缝编译了,除了需要稍微改改ui布局,让它显得更加适配电脑屏幕。用Platform来判断是否是mac或电脑大屏,或者只用LayoutBuilder,或者用Getx里带的判断方法,都可以,看具体业务需求了。
windows端: 编译windows时,需要隐藏掉一些跟苹果生态相关的东西,比如苹果登录,苹果支付。同时,有一些插件包可能不适应,需要仔细排查,比如一开始我用的just_audio插件用来播放声音的,结果发现windows平台不支持,只能换成audioplayers。由于开始写的时候,比较偏向于cupertino风格,所以,编译成windows也没时间重写一套风格,在windows上用cupertino风格感觉有点怪怪的,先将就吧,后面如果用的人数还可以,就花精力重写一套。
android端: 安卓没有发布,原因是这里面涉及支付,目前暂时只用了苹果支付,安卓无法使用。安卓计划要用微信支付的,但目前由于公司收款账户不能与这个app牵扯到一起,所以得另外注册公司来弄,短时间内无法完成这一版的安卓发布。所以也导致了,目前这个应用,只能在基于有iPhone或者mac的情况下使用,windows可以用iPhone手机端进行扫码登录。
发布
应用取名为【Chat AI助手】,后来其实发现这个名字相似的太多了,不打完整的字几乎搜不到,看来商店关键词这一块还需要学学...
ios版和macos版都上架了苹果商店,直接搜索即可下载。
苹果商店直连地址:apps.apple.com/us/app/chat…
windows版没有上架微软商店,只提供exe文件下载。
官网地址:chat.xbzweb.com
关于收费
在座的各位都是行内人,无论对收费怎么看,都应该明白,天下没有免费的午餐。ChatGPT的接口是收费的,那些使用官网网页版的,也是官方送的18美金体验额度,但问题是需要魔法梯子,需要虚拟手机接码,光这两步就卡住大部分非技术向的人群,所以才有了开头我说的那些付费教程。套壳应用也是要付费给ChatGPT接口调用费的,另外还有服务器等运营成本,所以希望对付费使用的软件多一点包容。
我没有设置vip会员制,也没有设置包月包年包干制,那种感觉要么就是收费很贵,有坑一个算一个的感觉,要么就是感觉可能随时跑路,如果有个5月一个月你敢用吗?
我采用的是金币消费制,每轮对话(一问一答)收取5金币,合5分钱一轮,用多少就充多少,不用就不充,app内也没加任何广告。我只是试一试的态度,不打算就非要靠这个赚钱。
这里的人都是行内人,发这篇文章,重点是分享心路历程,你们要是下载了,算是帮我刷个下载量,没需求的话尽量不要充钱,不然我这篇文章就变成纯广告了。
每个新账号送10次体验次数,没需求的话玩玩就可以了。
结语
由于目前各国对ChatGPT的政策还不明朗,所以不能调用公司太多资源。差不多整个开发过程从前端,到后端,到部署,再到宣传物料(如商店5图,演示视频,官网ui设计),都是我一个人在搞,其实很枯燥,但好在flutter的多端能力确实出众,节省了太多工作量,由这个项目可以看出,flutter的未来是很可期的,我会一直追逐flutter的步伐。