如何使用ChatGPT?用起来感觉怎么样?

ChatGPT 0 5070

一.ChatGPT的使用体验

最近使用了一下chat gpt 3.5,发现它确实比较智能,和自己之前用过的很多AI等的对话能力差距很大。尤其是在查资料方面,速度非常快。比如我想查一个linux命令,只需要用对话的形式去命令它就可以了,目前速度还在自己能接受的范围,不需要开会员:

如何使用ChatGPT?用起来感觉怎么样? 第1张

二.ChatGPT的优势

使用下来,chat gpt主要有这几个优势:

比市面上大多数AI更智能

可以「联系上下文」来对话,每次对话不是独立的

反应很快,几秒钟出结果

特别是第二点,非常符合人类的对话习惯,与其他AI有比较明显的差距。测试下来,这个对话上下文一般只能保持前面几条,但正常使用是完全足够的。

如何使用ChatGPT?用起来感觉怎么样? 第2张

三.ChatGPT的劣势

chat gpt也并不完美,他也有一些劣势。

答案不一定正确,尤其是比较冷门的内容

国内用户访问不了,或者访问比较困难

第1点我觉得比较致命,这个其实是chat-gpt的底层算法决定的,虽然还在不断地训练,但对于一些比较冷门的问题,训练数据和训练场景本来就很少,就可能出错。你可以理解为「你在和一个满嘴跑火车的人工智能对话」。比较严谨的问题还是不要直接采纳它的答案,比如我问它自己的open api如何传参才能保持上下文对话的能力,它就没答对,或者回答的是过期的答案。

如何使用ChatGPT?用起来感觉怎么样? 第3张

尽管如此,它还是在一定程度上能提升自己搜索信息的效率,关键还很好玩,可惜目前使用chat-gpt的门槛还比较高,「需要科学上网,还需要用国外的手机号注册账号」

所以我想了一个国内可以直接使用chat-gpt的方案,这样「自己的家人朋友可以低门槛使用chat-gpt,也可以让自己的国内app接入世界上最顶级的AI引擎」

四.官方web端ChatGPT的问题

chat-gpt官方提供了一个web端的聊天窗口:https://chat.openai.com/chat。这个网页需要科学上网+账号登录才能打开,所以本身有一定的使用门槛。

我自己使用官方web端,碰到的另一个问题是经常会断开连接,需要刷新网页才能继续使用,不知道是不是我浏览器设置的原因。且这个断开的频率非常高,基本上几分钟不用就断开了。我问chat gpt怎么解决,它也没给我一个好的解决方案,大概就是浏览器清缓存或者换浏览器之类的。

如何使用ChatGPT?用起来感觉怎么样? 第4张

五.如何在国内使用ChatGPT

下面介绍一下如何搭建一个在国内就可以使用chat gpt的方案,不用科学上网和账号。

这个方案「还是需要科学上网和账号」的,但是可以分享给其他人使用,相当于降低了其他人使用的门槛,也可以集成在自己的应用程序里,让自己的应用具有chat gpt AI对话的能力。

大概的方案是这样:

如何使用ChatGPT?用起来感觉怎么样? 第5张

1 注册一个账号

首先还是需要自己去注册一个账号,自己不怕折腾的话,大概「0.5美金」就可以注册一个账号,网上有很多注册教程,这里就不细讲了,但是「需要科学上网」。如果怕折腾,直接淘宝、抖音买一个,大概20~30 RMB的样子。

2 生成一个api-key

有了账号后,登录open ai 的个人中心,可以看到一个生成api-key的地方。

如何使用ChatGPT?用起来感觉怎么样? 第6张

如何使用ChatGPT?用起来感觉怎么样? 第7张

拿到这个API key后,就可以根据open ai的官方文档去发送对话请求了,文档是http形式的,所以用postman就能试。官方提供了nodejs和python的sdk,社区也有go、Java等sdk。

如何使用ChatGPT?用起来感觉怎么样? 第8张

3 购买一个海外服务器

如果自己没有在国内网络直接使用chat-gpt的需求,在上一步就可以结束了,剩下的就是自己去官网玩或者集成进自己的应用。

但如果有「在国内网络使用chat-gpt的需求」,需要使用一个国内可访问的海外服务器作为跳板。这个服务器可以放在香港、日本、韩国、新加坡等,这样延迟会低一些。

如何使用ChatGPT?用起来感觉怎么样? 第9张

aws可以用信用卡(具有外币功能的)免费申请一年的海外服务器,学生身份也可以免费使用一年,大家可以尝试使用。

->

PS: 信用卡或者学生身份都没有的,可以去淘宝看看,说不定有惊喜。

<-4 搭建一个中转服务

接下来就是搭建一个http中转服务,放在海外服务器上了。简单的做法是直接用一个nginx代理,但我这里用golang写了一个中转服务,主要出于以下考虑:

想要网络传输的内容少一点,这样更快一点,上下文信息存储在中转服务上

没弄https,又不想自己的open ai key暴露,所以key只放在了中转服务器上

国内客户端想集成在各种应用上,API参数尽可能简单点,在中转服务器做了一层包装

把中转服务部署好后,理论上应该也可以使用http来访问:

如何使用ChatGPT?用起来感觉怎么样? 第10张

5 搭建国内可访问的客户端

接下来就是搭建一个国内可访问的客户端,因为我家人朋友不会使用postman,所以需要有一个更友好的入口。本来打算集成钉钉、飞书机器人的,但是时间上比较紧,没来得及研究,所以先用低码平台搭建了一个网

如何使用ChatGPT?用起来感觉怎么样? 第10张

页版本的,后面有时间集成到自己的微信公众号吧,反正前面的链路都搭建好了,只搭客户端,还是比较快的。

网页版的效果大概是这样,也具有上下文对话的能力:

如何使用ChatGPT?用起来感觉怎么样? 第12张

这里我用的是appsmith来搭建的。有需要的朋友可以私聊我导出搭建数据,自己搭一个也很快。

注意事项

如何实现上下文?

open ai的open api有过几次更新,如何在请求中实现上下文,比较麻烦,我也是查了比较久才弄对。

理论上来讲,需要有一个地方来存储上下文。最开始open ai是存在他们自己的服务器上的,通过session_id来维护这个上下文。

后来可能是觉得这样做稳定性和性能太差,也比较吃他们自己的资源,所以改成了客户端自己存,然后每次调用通过参数把历史上下文传过去的方式。这种方式网络开销比较大,但是对open ai自己来说,服务器的存储压力和复杂性可能会降低很多。

最新实现聊天上下文的能力,应该是把历史对话都放进请求的messages字段里。需要注意整个请求的4kb大小的限制。所以我自己的golang代码中,只会保留最近20条对话,包括自己的话和机器人返回的话。

如何实现多线程聊天?

chat gpt官方web端可以实现多线程聊天。其实核心也就是每个上下文分开存储。我这里没来得及实现这个功能,但是大概的思路还是比较简单的,后面有时间再实现一下。具体的思路是:用一个map来存储对话线程和聊天上下文的关系:

// 这里的key可以是session_id或者user_name之类的var chatMap = make(map[string][]openai.ChatCompletionMessage

AI场景畅想

chat gpt的热度一直不减(印象中圈内大概火了一个月了,甚至已经出圈了)。后面几年AIGC可能有很多不错的机会。

在翻看open ai的open api官方文档的时候,发现他们家不止是有chat gpt这一款产品,还有语音转文字、生成图片等等能力,后面有机会都玩玩看。

我理想中的AI世界是这样的:我有一个智能设备(可能是手表、眼睛、或者耳机什么的),然后可以通过语音、图像识别快速像AI提问,然后它可以快速返回这个问题的答案,并用语音、视频的方式说出来。

未来,人类很有可能大规模使用AI来辅助自己工作和决策。

目前看来,这样的世界并不遥远。甚至现在的技术就已经可以做到了,已经有人把天猫精灵和小爱同学集成进chat-gpt了。随着网络的不断升级、AI模型的不断升级,这个场景很有可能会在未来几年内实现。


本文链接:http://www.awyerwu.com/9414.html ,转载需注明文章链接来源:http://www.awyerwu.com/

分享到:

也许您对下面的内容还感兴趣:

服务热线

微信客服

微信客服