精易论坛

标题: ChatGPT的数据流模式该如何请求和接收? [打印本页]

作者: 幸福的野比    时间: 2023-3-22 19:28
标题: ChatGPT的数据流模式该如何请求和接收?
本帖最后由 幸福的野比 于 2023-3-23 17:19 编辑

相信各位大佬都知道,ChatGPT目前可以采用API接口方式进行请求。站内也有不少大佬分享了示例代码,但大家都是采用 网页_访问_对象  之类的命令来请求,这样的请求方式都是一次性返回结果的,想问一下如果想支持官方接口的Steam流模式,该如何编程输出到编辑框呢?求大佬给一个示例代码。感谢
附上官方接口参数说明:



作者: 小海>依就<    时间: 2023-3-22 19:28
本帖最后由 小海>依就< 于 2023-3-22 20:53 编辑

body中增加参数:
[JavaScript] 纯文本查看 复制代码
{
    ...
    stream: true
    ...
}

通过stream的方式依次都字节,读取时建立一个缓冲区,缓冲区每次读到一个完整的json时对其进行解析,解析出来的content就是一个字符。伪代码举个例子:
[JavaScript] 纯文本查看 复制代码
ByteBuffer buffer;
var stream = HttpClient.post(xxx).stream();
while(stream.canReader()){
    buffer.push(stream.read());
    try{
        var json = JSON.parse(buffer.toString('utf-8'));
        log(json.xxx.xxx); // 输出得到的内容, 这里会一个字一个字的输出,也就是chatgpt官网的打字机效果
        buffer.clear();       // 清空缓存区,预备读下一个json
    }catch(){
        continue;
    }
}
stream.close();  // 全部返回完毕后关流



你可以参考我的这个应用,安装后按Ctrl+F12打开开发者选项,可以看到一些细节:
https://125.confly.eu.org/thread-14768510-1-1.html

作者: nlxxbc    时间: 2023-3-22 20:37
循环。。。。
作者: 幸福的野比    时间: 2023-3-23 00:40
小海>依就< 发表于 2023-3-22 20:44
body中增加参数:

通过 ...

大佬,能不能给个易语言实现的例子啊,感谢感谢
作者: 幸福的野比    时间: 2023-3-23 23:42
顶一下自己的帖子,求个大佬指导




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4