本文介绍 Qwen-Omni-Realtime API 的服务端事件,包括工具调用(Function Calling)相关事件。
相关文档:实时(Qwen-Omni-Realtime)。
error
服务端返回的错误信息。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
error 错误的详细信息。 |
session.created
客户端连接后,服务端返回的第一个事件,包含本次连接的默认配置信息。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
session 会话的配置信息。 |
session.updated
收到用户的 session.update 请求后,若处理成功,则返回此事件;若出错,则返回 error 事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
session 会话的配置信息。 |
input_audio_buffer.speech_started
在 VAD 模式下,当服务端在音频缓冲区中检测到语音开始时,会返回此事件。
若服务端尚未检测到语音,则每次向缓冲区添加音频时都可能触发此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
audio_start_ms 从音频开始写入缓冲区到首次检测到语音所经过的毫秒数。 |
|
|
item_id 语音停止时将创建的用户消息项的 ID。 用户消息项用于将用户输入追加到对话历史,供模型后续推理与生成使用。 |
input_audio_buffer.speech_stopped
在 VAD 模式下,当音频缓冲区中检测到语音结束时,服务端会返回此事件。
同时,服务端还会返回一个 conversation.item.created 事件,以创建对应的用户消息项。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
audio_end_ms 语音停止时刻距会话开始经过的毫秒数。 |
|
|
item_id 将创建的用户消息项的 ID。 |
input_audio_buffer.committed
当输入音频缓冲区被提交时返回此事件。
-
在VAD模式下,当检测到用户说话结束时,服务端会自动提交音频缓冲区并返回此事件。
-
在 Manual 模式下,当客户端发送
input_audio_buffer.commit事件后,服务端返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
item_id 将创建的用户消息项的 ID。 |
input_audio_buffer.cleared
客户端发送input_audio_buffer.clear事件后,服务端将返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
conversation.item.created
当对话项创建时返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
item 要添加到对话中的项。 |
conversation.item.input_audio_transcription.delta
开启输入音频转录后,此事件会在用户说话过程中高频发送,用于展示实时识别的中间结果。您可以通过拼接 text + stash 获取当前最完整的句子预览。
|
event_id 本次事件唯一标识符。 |
在任何时刻,要获取当前最完整的句子预览,都需要将这两个字段拼接起来:实时预览句子 = |
|
type 事件类型,固定为 |
|
|
item_id 关联的对话项 ID。 |
|
|
content_index 包含音频的内容部分的索引。 |
|
|
text 已确认的文本前缀。这是当前句子中,模型已确认不会再变更的部分。 |
|
|
stash 预识别的文本后缀。这是紧跟在已确认部分之后,模型仍在处理、可能会被修正的临时草稿。 |
|
|
language 被识别音频的语种。 |
|
|
emotion 被识别音频的情感。可选值: |
conversation.item.input_audio_transcription.completed
此事件表示用户音频写入缓冲区后生成的转录结果。其转录由内置的语音识别模型(固定为 qwen3-asr-flash-realtime)处理,不支持修改。
语音识别模型生成的转录文本可能与 Qwen-Omni-Realtime 模型的理解存在差异,仅供参考。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
item_id 用户消息项的 ID。 |
|
|
content_index integer 当前固定为0。 |
|
|
transcript 转录的文本内容。 |
conversation.item.input_audio_transcription.failed
启用输入音频转录后,若用户音频转录失败,服务端会返回此事件。此事件独立于 error 事件,便于客户端识别。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
item_id 用户消息项的 ID。 |
|
|
content_index 当前固定为0。 |
|
|
error 错误信息。 |
response.created
当服务端生成新的模型响应时,会返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response 响应对象。 |
response.done
响应生成完成后,服务端会返回此事件。事件中的 response 对象包含除原始音频数据外的全部输出项。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response 响应对象。 |
response.text.delta
当输出模态仅包含文本,且模型增量生成新的文本时,服务端将返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
delta 返回的增量文本。 |
|
|
response_id 回复的ID。 |
|
|
item_id 消息项ID,可以关联同一个消息项。 |
|
|
output_index 响应中输出项的索引, 目前固定为 0。 |
|
|
content_index 响应中输出项中内部部分的索引, 目前固定为 0。 |
response.text.done
当输出模态仅包含文本,且模型生成的文本结束时,服务端将返回此事件。
当响应中断、不完整或取消时,也会返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
content_index 响应输出项的索引。 |
|
|
text 模型输出的完整文本。 |
response.audio.delta
当输出模态包含音频,且模型增量生成新的音频数据时,服务端将返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
content_index 响应输出项的索引。 |
|
|
delta 模型增量输出的音频数据,使用Base64编码。 |
response.audio.done
当输出模态包含音频,且模型完成生成音频数据时,服务端将返回此事件。
当响应中断、不完整或取消时,也会返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
content_index 响应输出项的索引。 |
response.audio_transcript.delta
当输出模态包含音频,且模型增量生成新的音频对应的文本时,服务端将返回 response.audio_transcript.delta 事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
content_index 响应输出项的索引。 |
|
|
delta 增量文本。 |
response.audio_transcript.done
当输出模态包含音频,且模型完成音频转录后,服务端将返回 response.audio_transcript.done 事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
content_index 响应输出项的索引。 |
|
|
transcript 完整文本。 |
response.function_call_arguments.delta
当模型以流式方式生成函数调用的参数字符串时,每产生一段新内容,服务端推送一次本事件。客户端应按接收顺序将各事件中的 delta 字段拼接,得到与当前进度一致的参数文本;完整内容以随后的 response.function_call_arguments.done 为准。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 该响应中输出项的索引。 |
|
|
call_id 本次函数调用的唯一 ID,与同一轮中的 |
|
|
delta 本段新增的参数字符串片段(增量)。需按顺序拼接。 |
response.function_call_arguments.done
函数调用参数已全部生成完毕。本事件中的 arguments 为完整的参数字符串。客户端可在收到本事件后解析参数并调用本地工具函数;应以本事件中的完整 arguments 为准,而非 delta 拼接结果。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 该响应中输出项的索引。 |
|
|
call_id 本次函数调用的唯一 ID。 |
|
|
name 被调用的函数名称。 |
|
|
arguments 函数调用的完整参数,一般以 JSON 字符串形式表示。 |
response.output_item.added
在响应生成过程中创建新项目时,服务端返回此事件。项目类型可以是 message(常规消息)或 function_call(工具调用)。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
item 输出项信息。 |
response.output_item.done
当新的项目输出完成时,服务端返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
output_index 响应输出项的索引。 |
|
|
item 输出项信息。 |
response.content_part.added
在响应生成过程中,向助手消息项中添加新内容部分时,服务端返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引,目前固定为 0。 |
|
|
content_index 响应输出项中内部部分的索引, 目前固定为 0。 |
|
|
part 输出项信息。 |
response.content_part.done
在助手消息项中的内容部分完成流式传输时,服务端返回此事件。
|
event_id 本次事件唯一标识符。 |
|
|
type 事件类型,固定为 |
|
|
response_id 响应的ID。 |
|
|
item_id 消息项ID。 |
|
|
output_index 响应输出项的索引,目前固定为 0。 |
|
|
content_index 该项内容数组中内容部分的索引,目前固定为 0。 |
|
|
part 输出项信息。 |