关于chatgpt的抓包分析

发布于 2022-12-11  143 次阅读


最近看到一些有关chatgpt以及对接到QQ机器人插件之类的视频,激起了我的好奇心,于是去注册了openai的账号,体验了一番,虽然与我想象的相比还是有点差,但是其能力依然是我见过的聊天AI中最强的。正好最近开始学习post,于是体验过后决定使用fiddler进行抓包。

通过抓包可以看到向AI发送信息时,发送了两个POST请求,除去cookie以及别的文件头以外,实际发送的数据有所不同。

第一个发送的json数据内容为

{"input":"发送内容1","model":"text-moderation-playground"}

第二个发送的json数据内容为

{"action":"next","messages":[{"id":"f0d6f36d-2b98-49a2-3898-c3b5cf5b37e3","role":"user","content":{"发送内容1"]}}],"parent_message_id":"cd3cb007-f2d5-4235-8e97-1a66d28bd9a4","model":"text-davinci-002-render"}

PS:我不太清楚第二个发送的json中id有何用处,但是谨慎起见我还是修改了部分内容后才放出来

这样一看倒是看不出两个都有什么用,于是再次向AI发送信息抓包,得到如下:

第一个发送的json数据内容为:

{"input":"发送内容1AI回复内容1发送内容2","model":"text-moderation-playground"}

第二个发送的json数据内容为

{"action":"next","messages":[{"id":"65edcfd9-4a66-4a98-a4c6-e7228e23cea","role":"user","content":{"content_type":"text","parts":["发送内容2"]}}],"conversation_id":"271a6d44-2305-4b3a-bc6a-45ae599706c8","parent_message_id":"6cc2c347-15fc-35e2-2c2c-20b233c7a630","model":"text-davinci-002-render"}

可以看到,第二次抓包得到的第一个post的数据内容中包含了发送内容以及之前包括AI回复在内的所有聊天记录,推测是用于上下文联系使用的。实际上只发送第二个post包应该也能完成任务,但是不能结合上下文。

使用易语言发送post包尝试,发现只发送第二个post包可以正常响应,证实猜测,之后会尝试一下发送两个post包,看是否能够如猜测的一样实现上下文关联。


“Determination”