Lucent's Blog

当时明月在,曾照彩云归。



代码在写我

Bug在De我

螃蟹在剥我的壳

漫天的我落在雪花上

而你在想我...

6ams5piO5pyI

[ChatGPT] 为什么机器人对接Api之后回答速度没有官网网页上速度快?

很多人搭建好QQ机器人后跟我反馈,说比官网速度要慢,是不是网络原因?下面我给出我的观点

QQ机器人比ChatGPT官网上给人的感觉是回复慢,这是事实,原因有以下几点:

  1. 国内网络原因,连接官方接口速度确实慢
  2. 最近ChatGPT爆火,用户快速增加,官方接口压力倍增,相对于刚刚开放时速度也确实慢了
  3. 官网使用流的方式展示回复内容(也就是一个字一个字的往外跳)

前两点我想大家都能懂,第三点是什么鬼?什么是流?
其实,你不是程序员不用知道什么是流,你可以把他想象成管道里的水,而网络就是管道。
管道越大(网络越好),里面同体积的水(数据流)是不是就流的更快?
这就是第1个原因的解释。

水是从哪里来的?当然是水龙头(官方的服务器),同一时间有很多人想把自己的水管接在官方的水龙头上取水(数据流),而官方的水龙头数量有限,只能轮着用,这个时候是不是就要排队?这个就是第2个原因的解释。

第3个原因的可以这样理解,官方水龙头里的水(数据流,也就是ChatGPT回答你的内容)顺着你的管道流进你的桶,然后QQ机器人再把桶拿给你看。这个过程,机器人为了让你一次看到整个回复,所以它要等官方的水全部流进桶后才会把桶拿给你。而官方的网页,没有机器人给你递桶的过程甚至没有桶,网页直接把水一点一点喷出来给你看(这就是为什么你看到的字是一个一个的往外蹦了)。
这种数据展示形式的好处就是当你看到第一个字的时候你就好主观的认为ChatGPT已经回答完了,其实它只是回答了第一个字而已,其他字要么还在路上,要么还在它脑子里。
iShot_20221211_02.30.09.gif

其实这种形式展示数据,代码里也可以实现
py.gif

这样使用流来展示数据是不是这样看起来速度快多了?
但是试想一下,你和别人通过QQ或微信交流,你是希望对方把一段话写完再发送还是一个字一个字的给你发?答案显而易见吧。
所以QQ机器人、微信机器人会等数据流都收到之后,才把数据发送给你看,不然不就成了一个字一个字给你发了吗。

这也就是第3个原因的解释。

个人理解,欢迎指正

评论解释:
image.png

上一篇

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(四) - 官方开放接口

逆向接口虽然免费,但是访问有限制、速度慢、经常崩溃,所以我再提供一个官方开放接口的版本,使用api key,无需重置token,没有地区限制(至少我没发现)…

阅读
下一篇

[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人(三) - 搭建QQ机器人

前两个文章我们已经解决了和ChatGPT通信的问题和QQ处理消息的问题,现在我们就需要处理如何监听QQ消息了监听QQ消息并不需要我们写代码,因为市面上已经有很多开源QQ机器人框架,在这里我们使用go-cqhttp官方文档: go-cqhttp如果您感兴趣的话,可以阅读一下官方文档,如果不想看,直接看…

阅读