开发工具/API 参考/智能音视频/WebSocket 语音/双向流式对话下行事件
双向流式对话下行事件
更新于: 2026-06-25 19:29:14
本文介绍扣子 WebSocket 双向流式对话事件中的下行事件。
事件类型:chat.created
事件说明:流式对话接口成功建立连接后服务端会发送此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "7446668538246561xxxx",
"event_type": "chat.created",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***" }
}
chat.updated|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
客户端自行生成的事件 ID,方便定位问题。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话配置的详细信息。 |
|
data.chat_config |
Object |
可选 |
对话配置。 |
|
data.chat_config.meta_data |
Map<String, String> |
可选 |
附加信息,通常用于封装一些业务相关的字段。查看对话消息详情时,系统会透传此附加信息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.chat_config.custom_variables |
Map<String, String> |
可选 |
智能体中定义的变量。在智能体 prompt 中设置变量 {{key}} 后,可以通过该参数传入变量值,同时支持 Jinja2 语法。详细说明可参考变量示例。变量名只支持英文字母和下划线。 |
|
data.chat_config.extra_params |
Map<String, String> |
可选 |
附加参数,通常用于特殊场景下指定一些必要参数供模型判断,例如指定经纬度,并询问智能体此位置的天气。自定义键值对格式,其中键(key)仅支持设置为: |
|
data.chat_config.user_id |
String |
可选 |
标识当前与智能体的用户,由使用方自行定义、生成与维护。 |
|
data.chat_config.conversation_id |
String |
可选 |
标识对话发生在哪一次会话中。会话是智能体和用户之间的一段问答交互。一个会话包含一条或多条消息。对话是会话中对智能体的一次调用,智能体会将对话中产生的消息添加到会话中。可以使用已创建的会话,会话中已存在的消息将作为上下文传递给模型。创建会话的方式可参考创建会话。对于一问一答等不需要区分 conversation 的场合可不传该参数,系统会自动生成一个会话。不传的话会默认创建一个新的 conversation。 |
|
data.chat_config.auto_save_history |
Boolean |
可选 |
是否保存本次对话记录。
|
|
data.chat_config.parameters |
Map<String, any> |
可选 |
设置对话流的输入参数。
|
|
data.input_audio |
Object |
必选 |
输入音频格式。 |
|
data.input_audio.format |
String |
必选 |
输入音频的格式,支持 |
|
data.input_audio.codec |
String |
必选 |
输入音频的编码,支持 |
|
data.input_audio.sample_rate |
Integer |
必选 |
输入音频的采样率,默认 24000。 |
|
data.input_audio.channel |
Integer |
必选 |
输入音频的声道数,默认是 1(单声道)。 |
|
data.input_audio.bit_depth |
Integer |
必选 |
输入音频的位深,默认是 16。 |
|
data.output_audio |
Object |
必选 |
输出音频格式。 |
|
data.output_audio.codec |
String |
必选 |
输出音频编码,支持 |
|
data.output_audio.pcm_config |
Object |
可选 |
当 |
|
data.output_audio.pcm_config.sample_rate |
Integer |
可选 |
输出 |
|
data.output_audio.pcm_config.frame_size_ms |
Float |
可选 |
输出每个 pcm 包的时长,单位 ms,默认不限制。 |
|
data.output_audio.pcm_config.limit_config |
Object |
可选 |
输出音频限流配置,默认不限制。 |
|
data.output_audio.pcm_config.limit_config.period |
Integer |
可选 |
周期的时长,单位为秒。例如设置为 10 秒,则以 10 秒作为一个周期。 |
|
data.output_audio.pcm_config.limit_config.max_frame_num |
Integer |
可选 |
周期内,最大返回 pcm 包数量。 |
|
data.output_audio.opus_config |
Object |
可选 |
当 |
|
data.output_audio.opus_config.bitrate |
Integer |
可选 |
输出 |
|
data.output_audio.opus_config.use_cbr |
Boolean |
可选 |
输出 |
|
data.output_audio.opus_config.frame_size_ms |
Float |
可选 |
输出 |
|
data.output_audio.opus_config.limit_config |
Object |
可选 |
输出音频限流配置。 |
|
data.output_audio.opus_config.limit_config.period |
Integer |
可选 |
周期的时长,单位为秒。例如设置为 10 秒,则以 10 秒作为一个周期。 |
|
data.output_audio.opus_config.limit_config.max_frame_num |
Integer |
可选 |
周期内最大返回的 Opus 帧数量。 |
|
data.output_audio.mp3_config |
Object |
可选 |
|
|
data.output_audio.mp3_config.sample_rate |
Integer |
可选 |
输出 |
|
data.output_audio.mp3_config.bit_rate |
Integer |
可选 |
输出 |
|
data.output_audio.loudness_rate |
Integer |
可选 |
输出音频的音量,取值范围 [-50, 100],默认为 0。-50 表示 0.5 倍音量,100 表示 2 倍音量。 |
|
data.output_audio.speech_rate |
Integer |
必选 |
输出音频的语速,取值范围 [-50, 100],默认为 0。-50 表示 0.5 倍速,100 表示 2 倍速。 |
|
data.output_audio.voice_id |
String |
可选 |
输出音频的音色 ID。 |
|
data.output_audio.emotion_config |
Object |
可选 |
设置多情感音色的情感和情感值,仅当 |
|
data.output_audio.emotion_config.emotion |
String |
可选 |
设置多情感音色的情感类型。不同音色支持的情感范围不同,可以通过系统音色列表查看各音色支持的情感。默认为空。枚举值如下:
|
|
data.output_audio.emotion_config.emotion_scale |
Float |
可选 |
情感值用于量化情感的强度。数值越高,情感表达越强烈,例如: “开心” 的情感值 5 比 1 更显兴奋。 |
|
data.voice_processing_config |
Object |
可选 |
语音处理能力配置。 说明 仅扣子企业旗舰版支持该配置。 |
|
data.voice_processing_config.enable_ans |
Boolean |
可选 |
主动噪声抑制。自动识别并过滤掉背景环境中的各种噪音(如键盘声、空调声、街道嘈杂声),让说话者的声音更清晰。 |
|
data.voice_processing_config.enable_pdns |
Boolean |
可选 |
声纹降噪。专门针对特定说话人的声音进行优化,能更精准地保留目标人声。
|
|
data.voice_processing_config.voice_print_feature_id |
String |
可选 |
目标说话人的声纹 ID。当你选择开启 |
|
data.turn_detection |
Object |
可选 |
转检测配置。 |
|
data.turn_detection.type |
String |
可选 |
语音检测类型,用于控制语音交互的检测方式,枚举值:
|
|
data.turn_detection.prefix_padding_ms |
Integer |
可选 |
|
|
data.turn_detection.silence_duration_ms |
Integer |
可选 |
|
|
data.turn_detection.semantic_vad_config |
Object |
可选 |
|
|
data.turn_detection.semantic_vad_config.silence_threshold_ms |
Integer |
可选 |
当用户暂停说话时,持续静音多久后,触发语义判停检测。单位为 ms。默认为 300ms。 |
|
data.turn_detection.semantic_vad_config.semantic_unfinished_wait_time_ms |
Integer |
可选 |
当语义检测判断该语句未结束时,持续静音多久后,扣子认定语音结束。单位为 ms。默认为 500ms。 |
|
data.turn_detection.interrupt_config |
Object |
可选 |
|
|
data.turn_detection.interrupt_config.mode |
String |
可选 |
配置通过关键词打断,包括:
详细配置方法请参见通过关键词打断语音对话。 |
|
data.turn_detection.interrupt_config.keywords |
Array |
可选 |
打断的关键词配置,最多同时限制 5 个关键词,每个关键词限定长度在 6~24 个字节以内(2~8个汉字以内),不能有标点符号。 |
|
data.asr_config |
Object |
可选 |
语音识别配置,包括热词和上下文信息,以便优化语音识别的准确性和相关性。 |
|
data.asr_config.hot_words |
Array |
可选 |
请输入热词列表,以便提升这些词汇的识别准确率。如果设置的热词数量超出以下数量限制,超出部分将自动截断。
|
|
data.asr_config.context |
String |
可选 |
请输入上下文信息。 |
|
data.asr_config.user_language |
String |
可选 |
用户说话的语种,默认为
|
|
data.asr_config.enable_ddc |
Boolean |
可选 |
将语音转为文本时,是否启用语义顺滑。默认为
|
|
data.asr_config.enable_itn |
Boolean |
可选 |
将语音转为文本时,是否开启文本规范化(ITN)处理,将识别结果转换为更符合书面表达习惯的格式以提升可读性。默认为
|
|
data.asr_config.enable_punc |
Boolean |
可选 |
将语音转为文本时,是否给文本加上标点符号。默认为 |
|
data.asr_config.stream_mode |
String |
可选 |
ASR 识别的模式。
|
|
data.asr_config.enable_nostream |
Boolean |
可选 |
是否开启二次识别模式:
|
|
data.asr_config.enable_emotion |
Boolean |
可选 |
识别说话人的情绪。仅在
|
|
data.asr_config.enable_gender |
Boolean |
可选 |
是否开启识别说话人的性别(male/female),仅在 |
|
data.asr_config.sensitive_words_filter |
Object |
可选 |
敏感词过滤功能,支持以下 3 种过滤方式:
|
|
data.asr_config.sensitive_words_filter.system_reserved_filter |
Boolean |
可选 |
是否过滤系统自带的敏感词,并将匹配到的敏感词替换为 |
|
data.asr_config.sensitive_words_filter.filter_with_empty |
Array |
可选 |
自定义需替换为空的敏感词列表。 |
|
data.asr_config.sensitive_words_filter.filter_with_signed |
Array |
可选 |
自定义需替换为 |
|
data.voice_print_config |
Object |
可选 |
声纹识别配置。 |
|
data.voice_print_config.group_id |
String |
可选 |
声纹组 ID。语音通话时,扣子会在该声纹组内进行查找匹配对应的声纹,当声纹匹配度高于 |
|
data.voice_print_config.score |
Integer |
可选 |
声纹匹配的命中阈值,即声音匹配度的最低标准。当声音匹配度达到或超过该阈值时,扣子才会认定声纹匹配成功。你可以根据应用的安全性要求进行自定义设置。如果匹配了多轮声纹,扣子会取相似度最高的一个。 |
|
data.voice_print_config.reuse_voice_info |
Boolean |
可选 |
当本轮对话未命中任何声纹时,是否沿用历史声纹信息。
|
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_id",
"event_type": "chat.updated",
"data": {
"chat_config": {
"auto_save_history": true, // 保存历史记录。默认 true
"conversation_id": "xxxx", // conversation_id
"user_id": "xxx", // 标识当前与智能体的用户,由使用方自行定义、生成与维护。user_id 用于标识对话中的不同用户,不同的 user_id,其对话的上下文消息、数据库等对话记忆数据互相隔离。如果不需要用户数据隔离,可将此参数固定为一个任意字符串
"meta_data": {}, // 附加信息,通常用于封装一些业务相关的字段。查看对话消息详情时,系统会透传此附加信息。
"custom_variables": {}, // 智能体中定义的变量。在智能体prompt中设置变量{{key}}后,可以通过该参数传入变量值,同时支持Jinja2语法。详细说明可参考变量示例。变量名只支持英文字母和下划线。
"extra_params": {}, // 附加参数,通常用于特殊场景下指定一些必要参数供模型判断,例如指定经纬度,并询问智能体此位置的天气。自定义键值对格式,其中键(key)仅支持设置为:latitude:纬度,此时值(Value)为纬度值,例如39.9800718。longitude:经度,此时值(Value)为经度值,例如116.309314。
"parameters": {"custom_var_1": "测试"}
},
"input_audio": { // 输入音频格式
"format": "pcm", // 输入音频格式,支持 pcm/wav/ogg。默认 wav
"codec": "pcm", // 输入音频编码。 pcm/opus。默认 pcm
"sample_rate": 24000, // 采样率
"channel": 1, // 通道数
"bit_depth": 16 // 位深
},
"output_audio": { // 输出音频格式
"codec": "opus" // pcm/opus 输出音频格式, 默认 pcm
"opus_config": {
"bitrate": 48000, // 码率
"use_cbr": false, // 是否使用 cbr 编码
"frame_size_ms": 10, // 帧长(单位ms)
"limit_config": {
"period": 2, // 周期(单位 s)
"max_frame_num": 300 // 周期内返回最大 opus 帧数量
}
},
"speech_rate": 50, // 回复的语速,取值范围 [-50, 100],默认为 0,-50 表示 0.5 倍速,100 表示 2倍速
"voice_id": "7426720361733046281"
}
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***",
}
}
conversation.chat.created|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
会话 ID,即会话的唯一标识。 |
|
data.bot_id |
String |
必选 |
要进行会话聊天的智能体 ID。 |
|
data.created_at |
Integer |
可选 |
对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.last_error |
Object |
可选 |
对话运行异常时,此字段中返回详细的错误信息,包括:
|
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.status |
String |
可选 |
对话的运行状态。取值为 |
|
data.usage |
Object |
可选 |
本次对话消耗的 Token 信息。 |
|
data.usage.token_count |
Integer |
可选 |
本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。 |
|
data.usage.output_count |
Integer |
可选 |
output 部分消耗的 Token 总数。 |
|
data.usage.input_count |
Integer |
可选 |
input 部分消耗的 Token 总数。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "744666853824656xxx",
"event_type": "conversation.chat.created",
"data": {
"id": "123",
"conversation_id": "123",
"bot_id": "222",
"created_at": 1710348675,
"completed_at": null,
"last_error": null,
"meta_data": {},
"status": "created",
"usage": null
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.chat.in_progress|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
会话 ID,即会话的唯一标识。 |
|
data.bot_id |
String |
必选 |
要进行会话聊天的智能体 ID。 |
|
data.created_at |
Integer |
可选 |
对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.last_error |
Object |
可选 |
对话运行异常时,此字段中返回详细的错误信息,包括:
|
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.status |
String |
可选 |
对话的运行状态。取值为 |
|
data.usage |
Object |
可选 |
本次对话消耗的 Token 信息。 |
|
data.usage.token_count |
Integer |
可选 |
本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。 |
|
data.usage.output_count |
Integer |
可选 |
output 部分消耗的 Token 总数。 |
|
data.usage.input_count |
Integer |
可选 |
input 部分消耗的 Token 总数。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "744666853824656xxxx",
"event_type": "conversation.chat.in_progress",
"data": {
"id": "123",
"conversation_id": "123",
"bot_id": "222",
"created_at": 1710348675,
"completed_at": null,
"last_error": null,
"meta_data": {},
"status": "in_progress",
"usage": null
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.message.deltatype=answer 时的增量消息。|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含消息的详细信息。 |
|
data.id |
String |
必选 |
Message ID,即消息的唯一标识。 |
|
data.conversation_id |
String |
必选 |
此消息所在的会话 ID。 |
|
data.bot_id |
String |
必选 |
编写此消息的智能体 ID。此参数仅在对话产生的消息中返回。 |
|
data.chat_id |
String |
必选 |
Chat ID。此参数仅在对话产生的消息中返回。 |
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,获取消息时也会返回此附加消息。 |
|
data.role |
String |
必选 |
发送这条消息的实体。取值:
|
|
data.content |
String |
必选 |
消息的内容,支持纯文本、多模态(文本、图片、文件混合输入)、卡片等多种类型的内容。 |
|
data.content_type |
String |
必选 |
消息内容的类型,取值包括:
|
|
data.type |
String |
必选 |
消息类型。取值包括:
|
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_1",
"event_type": "conversation.message.delta",
"data": {
"id": "msg_006",
"role": "assistant",
"type": "answer",
"content": "你好你好",
"content_type": "text",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型: conversation.audio.sentence_start
事件说明:一条新的字幕句子,后续的 conversation.audio.delta 增量语音均属于当前字幕句子,可能有多个增量语音共同对应此句字幕的文字内容。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据对象,包含增量语音的字幕内容。 |
|
data.text |
String |
必选 |
新字幕句子的文本内容,后续相关 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_1",
"event_type": "conversation.audio.sentence_start",
"data": {
"text": "你好呀。"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.audio.deltatype=answer 时的增量语音。|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含消息的详细信息。 |
|
data.id |
String |
必选 |
Message ID,即消息的唯一标识。 |
|
data.conversation_id |
String |
必选 |
此消息所在的会话 ID。 |
|
data.bot_id |
String |
必选 |
编写此消息的智能体 ID。此参数仅在对话产生的消息中返回。 |
|
data.chat_id |
String |
必选 |
Chat ID。此参数仅在对话产生的消息中返回。 |
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,获取消息时也会返回此附加消息。 |
|
data.role |
String |
必选 |
发送这条消息的实体。取值:
|
|
data.content |
String |
必选 |
语音二进制 base64 后的字符串。 |
|
data.content_type |
String |
必选 |
固定为 audio。 |
|
data.type |
String |
必选 |
消息类型。取值包括:
|
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_1",
"event_type": "conversation.audio.delta",
"data": {
"id": "msg_006",
"role": "assistant",
"type": "answer",
"content": "base64audio",
"content_type": "audio",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.message.completedmessage.delta 的拼接结果,且每个消息均为 completed 状态。|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
此消息所在的会话 ID。 |
|
data.bot_id |
String |
必选 |
编写此消息的智能体 ID。此参数仅在对话产生的消息中返回。 |
|
data.chat_id |
String |
必选 |
Chat ID。此参数仅在对话产生的消息中返回。 |
|
data.meta_data |
Map<String, String> |
必选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。 |
|
data.role |
String |
必选 |
发送这条消息的实体。取值:
|
|
data.content |
String |
必选 |
消息的内容,支持纯文本、多模态(文本、图片、文件混合输入)、卡片等多种类型的内容。当 content_type 为 |
|
data.content_type |
String |
必选 |
消息内容的类型,取值包括:
|
|
data.type |
String |
必选 |
消息类型。取值包括:
|
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_1",
"event_type": "conversation.message.completed",
"data": {
"id": "msg_002",
"role": "assistant",
"type": "function_call",
"content": "{\"name\":\"toutiaosousuo-search\",\"arguments\":{\"cursor\":0,\"input_query\":\"今天的体育新闻\",\"plugin_id\":7281192623887548473,\"api_id\":7288907006982012986,\"plugin_type\":1}}",
"content_type": "text",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.audio.completed|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
Message ID,即消息的唯一标识。 |
|
data.conversation_id |
String |
必选 |
此消息所在的会话 ID。 |
|
data.bot_id |
String |
必选 |
编写此消息的智能体 ID。此参数仅在对话产生的消息中返回。 |
|
data.chat_id |
String |
必选 |
Chat ID。此参数仅在对话产生的消息中返回。 |
|
data.meta_data |
Map<String, String> |
必选 |
创建消息时的附加消息,获取消息时也会返回此附加消息。 |
|
data.role |
String |
必选 |
发送这条消息的实体。取值:
|
|
data.content |
String |
必选 |
消息的内容,支持纯文本、多模态(文本、图片、文件混合输入)、卡片等多种类型的内容。 |
|
data.content_type |
String |
必选 |
消息内容的类型,取值包括:
|
|
data.type |
String |
必选 |
消息类型。取值包括:
|
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_1",
"event_type": "conversation.audio.completed",
"data": {
"id": "msg_002",
"role": "assistant",
"type": "function_call",
"content": "{\"name\":\"toutiaosousuo-search\",\"arguments\":{\"cursor\":0,\"input_query\":\"今天的体育新闻\",\"plugin_id\":7281192623887548473,\"api_id\":7288907006982012986,\"plugin_type\":1}}",
"content_type": "audio",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
conversation.chat.completed|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
会话 ID,即会话的唯一标识。 |
|
data.bot_id |
String |
必选 |
要进行会话聊天的智能体 ID。 |
|
data.created_at |
Integer |
可选 |
对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.completed_at |
Integer |
可选 |
对话结束的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.last_error |
Object |
可选 |
对话运行异常时,此字段中返回详细的错误信息,包括:
|
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.status |
String |
可选 |
对话的运行状态。取值为 |
|
data.usage |
Object |
可选 |
对话的 Token 使用情况。 |
|
data.usage.token_count |
Integer |
可选 |
本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。 |
|
data.usage.output_count |
Integer |
可选 |
output 部分消耗的 Token 总数。 |
|
data.usage.input_count |
Integer |
可选 |
input 部分消耗的 Token 总数。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
{
"id": "event_1",
"event_type": "conversation.chat.completed",
"data": {
"id": "123",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222",
"created_at": 1710348675,
"completed_at": 1710348675,
"last_error": null,
"meta_data": {},
"status": "completed",
"usage": {
"token_count": 3397,
"output_tokens": 1173,
"input_tokens": 2224
}
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.chat.failed
事件说明:此事件用于标识对话失败。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
会话 ID,即会话的唯一标识。 |
|
data.bot_id |
String |
必选 |
要进行会话聊天的智能体 ID。 |
|
data.created_at |
Integer |
可选 |
对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.failed_at |
Integer |
可选 |
对话失败的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.last_error |
Object |
可选 |
对话运行异常时,此字段中返回详细的错误信息,包括:
|
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.status |
String |
可选 |
对话的运行状态。取值为 |
|
data.usage |
Object |
可选 |
对话的 Token 使用情况。 |
|
data.usage.token_count |
Integer |
可选 |
本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。 |
|
data.usage.output_count |
Integer |
可选 |
output 部分消耗的 Token 总数。 |
|
data.usage.input_count |
Integer |
可选 |
input 部分消耗的 Token 总数。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_1",
"event_type": "conversation.chat.failed",
"data": {
"id": "123",
"chat_id": "123",
"conversation_id": "123",
"bot_id": "222",
"created_at": 1710348675,
"failed_at": 1710348675,
"last_error": {
"code": 1,
"msg": "发生异常"
},
"meta_data": {},
"status": "failed",
"usage": {
"token_count": 3397,
"output_tokens": 1173,
"input_tokens": 2224
}
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:error
事件说明:对话过程中的错误事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
data |
Object |
必选 |
事件数据,包含错误信息。 |
|
data.code |
Integer |
必选 |
错误码。 |
|
data.msg |
String |
必选 |
错误信息。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_1",
"event_type": "error",
"data": {
"code": 1,
"msg": "发生异常"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
input_audio_buffer 提交成功事件类型:input_audio_buffer.completed
事件说明:流式提交的音频完成后,返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
客户端自行生成的事件 ID,方便定位问题。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_id",
"event_type": "input_audio_buffer.completed",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
input_audio_buffer 清除成功事件类型:input_audio_buffer.cleared
事件说明:清除缓冲区音频成功后,返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
客户端自行生成的事件 ID,方便定位问题。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_id",
"event_type": "input_audio_buffer.cleared",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.cleared
事件说明:清除上下文成功后,返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
客户端自行生成的事件 ID,方便定位问题。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_id",
"event_type": "conversation.cleared",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.chat.canceled
事件说明:客户端提交 conversation.chat.cancel 事件,服务端完成中断后,将返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
客户端自行生成的事件 ID,方便定位问题。 |
|
event_type |
String |
必选 |
必填 |
|
data |
Object |
可选 |
|
|
data.code |
int |
可选 |
输出中断类型枚举值,包括 |
|
data.msg |
String |
可选 |
智能体输出中断的详细说明 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_id",
"event_type": "conversation.chat.canceled",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.audio_transcript.update
事件说明:用户语音识别的中间值,每次返回都是全量文本。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
必填 |
|
data |
Object |
必选 |
事件数据,包含语音识别的中间值。 |
|
data.content |
String |
必选 |
语音识别的中间值。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_1",
"event_type": "conversation.audio_transcript.update",
"data": {
"content": "今天的"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.audio_transcript.completed
事件说明:用户语音识别完成。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
必填 |
|
data |
Object |
必选 |
事件数据,包含语音识别的最终结果。 |
|
data.content |
String |
必选 |
语音识别的最终结果。 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "event_1",
"event_type": "conversation.audio_transcript.completed",
"data": {
"content": "今天的天气怎么样?"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:conversation.chat.requires_action
事件说明:对话中断,需要使用方上报工具的执行结果。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
必填 |
|
data |
Object |
必选 |
事件数据,包含对话的详细信息。 |
|
data.id |
String |
必选 |
对话 ID,即对话的唯一标识。 |
|
data.conversation_id |
String |
必选 |
会话 ID,即会话的唯一标识。 |
|
data.bot_id |
String |
必选 |
要进行会话聊天的智能体 ID。 |
|
data.created_at |
Integer |
可选 |
对话创建的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.completed_at |
Integer |
可选 |
对话完成的时间。格式为 10 位的 Unixtime 时间戳,单位为秒。 |
|
data.last_error |
Object |
可选 |
对话运行异常时,此字段中返回详细的错误信息,包括:
|
|
data.meta_data |
Map<String, String> |
可选 |
创建消息时的附加消息,用于传入使用方的自定义数据,获取消息时也会返回此附加消息。自定义键值对,应指定为 Map 对象格式。长度为 16 对键值对,其中键(key)的长度范围为 1~64 个字符,值(value)的长度范围为 1~512 个字符。 |
|
data.status |
String |
可选 |
对话的运行状态。取值为 |
|
data.usage |
Object |
可选 |
对话的 Token 使用情况。 |
|
data.usage.token_count |
Integer |
可选 |
本次对话消耗的 Token 总数,包括 input 和 output 部分的消耗。 |
|
data.usage.output_count |
Integer |
可选 |
output 部分消耗的 Token 总数。 |
|
data.usage.input_count |
Integer |
可选 |
input 部分消耗的 Token 总数。 |
|
data.required_action |
Object |
可选 |
需要执行的额外操作。 |
|
data.required_action.type |
String |
可选 |
额外操作的类型,枚举值为 |
|
data.required_action.submit_tool_outputs |
Object |
可选 |
需要提交的结果详情,通过提交接口上传,并可以继续聊天。 |
|
data.required_action.submit_tool_outputs.tool_calls |
Array |
可选 |
具体上报信息详情。 |
|
data.required_action.submit_tool_outputs.tool_calls[].id |
String |
可选 |
上报运行结果的 ID。 |
|
data.required_action.submit_tool_outputs.tool_calls[].type |
String |
可选 |
工具类型,枚举值为 |
|
data.required_action.submit_tool_outputs.tool_calls[].function |
Object |
可选 |
执行方法 |
|
data.required_action.submit_tool_outputs.tool_calls[].function.name |
String |
可选 |
方法名。 |
|
data.required_action.submit_tool_outputs.tool_calls[].function.arguments |
String |
可选 |
方法参数。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "7446668538246561821",
"event_type": "conversation.chat.requires_action",
"data": {
"id": "7434369946098090003",
"conversation_id": "7434368393420996671",
"bot_id": "7379165428687536166",
"created_at": 1730949143,
"completed_at": 1730949146,
"last_error": {
"code": 0,
"msg": ""
},
"status": "requires_action",
"usage": {
"token_count": 0,
"output_count": 0,
"input_count": 0
},
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "BUJJS0JKQ0dHR0VeFkNCQF5HEEZBXhJFEUJeEhFCRkESSktDREISSUI=",
"type": "function",
"function": {
"name": "get_current_temperature",
"arguments":"{\'location\":\'深圳\'}"
},
"require_info": null
}
]
}
},
"section_id": "7434368393420996671"
},
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***"
}
}
事件类型:input_audio_buffer.speech_started
事件说明:此事件表示服务端识别到用户正在说话。只有在 server_vad 模式下,才会返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "7446668538246561xxxx",
"event_type": "input_audio_buffer.speech_started",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***" }
}
事件类型:input_audio_buffer.speech_stopped
事件说明:此事件表示服务端识别到用户已停止说话。只有在 server_vad 模式下,才会返回此事件。
事件结构:
|
参数 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
id |
String |
必选 |
服务端生成的唯一 ID。 |
|
event_type |
String |
必选 |
固定为 |
|
detail |
Object |
必选 |
事件详情。 |
|
detail.logid |
String |
必选 |
本次请求的日志 ID。如果遇到异常报错场景,且反复重试仍然报错,可以根据此 logid 及错误码联系扣子团队获取帮助。详细说明可参考获取帮助和技术支持。 |
事件示例:
{
"id": "7446668538246561xxxx",
"event_type": "input_audio_buffer.speech_stopped",
"detail": {
"logid": "20241210152726467C48D89D6DB2F3***" }
}