您的位置:首页 > 娱乐 > 八卦 > Android流式接口请求实践

Android流式接口请求实践

2025/1/1 10:38:19 来源:https://blog.csdn.net/szhupeng/article/details/141966666  浏览:    关键词:Android流式接口请求实践

最近做项目,接入GPT,接口是流式返回的,于是对流式接口请求做了下总结。项目中采用的OKHttp实现网络请求、
接口中,数据是一行一行返回的,每行数据的返回格式如下:

{"code": 0,"message": "","data": "{\"text\":\"\",\"auxiliary_tips\":[]}"
}

流式接口应该一行一行处理,因为返回的内容数据会被拆成一段一段的,放到text字段下,我们的业务比较复杂,在返回的数据中还会有一些特殊标识需要解析,是否需要展示按钮之类的,数据如下:

"此次GPT生成完成!<_action_data_> {\"action\": \"confirm\"}"

因为后面的标识可能会被GPT拆成两个,因此需要拼装后进行解析。

核心代码如下:

suspend fun requestByStream(ur: String,taskType: String? = null,content: String? = null,onStart: () -> Unit,onEnd: (String?) -> Unit,onNetworkError: (Int?, String?) -> Unit,onError: ((Throwable) -> Unit)? = null,onCollect: (String?, Choices?, Int?, String?) -> Unit,) {val body = JsonUtils.toJson(GenerateBody(task_type = taskType, content = content)).toRequestBody()val request =Request.Builder()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com