流式对话
收藏我的收藏
接口说明
线上流式对话标准接口,分身创作者必须实现。
基本信息
名称 | 描述 |
---|---|
HTTP URL | /avatar/serv/chatstream |
HTTP Method | POST |
请求参数
Query展开全部子属性
biz_contextStruct
当前业务身份&场景参数,不需要关注,上游透传
展开子属性
chat_contextStruct
用户和分身的聊天的上下文
展开子属性
common_contextStruct
通参,上游透传
展开子属性
messageStruct
用户当前发送的 query
展开子属性
reply_message_idString
本次用户query的回答的message_id,上游自动传入,不需要关注
请求示例
{ "message": { "conversation_id": "xb17Mth7hy", // 当前会话ID,上游自动传入,不需要关注 "message_id": "hIPrroEYEF", // 用户输入query的message_id;上游自动传入,不需要关注 "role": 1, // 枚举值content.role system=1, user=2, assistant=3; "content": { "type": 0, // 枚举值content.type 0表示纯文本;3表示开平卡片 "content": "z76ioP7uex" } }, "chat_context": { "message_context": [ // 用户和分身的历史聊天,按照时间顺序传入,最大20轮 { "conversation_id": "y5Zu76IcCk", // 消息所属会话ID,上游自动传入,不需要关注 "message_id": "zPONEU9W4m", // 消息的message_id;上游自动传入,不需要关注 "role": 2, // 枚举值content.role system=1, user=2, assistant=3; "content": { "type": 0, "content": "S1klHSsHmy" }, "created_at": 4904873903809125974 } ] }, "reply_message_id": "fG3yPCUzB7", // 本次请求的回答的message_id,上游自动传入,不需要关注 "biz_context": { "biz_id": "bYPxF7HEAM" // 场景枚举值,可根据此标记,定制分身的差异化逻辑 }, // format、私信、ai搜、官方号 "common_context": { "user_info": { "open_id": "4106557274961385626", // C端发起对话的抖音用户的ID,上游自动传入,不需要关注 }, "avatar_info": { "avatar_app_id": "2186328463960574138" // 分身的开平app_id }, "traffic_source": { // 场景流量来源标记,上游自动传入,下游调用原子能力时,可能需要透传;开发者不关注具体值 "source": "nIpNzvSZY7", "enter_from": "RiPRNnnGTC", "traffic_type": "0spfr3Ravm" } } }
响应参数
Body展开全部子属性
contentStruct
本次请求返回的内容
展开子属性
stream_finishBool
在流式返回的最后一个chunk时,设置为true,表示请求已完成
trace_infoStruct
debug信息
展开子属性
响应示例
// 其中一个chunk的协议如下; { "data": { "stream_finish": true, "content": { "type": 1, // 枚举值,参考content.type, 1-纯文本;3-开平卡片;具体的卡片数据打包依赖开平; "content": "XIk8zUoXaC", "role": 0, // 枚举值,参考content.role; 0-unknown, 1-system, 2-user, 3-role "seg_finish": true, // 当前分段是否回答完成;针对每个seg,客户端会分开展示 "seg_type": 0, // 参考枚举值:seg_type }, "trace_info": { "trace_info": "4038savAxJ" // 仅在debug场景使用的调试信息,可选填充 } }, "err_no": 12, "err_msg": "模型请求失败", "log_id": "202410112208352E4817F01CFBCA1F842D" } // 流式返回举例如下: 0000d1 {"err_no":0,"err_msg":"success","data":{"stream_finish":false,"content":{"type":0,"content":"你好,","role":3,"seg_finish":false,"seg_type":1},"trace_info":{"trace_info":"{"logid":""}"}}} 0000d0 {"err_no":0,"err_msg":"success","data":{"stream_finish":false,"content":{"type":0,"content":"我是","role":3,"seg_finish":false,"seg_type":1},"trace_info":{"trace_info":"{"logid":""}"}}} 0000d6 {"err_no":0,"err_msg":"success","data":{"stream_finish":false,"content":{"type":0,"content":"赵小小,","role":3,"seg_finish":false,"seg_type":1},"trace_info":{"trace_info":"{"logid":""}"}}} 0000e5
错误码
HTTP 状态码 | 错误码(err_no) | 错误消息(err_msg) | 说明 |
---|---|---|---|
200 | 0 | 空 | err_no=0时表示当前请求正常,上游服务会解析data中的内容,并走正常逻辑进行业务处理 |
200 | -1 | 业务可自行填充 | err_no=-1 是默认错误码;流式返回过程中,若某个chunk返回的err_no=-1,上游会认为当前请求异常,断开链接并给用户返回兜底回答 |