Qwen-Audio-Realtime Eventos do servidor
Qwen-Audio-Realtime Referência de evento do servidor API
Os eventos do servidor são enviados do servidor para o cliente. Todos os eventos do servidor incluem os campos comuns event_id (um identificador exclusivo gerado automaticamente pelo servidor) e type (o tipo de evento).
Guia do usuário: Conversa por voz em tempo real (Qwen-Audio-Realtime). Para ver o cronograma de interação do evento, consulte API WebSocket.
erro
Retornado quando uma solicitação é inválida ou ocorre um erro de serviço. Erros do cliente (invalid_request_error) não interrompa a conexão; erros do servidor (server_error) encerrar a conexão.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como error. |
| erro | objeto | Detalhes do erro. |
| erro.tipo | corda | Tipo de erro, como invalid_request_error (erro do cliente) ou server_error (erro do servidor). |
| erro.código | corda | Código de erro. |
| mensagem de erro | corda | Mensagem de erro. |
| erro.param | corda | O parâmetro relacionado ao erro. |
{
"event_id": "event_xxx",
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "invalid_value",
"message": "Cannot create response while another response is in progress.",
"param": "response.create"
}
}
sessão.criada
O primeiro evento enviado pelo servidor após o estabelecimento da conexão, carregando a configuração padrão da sessão.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como session.created. |
| sessão | objeto | A configuração da sessão. |
| sessão.objeto | corda | Corrigido como realtime.session. |
| sessão.modelo | corda | O nome do modelo em uso. |
| sessão.modalidades | matriz | As modalidades de saída do modelo. |
| sessão.voz | corda | A voz usada para o áudio gerado — um nome de voz do sistema ou o voice_id de uma voz de clonagem de voz. |
| session.input_audio_transcription | objeto | Configuração de transcrição de fala. |
| session.input_audio_transcription.model | corda | O modelo de transcrição de fala, como fun-asr. |
| session.turn_detection | objeto | Configuração de detecção de curva (VAD). |
| sessão.id | corda | O identificador exclusivo da sessão. |
{
"event_id": "event_KiKZC2zrhNsKFPZ5cTpyA",
"type": "session.created",
"session": {
"object": "realtime.session",
"model": "qwen-audio-3.1-realtime-plus",
"modalities": ["text", "audio"],
"voice": "longanqian_v3.1",
"input_audio_transcription": {
"model": "qwen3-asr-flash-realtime"
},
"turn_detection": {
"type": "server_vad",
"threshold": 0.5,
"silence_duration_ms": 800
},
"id": "sess_A1LbG2D63WELBSawRbpq8"
}
}
sessão.atualizada
Retornou depois de um session.update a solicitação é processada com sucesso, carregando a configuração completa da sessão atualizada. Se ocorrer um erro, um error o evento é retornado em seu lugar.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como session.updated. |
| sessão | objeto | A configuração completa da sessão atualizada. A estrutura corresponde ao session objeto em session.created. |
{
"event_id": "event_FMG6kiHbILCGiqXFPA98e",
"type": "session.updated",
"session": {
"id": "sess_A1LbG2D63WELBSawRbpq8",
"object": "realtime.session",
"model": "qwen-audio-3.0-realtime-plus",
"modalities": ["text", "audio"],
"voice": "longanqian",
"input_audio_transcription": {
"model": "qwen3-asr-flash-realtime"
},
"turn_detection": {
"type": "semantic_vad",
"threshold": 0.1,
"silence_duration_ms": 900
}
}
}
input_audio_buffer.speech_started
O VAD detectou o início da fala (modo servidor_vad / semântico_vad).
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como input_audio_buffer.speech_started. |
| áudio_iniciar_ms | inteiro | O carimbo de data/hora (em milissegundos) quando a fala foi iniciada. |
| item_id | corda | O ID do item que será criado assim que esse segmento de fala for confirmado. |
{
"event_id": "event_xxx",
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 1200,
"item_id": "item_xxx"
}
input_audio_buffer.speech_stopped
O VAD detectou o fim da fala (modo servidor_vad / semântico_vad).
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como input_audio_buffer.speech_stopped. |
| áudio_fim_ms | inteiro | O carimbo de data/hora (em milissegundos) quando a fala terminou. |
| item_id | corda | O ID do item de mensagem do usuário que será criado. |
| razão | corda | Retornado apenas no modo semântico_vad. Um valor de turn_invalid indica que a curva atual foi considerada inválida (sem conteúdo semântico) e não aciona inferência. Este campo não é retornado para turnos válidos. |
{
"event_id": "event_xxx",
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 3400,
"item_id": "item_xxx",
"reason": "turn_invalid"
}
entrada_audio_buffer.comprometido
O buffer de áudio foi confirmado como uma mensagem do usuário (por meio de uma confirmação push-to-talk ou de uma confirmação VAD automática).
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como input_audio_buffer.committed. |
| anterior_item_id | corda | O ID do item de conversa anterior. |
| item_id | corda | O ID do item de mensagem do usuário criado. |
{
"event_id": "event_xxx",
"type": "input_audio_buffer.committed",
"previous_item_id": "item_xxx",
"item_id": "item_xxx"
}
entrada_audio_buffer.cleared
O buffer de áudio foi limpo (apenas modo push-to-talk).
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como input_audio_buffer.cleared. |
{
"event_id": "event_xxx",
"type": "input_audio_buffer.cleared"
}
conversa.item.criado
Um novo item de conversa foi criado com sucesso. Acionado quando uma mensagem de áudio do usuário é confirmada, o cliente cria manualmente um item ou uma resposta do assistente começa.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.created. |
| anterior_item_id | corda | O ID do item de conversa anterior. |
| item | objeto | O item de conversa criado. |
| item.id | corda | O identificador exclusivo do item de conversa. |
| item.objeto | corda | Corrigido como realtime.item. |
| item.tipo | corda | O tipo de item: message (uma mensagem normal) ou function_call (uma chamada de função). |
| item.status | corda | O status do item, como in_progress ou completed. |
| item.role | corda | A função da mensagem, como user ou assistant. Incluído apenas para message itens. |
| item.conteúdo | matriz | A lista de conteúdo da mensagem. Incluído apenas para message itens. |
{
"event_id": "event_xxx",
"type": "conversation.item.created",
"previous_item_id": "item_xxx",
"item": {
"id": "item_xxx",
"object": "realtime.item",
"type": "message",
"status": "in_progress",
"role": "assistant",
"content": []
}
}
conversa.item.deletado
Um item de conversa foi excluído. Devolvido como confirmação após o envio do cliente conversation.item.delete.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.deleted. |
| item_id | corda | O ID do item de conversa excluído. |
{
"event_id": "event_xxx",
"type": "conversation.item.deleted",
"item_id": "item_xxx"
}
conversa.item.recuperado
Um item de conversa foi recuperado com sucesso. Retornado após o envio do cliente conversation.item.retrieve. Para conteúdo do tipo áudio, apenas a transcrição é retornada, e não os dados de áudio originais.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.retrieved. |
| item | objeto | O item de conversa recuperado completo. |
| item.id | corda | O identificador exclusivo do item de conversa. |
| item.objeto | corda | Corrigido como realtime.item. |
| item.tipo | corda | O tipo de item: message (uma mensagem normal) ou function_call (uma chamada de função). |
| item.role | corda | A função da mensagem, como user ou assistant. Incluído apenas para message itens. |
| item.conteúdo | matriz | A lista de conteúdo da mensagem. Para conteúdo do tipo áudio, apenas a transcrição é retornada, e não os dados de áudio originais. |
{
"event_id": "event_xxx",
"type": "conversation.item.retrieved",
"item": {
"id": "item_xxx",
"object": "realtime.item",
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"transcript": "Hello"
}
]
}
}
conversa.item.input_audio_transcription.delta
Resultados incrementais da transcrição ASR, transmitidos durante o reconhecimento de fala. Inclui informações de detecção de emoção e linguagem.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.input_audio_transcription.delta. |
| item_id | corda | O ID do item de conversa associado. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo. |
| texto | corda | O texto de transcrição finalizado. |
| esconderijo | corda | Texto provisório que ainda não foi finalizado. |
{
"event_id": "event_xxx",
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "item_xxx",
"content_index": 0,
"text": "Hello",
"stash": "world"
}
conversa.item.input_audio_transcription.completed
O resultado final da transcrição ASR. O texto da transcrição é escrito no transcript campo do item correspondente.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.input_audio_transcription.completed. |
| item_id | corda | O ID do item de conversa associado. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo. |
| transcrição | corda | O texto completo da transcrição. |
{
"event_id": "event_xxx",
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "item_xxx",
"content_index": 0,
"transcript": "Hello world"
}
conversa.item.input_audio_transcription.failed
A transcrição ASR falhou.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.input_audio_transcription.failed. |
| item_id | corda | O ID do item de conversa associado. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo. |
| erro | objeto | Detalhes do erro. |
| erro.tipo | corda | Tipo de erro, como transcription_error. |
| erro.código | corda | Código de erro, como transcription_failed. |
| mensagem de erro | corda | Mensagem de erro. |
{
"event_id": "event_xxx",
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "item_xxx",
"content_index": 0,
"error": {
"type": "transcription_error",
"code": "transcription_failed",
"message": "ASR transcription failed"
}
}
conversa.item.ambient_audio_transcription.delta
somente modo semântico_vad. Este evento não está associado a nenhum item no contexto da conversa.
Resultados incrementais da transcrição de áudio ambiente. Quando o VAD detecta atividade de voz, mas o julgamento semântico determina que a curva não é válida (por exemplo, ruído ou sons não semânticos como "um" ou "uh"), o resultado ASR é transmitido ao cliente como um evento ambiental. item_id é um ID temporário gerado separadamente.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.ambient_audio_transcription.delta. |
| item_id | corda | Um ID temporário gerado separadamente; não associado a nenhum item no contexto da conversa. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo. |
| texto | corda | O texto de transcrição finalizado. |
| esconderijo | corda | Texto provisório que ainda não foi finalizado. |
{
"event_id": "event_xxx",
"type": "conversation.item.ambient_audio_transcription.delta",
"item_id": "item_xxx",
"content_index": 0,
"text": "Um",
"stash": ""
}
conversa.item.ambient_audio_transcription.completed
somente modo semântico_vad. Este resultado da transcrição não é gravado no contexto da conversa.
O resultado final da transcrição do áudio ambiente. Emparelhado com o evento delta, indicando que a transcrição de um segmento de áudio ambiente foi concluída.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como conversation.item.ambient_audio_transcription.completed. |
| item_id | corda | Um ID temporário gerado separadamente; não associado ao contexto da conversa. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo. |
| transcrição | corda | O texto completo da transcrição. |
{
"event_id": "event_xxx",
"type": "conversation.item.ambient_audio_transcription.completed",
"item_id": "item_xxx",
"content_index": 0,
"transcript": "Um"
}
resposta.criada
Uma rodada de inferência de modelo foi iniciada.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.created. |
| resposta | objeto | O objeto de resposta. |
| resposta.id | corda | O identificador exclusivo da resposta. |
| resposta.objeto | corda | Corrigido como realtime.response. |
| resposta.status | corda | O status da resposta, como in_progress. |
| resposta.modalidades | matriz | As modalidades de saída do modelo. |
| resposta.voz | corda | A voz usada para o áudio gerado — um nome de voz do sistema ou o voice_id de uma voz de clonagem de voz. |
| resposta.saída | matriz | A lista de itens de saída para a resposta; inicialmente uma matriz vazia. |
{
"event_id": "event_xxx",
"type": "response.created",
"response": {
"id": "resp_xxx",
"object": "realtime.response",
"status": "in_progress",
"modalities": ["text", "audio"],
"voice": "longanqian",
"output": []
}
}
resposta.output_item.added
Um novo item de saída foi adicionado à resposta. Os itens de saída para respostas regulares têm o tipo message; itens de saída para chamada de função têm tipo function_call.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.output_item.added. |
| resposta_id | corda | O ID da resposta associada. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| item | objeto | O item de saída adicionado. |
| item.id | corda | O identificador exclusivo do item de saída. |
| item.objeto | corda | Corrigido como realtime.item. |
| item.tipo | corda | O tipo de item de saída: message (uma mensagem normal) ou function_call (uma chamada de função). |
| item.status | corda | O status do item de saída, como in_progress. |
| item.role | corda | A função da mensagem, fixada como assistant. Incluído apenas para message itens. |
| item.conteúdo | matriz | A lista de conteúdo da mensagem. Incluído apenas para message itens. |
Exemplo de um item de saída de mensagem normal:
{
"event_id": "event_xxx",
"type": "response.output_item.added",
"response_id": "resp_xxx",
"output_index": 0,
"item": {
"id": "item_xxx",
"object": "realtime.item",
"type": "message",
"status": "in_progress",
"role": "assistant",
"content": []
}
}
Exemplo de item de saída de chamada de função:
Quando o item de saída é uma chamada de função, o item estrutura em response.output_item.added, conversation.item.createde response.output_item.done é o seguinte:
{
"id": "item_xxx",
"object": "realtime.item",
"type": "function_call",
"status": "completed",
"call_id": "call_xxx",
"name": "get_weather",
"arguments": "{\"city\":\"Hangzhou\"}"
}
Uma única resposta pode incluir vários function_call itens, e pode incluir tanto um regular message saída e function_call saídas ao mesmo tempo. O conteúdo da chamada de função não é enviado ao TTS para reprodução.
resposta.content_part.added
Uma nova parte de conteúdo foi adicionada a um item de saída.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.content_part.added. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| parte | objeto | A parte do conteúdo adicionado. |
| parte.tipo | corda | O tipo de conteúdo, como audio ou text. |
| parte.texto | corda | O conteúdo do texto; inicialmente uma string vazia. |
{
"event_id": "event_xxx",
"type": "response.content_part.added",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"part": {
"type": "audio",
"text": ""
}
}
resposta.texto.delta
Evento de texto incremental no modo somente texto, transmitindo fragmentos de texto.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.text.delta. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| delta | corda | O fragmento de texto incremental. |
{
"event_id": "event_xxx",
"type": "response.text.delta",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"delta": "Hello"
}
resposta.texto.done
Saída de texto concluída, no modo somente texto.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.text.done. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| texto | corda | A saída de texto completa. |
{
"event_id": "event_xxx",
"type": "response.text.done",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"text": "Hello! How can I help you?"
}
resposta.audio_transcript.delta
Evento de texto de legenda incremental no modo de áudio, transmitindo fragmentos de legenda.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.audio_transcript.delta. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| delta | corda | O fragmento de legenda incremental. |
{
"event_id": "event_xxx",
"type": "response.audio_transcript.delta",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"delta": "Hello"
}
resposta.audio_transcript.done
Saída de legenda concluída, em modo de áudio.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.audio_transcript.done. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| transcrição | corda | O texto completo da legenda. |
{
"event_id": "event_xxx",
"type": "response.audio_transcript.done",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"transcript": "Hello! How can I help you?"
}
resposta.audio.delta
Evento de dados de áudio incremental no modo de áudio. O delta campo são dados de áudio PCM codificados em Base64.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.audio.delta. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| delta | corda | Um fragmento de dados de áudio PCM codificado em Base64. |
{
"event_id": "event_xxx",
"type": "response.audio.delta",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"delta": "<base64-encoded audio data>"
}
resposta.audio.done
Saída de áudio concluída, em modo de áudio. Não inclui dados de áudio.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.audio.done. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
{
"event_id": "event_xxx",
"type": "response.audio.done",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0
}
resposta.content_part.done
Uma parte do conteúdo de um item de saída terminou de ser produzida.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.content_part.done. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| conteúdo_índice | inteiro | O índice da parte do conteúdo no item de saída. |
| parte | objeto | A parte do conteúdo concluída. |
| parte.tipo | corda | O tipo de conteúdo, como audio ou text. |
| parte.texto | corda | O conteúdo do texto ou texto da legenda de áudio. |
{
"event_id": "event_xxx",
"type": "response.content_part.done",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"content_index": 0,
"part": {
"type": "audio",
"text": "Hello! How can I help you?"
}
}
resposta.output_item.done
Um item de saída na resposta terminou de ser gerado.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.output_item.done. |
| resposta_id | corda | O ID da resposta associada. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| item | objeto | O item de saída finalizado completo. |
| item.id | corda | O identificador exclusivo do item de saída. |
| item.objeto | corda | Corrigido como realtime.item. |
| item.tipo | corda | O tipo de item de saída: message (uma mensagem normal) ou function_call (uma chamada de função). |
| item.status | corda | O status do item de saída, como completed. |
| item.role | corda | A função da mensagem, fixada como assistant. Incluído apenas para message itens. |
| item.conteúdo | matriz | A lista de conteúdo da mensagem. Incluído apenas para message itens. |
{
"event_id": "event_xxx",
"type": "response.output_item.done",
"response_id": "resp_xxx",
"output_index": 0,
"item": {
"id": "item_xxx",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! How can I help you?"
}
]
}
}
resposta.function_call_arguments.delta
Argumentos de chamada de função incremental. Quando o modelo decide chamar uma ferramenta, o servidor primeiro envia response.output_item.added (com item.type=function_call) e o correspondente conversation.item.createde, em seguida, transmite os fragmentos do argumento por meio deste evento.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.function_call_arguments.delta. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| chamada_id | corda | O identificador exclusivo da chamada de função. |
| delta | corda | Um fragmento incremental dos argumentos de chamada de função (um fragmento de string JSON). |
{
"event_id": "event_xxx",
"type": "response.function_call_arguments.delta",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"call_id": "call_xxx",
"delta": "{\"city"
}
resposta.function_call_arguments.done
Saída de argumentos de chamada de função concluída. Após receber este evento, o cliente deverá executar a ferramenta correspondente, escrever de volta um function_call_output através de conversation.item.createe, em seguida, envie response.create para desencadear a segunda rodada de inferência.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.function_call_arguments.done. |
| resposta_id | corda | O ID da resposta associada. |
| item_id | corda | O ID do item de saída associado. |
| saída_índice | inteiro | O índice do item de saída na resposta. |
| chamada_id | corda | O identificador exclusivo da chamada de função. |
| nome | corda | O nome da função chamada. |
| argumentos | corda | Os argumentos completos da chamada de função (uma string JSON). |
{
"event_id": "event_xxx",
"type": "response.function_call_arguments.done",
"response_id": "resp_xxx",
"item_id": "item_xxx",
"output_index": 0,
"call_id": "call_xxx",
"name": "get_weather",
"arguments": "{\"city\":\"Hangzhou\"}"
}
resposta.concluído
Uma rodada de inferência está concluída. status indica o motivo da conclusão.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como response.done. |
| resposta | objeto | O objeto de resposta completo. |
| resposta.id | corda | O identificador exclusivo da resposta. |
| resposta.objeto | corda | Corrigido como realtime.response. |
| resposta.status | corda | O status final da resposta: completed (terminado normalmente), cancelled (interrompido e cancelado), ou failed (erro LLM ou TTS). |
| resposta.status_details | objeto | Detalhes do status, presentes somente quando cancelled ou failed. |
| resposta.status_details.type | corda | O tipo de status, como cancelled. |
| resposta.status_details.reason | corda | O motivo do cancelamento: turn_detected (interrompido por VAD) ou client_cancelled (cancelado pelo cliente). |
| resposta.modalidades | matriz | As modalidades de saída do modelo. |
| resposta.voz | corda | A voz usada para o áudio gerado — um nome de voz do sistema ou o voice_id de uma voz de clonagem de voz. |
| resposta.saída | matriz | A lista de itens de saída para a resposta, contendo os objetos de item completos. |
Completed normally
```json
{
"event_id": "event_xxx",
"type": "response.done",
"response": {
"id": "resp_xxx",
"object": "realtime.response",
"status": "completed",
"modalities": ["text", "audio"],
"voice": "longanqian",
"output": [
{
"id": "item_xxx",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "audio",
"transcript": "Hello! How can I help you?"
}
]
}
]
}
}
```
Interrupted
```json
{
"event_id": "event_xxx",
"type": "response.done",
"response": {
"id": "resp_xxx",
"status": "cancelled",
"status_details": {
"type": "cancelled",
"reason": "turn_detected"
}
}
}
```
voiceprint_audio_list.in_progress
A inscrição do Voiceprint está ocorrendo de forma assíncrona.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como voiceprint_audio_list.in_progress. |
| item_id | corda | O identificador exclusivo da tarefa de registro de impressão de voz. |
{
"event_id": "event_PaEcN7CCrlhE8q4MM2yND",
"type": "voiceprint_audio_list.in_progress",
"item_id": "vp_Y12cA986j1KZ9O9YmAXOA"
}
voiceprint_audio_list.completed
O registro do Voiceprint foi concluído.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como voiceprint_audio_list.completed. |
| item_id | corda | O identificador exclusivo da tarefa de registro de impressão de voz. |
{
"event_id": "event_PaEcN7CCrlhE8q4MM2yND",
"type": "voiceprint_audio_list.completed",
"item_id": "vp_Y12cA986j1KZ9O9YmAXOA"
}
voiceprint_audio_list.failed
Falha no registro do Voiceprint. Isto não bloqueia chamadas de conversação normais.
| Campo | Tipo | Descrição |
|---|---|---|
| evento_id | corda | O identificador exclusivo deste evento. |
| tipo | corda | Tipo de evento, fixado como voiceprint_audio_list.failed. |
| item_id | corda | O identificador exclusivo da tarefa de registro de impressão de voz. |
| motivo | corda | Uma descrição do motivo da falha. |
{
"event_id": "event_PaEcN7CCrlhE8q4MM2yND",
"type": "voiceprint_audio_list.failed",
"item_id": "vp_Y12cA986j1KZ9O9YmAXOA",
"reason": ""
}