Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Referência da API Voice Live
A API Voice Live fornece comunicação bidirecional em tempo real para aplicações com voz que utilizam ligações WebSocket. Esta API suporta funcionalidades avançadas, incluindo reconhecimento de voz, síntese de texto para fala, streaming de avatares, dados de animação e capacidades abrangentes de processamento áudio.
A API utiliza eventos em formato JSON enviados através de ligações WebSocket para gerir conversas, fluxos de áudio, interações com avatares e respostas em tempo real. Os eventos são categorizados em eventos de cliente (enviados de cliente para servidor) e eventos de servidor (enviados de servidor para cliente).
Key Features
- Processamento de Áudio em Tempo Real: Suporte para múltiplos formatos de áudio, incluindo PCM16 a várias taxas de amostragem e codecs G.711
- Opções Avançadas de Voz: Vozes OpenAI, vozes Azure personalizadas, vozes Azure padrão e vozes Azure pessoais
- Integração com Avatar: Streaming de avatares baseado em WebRTC com vídeo, animação e blendshapes
- Deteção Inteligente de Curvas: Múltiplas opções de VAD, incluindo Azure VAD semântica e deteção do lado do servidor
- Melhoria de Áudio: Redução de ruído e cancelamento de eco incorporados
- Chamada de Funções: Integração de ferramentas para capacidades conversacionais aprimoradas
- Gestão Flexível de Sessões: Modalidades de saída, instruções e parâmetros de resposta configuráveis
Client Events
A API Voice Live suporta os seguintes eventos do cliente que podem ser enviados do cliente para o servidor:
| Event | Description |
|---|---|
| session.update | Atualize a configuração da sessão, incluindo voz, modalidades de saída, deteção de curvas e outras definições |
| session.avatar.connect | Estabelecer ligação avatar fornecendo SDP de cliente para negociação WebRTC |
| input_audio_buffer.append | Adicionar bytes de áudio ao buffer de áudio de entrada |
| input_audio_buffer.commit | Comprometer o buffer de áudio de entrada para processamento |
| input_audio_buffer.clear | Limpar o buffer de áudio de entrada |
| conversation.item.create | Adicionar um novo item ao contexto da conversa |
| conversation.item.retrieve | Recupera um item específico da conversa |
| conversation.item.truncate | Truncar uma mensagem áudio de assistente |
| conversation.item.delete | Remover um item da conversa |
| response.create | Instrua o servidor a criar uma resposta através de inferência de modelo |
| response.cancel | Cancelar uma resposta em curso |
session.update
Atualize a configuração da sessão. Este evento pode ser enviado a qualquer momento para modificar definições como voz, modalidades de saída, deteção de curvas, ferramentas e outros parâmetros da sessão. Note que, uma vez que uma sessão é inicializada com um modelo em particular, não pode ser alterada para outro modelo.
Event Structure
{
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": {
"type": "openai",
"name": "alloy"
},
"instructions": "You are a helpful assistant. Be concise and friendly.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "session.update" |
| session | RealtimeRequestSession | Objeto de configuração de sessão com campos a atualizar |
Exemplo com Azure Custom Voice
{
"type": "session.update",
"session": {
"voice": {
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful"
},
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"avatar": {
"character": "lisa",
"customized": false,
"video": {
"resolution": {
"width": 1920,
"height": 1080
},
"bitrate": 2000000
}
}
}
}
session.avatar.connect
Estabeleça uma ligação avatar fornecendo a oferta SDP (Session Description Protocol) do cliente para negociação de media WebRTC. Este evento é obrigatório quando se utilizam as funcionalidades do avatar.
Event Structure
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "session.avatar.connect" |
| client_sdp | cadeia (de caracteres) | A oferta SDP do cliente para estabelecimento de ligação WebRTC, codificada com base64 |
input_audio_buffer.append
Adicione bytes de áudio ao buffer de áudio de entrada.
Event Structure
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "input_audio_buffer.append" |
| audio | cadeia (de caracteres) | Dados de áudio codificados em Base64 |
input_audio_buffer.commit
Compromete o buffer de áudio de entrada para processamento.
Event Structure
{
"type": "input_audio_buffer.commit"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "input_audio_buffer.commit" |
input_audio_buffer.clear
Limpa o buffer de áudio de entrada.
Event Structure
{
"type": "input_audio_buffer.clear"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "input_audio_buffer.clear" |
conversation.item.create
Adicione um novo item ao contexto da conversa. Isto pode incluir mensagens, chamadas de função e respostas de chamadas de função. Os itens podem ser inseridos em posições específicas no histórico da conversa.
Event Structure
{
"type": "conversation.item.create",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.create" |
| previous_item_id | cadeia (de caracteres) | Optional. ID do item após o qual deve inserir esse item. Se não for fornecido, acrescenta para o fim |
| item | RealtimeConversationRequestItem | O item a acrescentar à conversa |
Exemplo com conteúdo áudio
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Exemplo com saída de chamada de função
{
"type": "conversation.item.create",
"item": {
"type": "function_call_output",
"call_id": "call_123",
"output": "{\"location\": \"San Francisco\", \"temperature\": \"70\"}"
}
}
Exemplo com resposta de aprovação do MCP
{
"type": "conversation.item.create",
"item": {
"type": "mcp_approval_response",
"approval_request_id": "mcp_approval_req_456",
"approve": true,
}
}
conversation.item.retrieve
Recupera um item específico do histórico da conversa. Isto é útil para inspecionar áudio processado após cancelamento de ruído e VAD.
Event Structure
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.retrieve" |
| item_id | cadeia (de caracteres) | O ID do item a recuperar |
conversation.item.truncate
Trunque o conteúdo áudio de uma mensagem de assistente. Isto é útil para interromper a reprodução num ponto específico e sincronizar a compreensão do servidor com o estado do cliente.
Event Structure
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.truncate" |
| item_id | cadeia (de caracteres) | O ID do item da mensagem assistente a truncar |
| content_index | número inteiro | O índice da parte de conteúdo para truncar |
| audio_end_ms | número inteiro | A duração até ao qual se deve truncar o áudio, em milissegundos |
conversation.item.delete
Remova um item do histórico de conversas.
Event Structure
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.delete" |
| item_id | cadeia (de caracteres) | O ID do item a eliminar |
response.create
Instruir o servidor a criar uma resposta através de inferência de modelo. Este evento pode especificar uma configuração específica de resposta que sobrepõe os valores predefinidos da sessão.
Event Structure
{
"type": "response.create",
"response": {
"modalities": ["text", "audio"],
"instructions": "Be extra helpful and detailed.",
"voice": {
"type": "openai",
"name": "alloy"
},
"output_audio_format": "pcm16",
"temperature": 0.7,
"max_response_output_tokens": 1000
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.create" |
| response | RealtimeResponseOptions | Configuração opcional de resposta que sobrepõe os padrões da sessão |
Exemplo com Escolha de Ferramenta
{
"type": "response.create",
"response": {
"modalities": ["text"],
"tools": [
{
"type": "function",
"name": "get_current_time",
"description": "Get the current time",
"parameters": {
"type": "object",
"properties": {}
}
}
],
"tool_choice": "get_current_time",
"temperature": 0.3
}
}
Exemplo com animação
{
"type": "response.create",
"response": {
"modalities": ["audio", "animation"],
"animation": {
"model_name": "default",
"outputs": ["blendshapes", "viseme_id"]
},
"voice": {
"type": "azure-custom",
"name": "my-expressive-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"style": "excited"
}
}
}
response.cancel
Cancelar uma resposta em curso. Isto interrompe imediatamente a geração de respostas e a saída de áudio relacionada.
Event Structure
{
"type": "response.cancel"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.cancel" |
input_audio_buffer.append
O evento cliente input_audio_buffer.append é usado para adicionar bytes de áudio ao buffer de áudio de entrada. O buffer de áudio é um armazenamento temporário onde podes escrever e depois fazer commit.
No modo Server VAD (Deteção de Atividade de Voz), o buffer de áudio é usado para detetar a fala e o servidor decide quando comprometer. Quando o VAD do servidor está desativado, o cliente pode escolher quanto áudio colocar em cada evento até um máximo de 15 MiB. Por exemplo, transmitir pequenos blocos do cliente pode permitir que o VAD seja mais responsivo.
Ao contrário da maioria dos outros eventos do cliente, o servidor não envia uma resposta de confirmação ao evento do cliente input_audio_buffer.append .
Event structure
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.append. |
| audio | cadeia (de caracteres) | Bytes de áudio codificados em base64. Este valor deve estar no formato especificado pelo input_audio_format campo na configuração da sessão. |
input_audio_buffer.clear
O evento cliente input_audio_buffer.clear é usado para limpar os bytes de áudio no buffer.
O servidor responde com um input_audio_buffer.cleared evento.
Event structure
{
"type": "input_audio_buffer.clear"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.clear. |
input_audio_buffer.commit
O evento cliente input_audio_buffer.commit é usado para comprometer o buffer de áudio de entrada do utilizador, que cria um novo elemento de mensagem de utilizador na conversa. O áudio é transcrito se input_audio_transcription estiver configurado para a sessão.
Quando está em modo VAD de servidor, o cliente não precisa de enviar este evento, o servidor faz commit automático do buffer de áudio. Sem o VAD do servidor, o cliente tem de comprometer o buffer de áudio para criar um item de mensagem do utilizador. Este evento cliente produz um erro se o buffer de áudio de entrada estiver vazio.
Confirmar o buffer de áudio de entrada não cria uma resposta do modelo.
O servidor responde com um input_audio_buffer.committed evento.
Event structure
{
"type": "input_audio_buffer.commit"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.commit. |
Server Events
A API Voice Live envia os seguintes eventos do servidor para comunicar estado, respostas e dados ao cliente:
| Event | Description |
|---|---|
| error | Indica que ocorreu um erro durante o processamento |
| warning | Indica que ocorreu um aviso que não interrompe o fluxo da conversa |
| session.created | Enviado quando uma nova sessão é estabelecida com sucesso |
| session.updated | Enviado quando a configuração da sessão é atualizada |
| session.avatar.connecting | Indica que a ligação ao avatar WebRTC está a ser estabelecida |
| conversation.item.created | Enviado quando um novo item é adicionado à conversa |
| conversation.item.retrieved | Resposta ao pedido conversation.item.retrieve |
| conversation.item.truncated | Confirma truncamento do item |
| conversation.item.deleted | Confirma eliminação de itens |
| conversation.item.input_audio_transcription.completed | A transcrição áudio de entrada está completa |
| conversation.item.input_audio_transcription.delta | Transcrição áudio de entrada em streaming |
| conversation.item.input_audio_transcription.failed | A transcrição de áudio de entrada falhou |
| input_audio_buffer.committed | O buffer de áudio de entrada era para processamento |
| input_audio_buffer.cleared | O buffer de áudio de entrada foi limpo |
| input_audio_buffer.speech_started | Fala detetada no buffer de áudio de entrada (VAD) |
| input_audio_buffer.speech_stopped | A fala terminava no buffer de áudio de entrada (VAD) |
| response.created | Começou uma nova geração de resposta |
| response.done | A geração de respostas está completa |
| response.output_item.added | Novo item de saída adicionado à resposta |
| response.output_item.done | Item de saída concluído |
| response.content_part.added | Nova parte de conteúdo adicionada ao item de saída |
| response.content_part.done | A parte do conteúdo está completa |
| response.text.delta | Conteúdo textual em streaming a partir do modelo |
| response.text.done | O conteúdo do texto está completo |
| response.audio_transcript.delta | Transcrição áudio em streaming |
| response.audio_transcript.done | A transcrição áudio está completa |
| response.audio.delta | Streaming de conteúdo áudio a partir do modelo |
| response.audio.done | O conteúdo áudio está completo |
| response.animation_blendshapes.delta | Dados de blendshapes de animação em streaming |
| response.animation_blendshapes.done | Os dados do blendshapes de animação estão completos |
| response.audio_timestamp.delta | Informação sobre o carimbo temporal de áudio em streaming |
| response.audio_timestamp.done | A informação de carimbo temporal do áudio está completa |
| response.animation_viseme.delta | Dados de visema de animação em streaming |
| response.animation_viseme.done | Os dados do visema de animação estão completos |
| response.function_call_arguments.delta | Argumentos de chamada de função de streaming |
| response.function_call_arguments.done | Os argumentos das chamadas de função são completos |
| mcp_list_tools.in_progress | A listagem de ferramentas MCP está em curso |
| mcp_list_tools.completed | Lista das ferramentas MCP concluída |
| mcp_list_tools.failed | A listagem de ferramentas MCP falhou |
| response.mcp_call_arguments.delta | Argumentos de chamada MCP em streaming |
| response.mcp_call_arguments.done | Os argumentos da chamada MCP estão completos |
| response.mcp_call.in_progress | A chamada MCP está em curso |
| response.mcp_call.completed | A chamada MCP foi concluída |
| response.mcp_call.failed | A chamada MCP falhou |
session.created
Enviado quando uma nova sessão é estabelecida com sucesso. Este é o primeiro evento recebido após a ligação à API.
Event Structure
{
"type": "session.created",
"session": {
"id": "sess_ABC123DEF456",
"object": "realtime.session",
"model": "gpt-realtime",
"modalities": ["text", "audio"],
"instructions": "You are a helpful assistant.",
"voice": {
"type": "openai",
"name": "alloy"
},
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "session.created" |
| session | RealtimeResponseSession | O objeto de sessão criado |
session.updated
Enviado quando a configuração da sessão é atualizada com sucesso em resposta a um session.update evento do cliente.
Event Structure
{
"type": "session.updated",
"session": {
"id": "sess_ABC123DEF456",
"voice": {
"type": "azure-custom",
"name": "my-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012"
},
"temperature": 0.7,
"avatar": {
"character": "lisa",
"customized": false
}
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "session.updated" |
| session | RealtimeResponseSession | O objeto de sessão atualizado |
session.avatar.connecting
Indica que está a ser estabelecida uma ligação avatar WebRTC. Este evento é enviado em resposta a um session.avatar.connect evento de um cliente.
Event Structure
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "session.avatar.connecting" |
conversation.item.created
Enviado quando um novo item é adicionado à conversa, seja através de um evento cliente conversation.item.create ou automaticamente durante a geração de respostas.
Event Structure
{
"type": "conversation.item.created",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.created" |
| previous_item_id | cadeia (de caracteres) | ID do item após o qual esse item foi inserido |
| item | RealtimeConversationResponseItem | O item de conversa criado |
Exemplo com Item de Áudio
{
"type": "conversation.item.created",
"item": {
"id": "item_GHI789",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": null,
"transcript": "What's the weather like today?"
}
]
}
}
conversation.item.retrieved
Enviado em resposta a um conversation.item.retrieve evento de cliente, fornecendo o item de conversa solicitado.
Event Structure
{
"type": "conversation.item.retrieved",
"item": {
"id": "item_ABC123",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.retrieved" |
| item | RealtimeConversationResponseItem | O item de conversa recuperado |
conversation.item.truncated
O evento servidor conversation.item.truncated é devolvido quando o cliente trunca um item de mensagem áudio assistente anterior com um conversation.item.truncate evento. Este evento é usado para sincronizar a compreensão do áudio pelo servidor com a reprodução do cliente.
Este evento trunca o áudio e remove a transcrição do texto do lado do servidor para garantir que não há texto no contexto que o utilizador desconheça.
Event structure
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser conversation.item.truncated. |
| item_id | cadeia (de caracteres) | O ID do item da mensagem do assistente que foi truncado. |
| content_index | número inteiro | O índice da parte de conteúdo que foi truncado. |
| audio_end_ms | número inteiro | A duração até à qual o áudio foi truncado, em milissegundos. |
conversation.item.deleted
Enviado em resposta a um conversation.item.delete evento do cliente, confirmando que o item especificado foi removido da conversa.
Event Structure
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "conversation.item.deleted" |
| item_id | cadeia (de caracteres) | ID do item eliminado |
response.created
Enviado quando começa uma nova geração de resposta. Este é o primeiro evento numa sequência de resposta.
Event Structure
{
"type": "response.created",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "in_progress",
"status_details": null,
"output": [],
"usage": {
"total_tokens": 0,
"input_tokens": 0,
"output_tokens": 0
}
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.created" |
| response | RealtimeResponse | O objeto de resposta que foi criado |
response.done
Enviado quando a geração de resposta estiver concluída. Este evento contém a resposta final com todos os itens de saída e estatísticas de utilização.
Event Structure
{
"type": "response.done",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "completed",
"status_details": null,
"output": [
{
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
],
"usage": {
"total_tokens": 87,
"input_tokens": 52,
"output_tokens": 35,
"input_token_details": {
"cached_tokens": 0,
"text_tokens": 45,
"audio_tokens": 7
},
"output_token_details": {
"text_tokens": 15,
"audio_tokens": 20
}
}
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.done" |
| response | RealtimeResponse | O objeto de resposta concluído |
response.output_item.added
Enviado quando um novo item de saída é adicionado à resposta durante a geração.
Event Structure
{
"type": "response.output_item.added",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "in_progress",
"role": "assistant",
"content": []
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.output_item.added" |
| response_id | cadeia (de caracteres) | ID da resposta a que este item pertence |
| output_index | número inteiro | Índice do item no array de saída da resposta |
| item | RealtimeConversationResponseItem | O item de saída que foi adicionado |
response.output_item.done
Enviado quando um item de saída está completo.
Event Structure
{
"type": "response.output_item.done",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
]
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.output_item.done" |
| response_id | cadeia (de caracteres) | ID da resposta a que este item pertence |
| output_index | número inteiro | Índice do item no array de saída da resposta |
| item | RealtimeConversationResponseItem | O item de saída concluído |
response.content_part.added
O evento do servidor response.content_part.added é devolvido quando uma nova parte de conteúdo é adicionada a um item de mensagem assistente durante a geração da resposta.
Event Structure
{
"type": "response.content_part.added",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": ""
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.content_part.added" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | ID do item a que pertence esta parte de conteúdo |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice desta parte de conteúdo no item |
| part | RealtimeContentPart | A parte do conteúdo que foi adicionada |
response.content_part.done
O evento do servidor response.content_part.done é devolvido quando uma parte do conteúdo termina de ser transmitida num item de mensagem de assistente.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event Structure
{
"type": "response.content_part.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.content_part.done" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | ID do item a que pertence esta parte de conteúdo |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice desta parte de conteúdo no item |
| part | RealtimeContentPart | A parte do conteúdo concluído |
response.text.delta
Conteúdo de texto em streaming do modelo. Enviado incrementalmente à medida que o modelo gera texto.
Event Structure
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.text.delta" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| delta | cadeia (de caracteres) | Conteúdo textual incremental |
response.text.done
Enviado quando a geração de conteúdo de texto estiver concluída.
Event Structure
{
"type": "response.text.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.text.done" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| enviar SMS | cadeia (de caracteres) | O conteúdo textual completo |
response.audio.delta
Conteúdo áudio em streaming a partir do modelo. O áudio é fornecido como dados codificados em base64.
Event Structure
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.audio.delta" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| delta | cadeia (de caracteres) | Bloco de dados de áudio codificado em Base64 |
response.audio.done
Enviado quando a geração de conteúdo áudio estiver concluída.
Event Structure
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.audio.done" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
response.audio_transcript.delta
Transcrição em streaming do conteúdo áudio gerado.
Event Structure
{
"type": "response.audio_transcript.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm doing"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.audio_transcript.delta" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| delta | cadeia (de caracteres) | Texto da transcrição incremental |
response.audio_transcript.done
Enviado quando a geração da transcrição áudio estiver concluída.
Event Structure
{
"type": "response.audio_transcript.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "response.audio_transcript.done" |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| transcrição | cadeia (de caracteres) | O texto completo da transcrição |
conversation.item.input_audio_transcription.completed
O evento do servidor conversation.item.input_audio_transcription.completed é o resultado da transcrição de áudio para a fala escrita no buffer de áudio.
A transcrição começa quando o buffer de áudio de entrada é comprometido pelo cliente ou servidor (em server_vad modo). A transcrição corre de forma assíncrona com a criação de respostas, pelo que este evento pode ocorrer antes ou depois dos eventos de resposta.
Os modelos de API em tempo real aceitam áudio nativamente, e assim a transcrição de entrada é um processo separado executado num modelo de reconhecimento de voz distinto, como whisper-1. Assim, a transcrição pode divergir um pouco da interpretação do modelo e deve ser tratada como um guia aproximado.
Event structure
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser conversation.item.input_audio_transcription.completed. |
| item_id | cadeia (de caracteres) | O ID do item da mensagem do utilizador que contém o áudio. |
| content_index | número inteiro | O índice da parte de conteúdo que contém o áudio. |
| transcrição | cadeia (de caracteres) | O texto transcrito. |
conversation.item.input_audio_transcription.delta
O evento do servidor conversation.item.input_audio_transcription.delta é devolvido quando a transcrição áudio de entrada é configurada e está em curso um pedido de transcrição para uma mensagem de utilizador. Este evento fornece resultados parciais de transcrição à medida que se tornam disponíveis.
Event structure
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser conversation.item.input_audio_transcription.delta. |
| item_id | cadeia (de caracteres) | O ID do item da mensagem do utilizador. |
| content_index | número inteiro | O índice da parte de conteúdo que contém o áudio. |
| delta | cadeia (de caracteres) | O texto de transcrição incremental. |
conversation.item.input_audio_transcription.failed
O evento do servidor conversation.item.input_audio_transcription.failed é devolvido quando a transcrição áudio de entrada é configurada e um pedido de transcrição para uma mensagem de utilizador falhou. Este evento é separado dos outros error eventos para que o cliente possa identificar o item relacionado.
Event structure
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser conversation.item.input_audio_transcription.failed. |
| item_id | cadeia (de caracteres) | O ID do item da mensagem do utilizador. |
| content_index | número inteiro | O índice da parte de conteúdo que contém o áudio. |
| erro | objecto | Detalhes do erro de transcrição. Veja as propriedades aninhadas na tabela seguinte. |
Error properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de erro. |
| código | cadeia (de caracteres) | Código de erro, se houver. |
| mensagem | cadeia (de caracteres) | Uma mensagem de erro legível por humanos. |
| param | cadeia (de caracteres) | Parâmetro relacionado com o erro, se houver. |
response.animation_blendshapes.delta
O evento do servidor response.animation_blendshapes.delta é devolvido quando o modelo gera dados de blendshapes de animação como parte de uma resposta. Este evento fornece dados incrementais de blendshapes à medida que se tornam disponíveis.
Event structure
{
"type": "response.animation_blendshapes.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"frame_index": 0,
"frames": [
[0.0, 0.1, 0.2, ..., 1.0]
...
]
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.animation_blendshapes.delta. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| frame_index | número inteiro | Índice do primeiro quadro deste lote de fotogramas |
| frames | array do array de float | Array de frames blendshape, cada frame é um array de valores blendshape |
response.animation_blendshapes.done
O evento do servidor response.animation_blendshapes.done é devolvido quando o modelo termina de gerar dados de blendshapes de animação como parte de uma resposta.
Event structure
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.animation_blendshapes.done. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
response.audio_timestamp.delta
O evento do servidor response.audio_timestamp.delta é devolvido quando o modelo gera dados de carimbo temporal de áudio como parte de uma resposta. Este evento fornece dados incrementais de carimbo temporal para o alinhamento de áudio e texto de saída à medida que se torna disponível.
Event structure
{
"type": "response.audio_timestamp.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"audio_duration_ms": 500,
"text": "Hello",
"timestamp_type": "word"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio_timestamp.delta. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| audio_offset_ms | número inteiro | Deslocamento do áudio em milissegundos a partir do início do áudio |
| audio_duration_ms | número inteiro | Duração do segmento áudio em milissegundos |
| enviar SMS | cadeia (de caracteres) | O segmento de texto correspondente a este carimbo temporal áudio |
| timestamp_type | cadeia (de caracteres) | O tipo de carimbo temporal, atualmente apenas "palavra" é suportado |
response.audio_timestamp.done
Enviado quando a geração do timestamp de áudio estiver concluída.
Event Structure
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio_timestamp.done. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
response.animation_viseme.delta
O evento do servidor response.animation_viseme.delta é devolvido quando o modelo gera dados de visema de animação como parte de uma resposta. Este evento fornece dados incrementais do visema à medida que se tornam disponíveis.
Event Structure
{
"type": "response.animation_viseme.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"viseme_id": 1
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.animation_viseme.delta. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
| audio_offset_ms | número inteiro | Deslocamento do áudio em milissegundos a partir do início do áudio |
| viseme_id | número inteiro | O ID do visema corresponde à forma da boca para animação |
response.animation_viseme.done
O evento do servidor response.animation_viseme.done é devolvido quando o modelo termina de gerar os dados do visema de animação como parte de uma resposta.
Event Structure
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.animation_viseme.done. |
| response_id | cadeia (de caracteres) | ID da resposta |
| item_id | cadeia (de caracteres) | Identificação do item |
| output_index | número inteiro | Índice do item na resposta |
| content_index | número inteiro | Índice da parte de conteúdo |
erro
O evento do servidor error é devolvido quando ocorre um erro, que pode ser um problema do cliente ou do servidor. A maioria dos erros é recuperável e a sessão mantém-se aberta.
Event structure
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser error. |
| erro | objecto | Detalhes do erro. Veja as propriedades aninhadas na tabela seguinte. |
Error properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de erro. Por exemplo, "invalid_request_error" e "server_error" são tipos de erro. |
| código | cadeia (de caracteres) | Código de erro, se houver. |
| mensagem | cadeia (de caracteres) | Uma mensagem de erro legível por humanos. |
| param | cadeia (de caracteres) | Parâmetro relacionado com o erro, se houver. |
| event_id | cadeia (de caracteres) | O ID do evento cliente que causou o erro, se aplicável. |
aviso
O evento do servidor warning é devolvido quando ocorre um aviso que não interrompe o fluxo da conversa. Os avisos são informativos e a sessão continua normalmente.
Event structure
{
"type": "warning",
"warning": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser warning. |
| aviso | objecto | Detalhes do aviso. Veja as propriedades aninhadas na tabela seguinte. |
Warning properties
| Field | Tipo | Description |
|---|---|---|
| mensagem | cadeia (de caracteres) | Uma mensagem de aviso legível para humanos. |
| código | cadeia (de caracteres) | Optional. Código de aviso, se houver. |
| param | cadeia (de caracteres) | Optional. Parâmetro relacionado com o aviso, se houver. |
input_audio_buffer.cleared
O evento do servidor input_audio_buffer.cleared é devolvido quando o cliente limpa o buffer de áudio de entrada com um input_audio_buffer.clear evento.
Event structure
{
"type": "input_audio_buffer.cleared"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.cleared. |
input_audio_buffer.committed
O evento do servidor input_audio_buffer.committed é devolvido quando um buffer de áudio de entrada é confirmado, seja pelo cliente ou automaticamente em modo VAD do servidor. A item_id propriedade é o ID do item de mensagem do utilizador criado. Assim, um conversation.item.created evento também é enviado ao cliente.
Event structure
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.committed. |
| previous_item_id | cadeia (de caracteres) | O ID do item anterior, após o qual o novo item é inserido. |
| item_id | cadeia (de caracteres) | O ID do item de mensagem do utilizador criado. |
input_audio_buffer.speech_started
O evento do servidor input_audio_buffer.speech_started é devolvido em server_vad modo quando a fala é detetada no buffer de áudio. Este evento pode acontecer sempre que áudio é adicionado ao buffer (a menos que a fala já seja detetada).
Note
O cliente pode querer usar este evento para interromper a reprodução de áudio ou fornecer feedback visual ao utilizador.
O cliente deve esperar receber um input_audio_buffer.speech_stopped evento quando a fala cessar. A item_id propriedade é o ID do item de mensagem do utilizador criado quando a fala para. Também item_id é incluído no input_audio_buffer.speech_stopped evento, a menos que o cliente comprometa manualmente o buffer de áudio durante a ativação do VAD.
Event structure
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.speech_started. |
| audio_start_ms | número inteiro | Milissegundos a partir do início de todo o áudio gravado no buffer durante a sessão, quando a fala foi detetada pela primeira vez. Esta propriedade corresponde ao início do áudio enviado para o modelo, e assim inclui a prefix_padding_ms configuração na sessão. |
| item_id | cadeia (de caracteres) | O ID do item de mensagem do utilizador criado quando a fala para. |
input_audio_buffer.speech_stopped
O evento do servidor input_audio_buffer.speech_stopped é devolvido em server_vad modo quando o servidor deteta o fim da fala no buffer de áudio.
O servidor também envia um conversation.item.created evento com o item de mensagem do utilizador criado a partir do buffer de áudio.
Event structure
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser input_audio_buffer.speech_stopped. |
| audio_end_ms | número inteiro | Milissegundos desde o início da sessão quando a fala parou. Esta propriedade corresponde ao fim do áudio enviado para o modelo, e assim inclui o min_silence_duration_ms configurado na sessão. |
| item_id | cadeia (de caracteres) | O ID do item de mensagem do utilizador criado. |
rate_limits.updated
O evento do servidor rate_limits.updated é emitido no início de uma resposta para indicar os limites de taxa atualizados.
Quando uma resposta é criada, alguns tokens são reservados para os tokens de saída. Os limites de taxa aqui apresentados refletem essa reserva, que é então ajustada em conformidade assim que a resposta é concluída.
Event structure
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser rate_limits.updated. |
| rate_limits | array de RealtimeRateLimitsItem | A lista de informações sobre limites de taxas. |
response.audio.delta
O evento do servidor response.audio.delta é devolvido quando o áudio gerado pelo modelo é atualizado.
Event structure
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio.delta. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
| delta | cadeia (de caracteres) | Delta de dados de áudio codificados em base64. |
response.audio.done
O evento do servidor response.audio.done é devolvido quando o áudio gerado pelo modelo termina.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event structure
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio.done. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
response.audio_transcript.delta
O evento do servidor response.audio_transcript.delta é devolvido quando a transcrição gerada pelo modelo da saída de áudio é atualizada.
Event structure
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio_transcript.delta. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
| delta | cadeia (de caracteres) | A transcrição delta. |
response.audio_transcript.done
O evento do servidor response.audio_transcript.done é devolvido quando a transcrição gerada pelo modelo da saída de áudio termina o streaming.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event structure
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.audio_transcript.done. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
| transcrição | cadeia (de caracteres) | A transcrição final do áudio. |
response.function_call_arguments.delta
O evento servidor response.function_call_arguments.delta é devolvido quando os argumentos de chamada de função gerados pelo modelo são atualizados.
Event structure
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.function_call_arguments.delta. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| call_id | cadeia (de caracteres) | O ID da chamada de função. |
| delta | cadeia (de caracteres) | Os argumentos são uma sequência JSON. |
response.function_call_arguments.done
O evento do servidor response.function_call_arguments.done é devolvido quando os argumentos das chamadas de função gerados pelo modelo terminam de ser transmitidos.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event structure
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.function_call_arguments.done. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| call_id | cadeia (de caracteres) | O ID da chamada de função. |
| arguments | cadeia (de caracteres) | Os argumentos finais como uma sequência JSON. |
mcp_list_tools.in_progress
O evento do servidor mcp_list_tools.in_progress é devolvido quando o serviço começa a listar as ferramentas disponíveis de um servidor mcp.
Event structure
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser mcp_list_tools.in_progress. |
| item_id | cadeia (de caracteres) | O ID do item das ferramentas da lista MCP em processamento. |
mcp_list_tools.completed
O evento do servidor mcp_list_tools.completed é devolvido quando o serviço termina de listar as ferramentas disponíveis de um servidor mcp.
Event structure
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser mcp_list_tools.completed. |
| item_id | cadeia (de caracteres) | O ID do item das ferramentas da lista MCP em processamento. |
mcp_list_tools.failed
O evento do servidor mcp_list_tools.failed é devolvido quando o serviço não consegue listar as ferramentas disponíveis de um servidor mcp.
Event structure
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser mcp_list_tools.failed. |
| item_id | cadeia (de caracteres) | O ID do item das ferramentas da lista MCP em processamento. |
response.mcp_call_arguments.delta
O evento do servidor response.mcp_call_arguments.delta é devolvido quando os argumentos de chamada à ferramenta mcp gerados pelo modelo são atualizados.
Event structure
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.mcp_call_arguments.delta. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | O ID do item da chamada da ferramenta mcp. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| delta | cadeia (de caracteres) | Os argumentos são uma sequência JSON. |
response.mcp_call_arguments.done
O evento do servidor response.mcp_call_arguments.done é devolvido quando os argumentos da chamada à ferramenta mcp gerados pelo modelo terminam de ser transmitidos.
Event structure
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.mcp_call_arguments.done. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | O ID do item da chamada da ferramenta mcp. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| arguments | cadeia (de caracteres) | Os argumentos finais como uma sequência JSON. |
response.mcp_call.in_progress
O evento do servidor response.mcp_call.in_progress é devolvido quando uma chamada de ferramenta MCP começa a ser processada.
Event structure
{
"type": "response.mcp_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.mcp_call.in_progress. |
| item_id | cadeia (de caracteres) | O ID do item da chamada da ferramenta mcp. |
| output_index | número inteiro | O índice do item de saída na resposta. |
response.mcp_call.completed
O evento do servidor response.mcp_call.completed é devolvido quando uma chamada de ferramenta MCP é concluída com sucesso.
Event structure
{
"type": "response.mcp_call.completed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.mcp_call.completed. |
| item_id | cadeia (de caracteres) | O ID do item da chamada da ferramenta mcp. |
| output_index | número inteiro | O índice do item de saída na resposta. |
response.mcp_call.failed
O evento do servidor response.mcp_call.failed é devolvido quando uma chamada à ferramenta MCP falha.
Event structure
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.mcp_call.failed. |
| item_id | cadeia (de caracteres) | O ID do item da chamada da ferramenta mcp. |
| output_index | número inteiro | O índice do item de saída na resposta. |
response.output_item.added
O evento do servidor response.output_item.added é devolvido quando um novo item é criado durante a geração da resposta.
Event structure
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.output_item.added. |
| response_id | cadeia (de caracteres) | O ID da resposta a que o item pertence. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| item | RealtimeConversationResponseItem | O item que foi adicionado. |
response.output_item.done
O evento do servidor response.output_item.done é devolvido quando um item termina de ser transmitido.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event structure
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.output_item.done. |
| response_id | cadeia (de caracteres) | O ID da resposta a que o item pertence. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| item | RealtimeConversationResponseItem | O item que já está feito em streaming. |
response.text.delta
O evento do servidor response.text.delta é devolvido quando o texto gerado pelo modelo é atualizado. O texto corresponde à text parte de conteúdo de um item de mensagem assistente.
Event structure
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.text.delta. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
| delta | cadeia (de caracteres) | O texto é um delta. |
response.text.done
O evento do servidor response.text.done é devolvido quando o texto gerado pelo modelo termina de ser transmitido. O texto corresponde à text parte de conteúdo de um item de mensagem assistente.
Este evento também é devolvido quando uma resposta é interrompida, incompleta ou cancelada.
Event structure
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Properties
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo de evento deve ser response.text.done. |
| response_id | cadeia (de caracteres) | A identificação da resposta. |
| item_id | cadeia (de caracteres) | A identificação do item. |
| output_index | número inteiro | O índice do item de saída na resposta. |
| content_index | número inteiro | O índice da parte de conteúdo no array de conteúdo do item. |
| enviar SMS | cadeia (de caracteres) | O conteúdo final do texto. |
Components
Audio Formats
RealtimeAudioFormat
Formato base de áudio usado para áudio de entrada.
Allowed Values:
-
pcm16- Formato de áudio PCM de 16 bits -
g711_ulaw- Formato áudio G.711 μ-law -
g711_alaw- Formato áudio G.711 A-law
RealtimeOutputAudioFormat
Formato de áudio usado para áudio de saída com taxas de amostragem específicas.
Allowed Values:
-
pcm16- Formato de áudio PCM de 16 bits à taxa de amostragem padrão (24kHz) -
pcm16_8000hz- Formato de áudio PCM de 16 bits a uma taxa de amostragem de 8kHz -
pcm16_16000hz- Formato de áudio PCM de 16 bits a uma taxa de amostragem de 16kHz -
g711_ulaw- Formato de áudio G.711 μ-law (mu-law) a uma taxa de amostragem de 8kHz -
g711_alaw- Formato de áudio G.711 A-law com taxa de amostragem de 8kHz
RealtimeAudioInputTranscriptionSettings
Configuração para transcrição áudio de entrada.
| Field | Tipo | Description |
|---|---|---|
| modelo | cadeia (de caracteres) | O modelo de transcrição. Suportado por gpt-realtime e gpt-realtime-mini:whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.Suportado com todos os outros modelos e agentes: azure-speech, mai-transcribe-1 (pré-visualização) |
| linguagem | cadeia (de caracteres) | Código de linguagem opcional em BCP-47 (por exemplo, en-US), ou ISO-639-1 (por exemplo, en), ou multi-línguas com deteção automática (por exemplo, en,zh).Consulte Azure linguagens suportadas por voz para o uso recomendado desta configuração. |
| custom_speech | objecto | Configuração opcional para modelos de voz personalizados, válida apenas para azure-speech modelo. |
| phrase_list | string[] | Lista opcional de dicas de frases para reconhecimento de viés, válida apenas para azure-speech modelo. |
| avisar | cadeia (de caracteres) | Texto opcional para guiar a transcrição, válido apenas para whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe e gpt-4o-transcribe-diarize modelos. |
RealtimeInputAudioNoiseReductionSettings
Isto pode ser:
- Um objeto RealtimeOpenAINoiseReduction
- Um objeto RealtimeAzureDeepNoiseSuppression
RealtimeOpenAINoiseReduction
Configuração de redução de ruído OpenAI com campo de tipo explícito, disponível apenas para gpt-realtime modelos e gpt-realtime-mini
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) |
near_field ou far_field |
RealtimeAzureDeepNoiseSuppression
Configuração para redução de ruído de áudio de entrada.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure_deep_noise_suppression" |
RealtimeInputAudioEchoCancellationSettings
Configuração de cancelamento de eco para processamento de áudio do lado do servidor.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "server_echo_cancellation" |
Voice Configuration
RealtimeVoice
União de todas as configurações de voz suportadas.
Isto pode ser:
- Um objeto RealtimeOpenAIVoice
- Um objeto RealtimeAzureVoice
RealtimeOpenAIVoice
Configuração de voz OpenAI com campo de tipo explícito.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "openai" |
| name | cadeia (de caracteres) | Nome da voz OpenAI: alloy, ash, balladcoral, echo, sage, , shimmer, versemarincedar |
RealtimeAzureVoice
Base para configurações de voz do Azure. Trata-se de uma união discriminada com diferentes tipos:
RealtimeAzureStandardVoice
Configuração padrão de voz do Azure.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure-standard" |
| name | cadeia (de caracteres) | Nome da voz (não pode estar vazio) |
| temperature | number | Optional. Temperatura entre 0,0 e 1,0 |
| custom_lexicon_url | cadeia (de caracteres) | Optional. URL para o léxico personalizado |
| custom_text_normalization_url | cadeia (de caracteres) | Optional. URL para normalização de texto personalizada |
| prefer_locales | string[] | Optional. Preferred locales Locais preferidos alteram os sotaques das línguas. Se o valor não estiver definido, o TTS usa o sotaque padrão de cada língua. por exemplo, quando o TTS fala inglês, usa o sotaque inglês americano. E quando se fala espanhol, usa o sotaque espanhol mexicano. Se for definido o prefer_locales para ["en-GB", "es-ES"], o sotaque inglês é inglês britânico e o sotaque espanhol é espanhol europeu. E o TTS também é capaz de falar outras línguas como francês, chinês, etc. |
| região | cadeia (de caracteres) | Optional. Locale specification Impor a localização para a saída TTS. Se não estiver definido, o TTS usará sempre a localização indicada para falar. Por exemplo, defina a localização para en-US, o TTS usará sempre sotaque inglês americano para falar o conteúdo do texto, mesmo que o conteúdo do texto esteja noutra língua. E o TTS gera silêncio se o conteúdo do texto estiver em chinês. |
| style | cadeia (de caracteres) | Optional. Voice style |
| pitch | cadeia (de caracteres) | Optional. Pitch adjustment |
| rate | cadeia (de caracteres) | Optional. Ajuste da taxa de fala |
| volume | cadeia (de caracteres) | Optional. Volume adjustment |
RealtimeAzureCustomVoice
Configuração de voz personalizada do Azure (preferida para vozes personalizadas).
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure-custom" |
| name | cadeia (de caracteres) | Nome da voz (não pode estar vazio) |
| endpoint_id | cadeia (de caracteres) | ID do endpoint (não pode estar vazio) |
| temperature | number | Optional. Temperatura entre 0,0 e 1,0 |
| custom_lexicon_url | cadeia (de caracteres) | Optional. URL para o léxico personalizado |
| custom_text_normalization_url | cadeia (de caracteres) | Optional. URL para normalização de texto personalizada |
| prefer_locales | string[] | Optional. Preferred locales Locais preferidos alteram os sotaques das línguas. Se o valor não estiver definido, o TTS usa o sotaque padrão de cada língua. Por exemplo, quando o TTS fala inglês, usa o sotaque do inglês americano. E quando se fala espanhol, usa o sotaque espanhol mexicano. Se for definido o prefer_locales para ["en-GB", "es-ES"], o sotaque inglês é inglês britânico e o sotaque espanhol é espanhol europeu. E o TTS também é capaz de falar outras línguas como francês, chinês, etc. |
| região | cadeia (de caracteres) | Optional. Locale specification Impor a localização para a saída TTS. Se não estiver definido, o TTS usará sempre a localização indicada para falar. Por exemplo, defina a localização para en-US, o TTS usará sempre o sotaque do inglês americano para falar o conteúdo do texto, mesmo que o conteúdo do texto esteja noutra língua. E o TTS gera silêncio se o conteúdo do texto estiver em chinês. |
| style | cadeia (de caracteres) | Optional. Voice style |
| pitch | cadeia (de caracteres) | Optional. Pitch adjustment |
| rate | cadeia (de caracteres) | Optional. Ajuste da taxa de fala |
| volume | cadeia (de caracteres) | Optional. Volume adjustment |
Example:
{
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful",
"locale": "en-US"
}
RealtimeAzurePersonalVoice
Azure Personal Voice Configuration.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure-personal" |
| name | cadeia (de caracteres) | Nome da voz (não pode estar vazio) |
| temperature | number | Optional. Temperatura entre 0,0 e 1,0 |
| modelo | cadeia (de caracteres) | Modelo base subjacente: DragonLatestNeural, DragonHDOmniLatestNeural, MAI-Voice-1 |
| custom_lexicon_url | cadeia (de caracteres) | Optional. URL para o léxico personalizado |
| custom_text_normalization_url | cadeia (de caracteres) | Optional. URL para normalização de texto personalizada |
| prefer_locales | string[] | Optional. Preferred locales Os locais preferíveis mudam os sotaques das línguas. Se o valor não estiver definido, o TTS usa o sotaque padrão de cada língua. Por exemplo, quando o TTS fala inglês, usa o sotaque inglês americano. E quando se fala espanhol, usa o sotaque espanhol mexicano. Se for definido o prefer_locales para ["en-GB", "es-ES"], o sotaque inglês é inglês britânico e o sotaque espanhol é espanhol europeu. E o TTS também é capaz de falar outras línguas como francês, chinês, etc. |
| região | cadeia (de caracteres) | Optional. Locale specification Impor a localização para a saída TTS. Se não estiver definido, o TTS usará sempre a localização indicada para falar. Por exemplo, defina a localização para en-US, o TTS usará sempre o sotaque do inglês americano para falar o conteúdo do texto, mesmo que o conteúdo do texto esteja noutra língua. E o TTS gera silêncio se o conteúdo do texto estiver em chinês. |
| pitch | cadeia (de caracteres) | Optional. Pitch adjustment |
| rate | cadeia (de caracteres) | Optional. Ajuste da taxa de fala |
| volume | cadeia (de caracteres) | Optional. Volume adjustment |
Turn Detection
RealtimeTurnDetection
Configuração para deteção de curvas. Trata-se de um sindicato discriminado que suporta múltiplos tipos de VAD.
RealtimeServerVAD
Deteção de curva baseada em VAD base.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "server_vad" |
| limiar | float | Optional. Limiar de ativação (0.0-1.0) (padrão: 0.5) |
| prefix_padding_ms | número inteiro | Optional. Enchimento de áudio antes do início da fala (padrão: 300) |
| silence_duration_ms | número inteiro | Optional. Duração do silêncio para detetar o fim da fala (padrão: 500) |
| speech_duration_ms | número inteiro | Optional. Duração mínima da fala (padrão: 200) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuração de deteção de fim de enunciação |
| create_response | boolean | Optional. Ativar ou desativar se uma resposta é gerada (predefinido: verdadeiro). |
| interrupt_response | boolean | Optional. Ativar ou desativar a interrupção de entrada da barge-in (por defeito: verdadeiro). |
| auto_truncate | boolean | Optional. Auto-truncar na interrupção (por defeito: falso) |
RealtimeOpenAISemanticVAD
Configuração semântica de VAD OpenAI, que utiliza um modelo para determinar quando o utilizador terminou de falar. Disponível apenas para gpt-realtime modelos.gpt-realtime-mini
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "semantic_vad" |
| eagerness | cadeia (de caracteres) | Optional. Esta é uma forma de controlar o quão ansioso o modelo está em interromper o utilizador, ajustando o tempo máximo de espera. No modo de transcrição, mesmo que o modelo não responda, isso afeta a forma como o áudio é segmentado. São permitidos os seguintes valores: - auto (por defeito) é equivalente a medium,- low permite ao utilizador demorar o seu tempo para falar,- high Vamos cortar o áudio o mais rápido possível.Se quiser que o modelo responda mais frequentemente no modo conversa, ou que devolva eventos de transcrição mais rapidamente no modo de transcrição, pode definir o entusiasmo para high.Por outro lado, se quiser deixar o utilizador falar sem interrupções no modo de conversa, ou se quiser blocos maiores de transcrição no modo de transcrição, pode definir o entusiasmo para low. |
| create_response | boolean | Optional. Ativar ou desativar se uma resposta é gerada (predefinido: verdadeiro). |
| interrupt_response | boolean | Optional. Ativar ou desativar a interrupção de entrada da barge-in (por defeito: verdadeiro). |
RealtimeAzureSemanticVAD
Azure Semantic VAD, que determina quando o utilizador começa a falar usando um modelo semântico de fala, proporcionando uma deteção mais robusta em ambientes ruidosos.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure_semantic_vad" |
| limiar | float | Optional. Limiar de ativação (padrão: 0,5) |
| prefix_padding_ms | número inteiro | Optional. Enchimento de áudio antes da fala (padrão: 300) |
| silence_duration_ms | número inteiro | Optional. Duração do silêncio para o fim da fala (padrão: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuração de deteção EOU |
| speech_duration_ms | número inteiro | Optional. Duração mínima da fala (padrão: 80) |
| remove_filler_words | boolean | Optional. Remover palavras de enchimento (por defeito: falso) |
| languages | string[] | Optional. Supports English. Outras línguas são ignoradas (por defeito: nenhuma). |
| create_response | boolean | Optional. Ativar ou desativar se uma resposta é gerada (predefinido: verdadeiro). |
| interrupt_response | boolean | Optional. Ativar ou desativar a interrupção de entrada da barge-in (por defeito: verdadeiro). |
| auto_truncate | boolean | Optional. Auto-truncar na interrupção (por defeito: falso) |
RealtimeAzureSemanticVADMultilingual
Azure semântic VAD (variante padrão).
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "azure_semantic_vad_multilingual" |
| limiar | float | Optional. Limiar de ativação (padrão: 0,5) |
| prefix_padding_ms | número inteiro | Optional. Enchimento de áudio antes da fala (padrão: 300) |
| silence_duration_ms | número inteiro | Optional. Duração do silêncio para o fim da fala (padrão: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuração de deteção EOU |
| speech_duration_ms | número inteiro | Optional. Duração mínima da fala (padrão: 80) |
| remove_filler_words | boolean | Optional. Remover palavras de enchimento (por defeito: falso) |
| languages | string[] | Optional. Suporta inglês, espanhol, francês, italiano, alemão (DE), japonês, português, chinês, coreano e hindi. Outras línguas são ignoradas (por defeito: nenhuma). |
| create_response | boolean | Optional. Ativar ou desativar se uma resposta é gerada (predefinido: verdadeiro). |
| interrupt_response | boolean | Optional. Ativar ou desativar a interrupção de entrada da barge-in (por defeito: verdadeiro). |
| auto_truncate | boolean | Optional. Auto-truncar na interrupção (por defeito: falso) |
RealtimeEOUDetection
O Azure End-of-Sentence (EOU) podia indicar quando o utilizador final parava de falar, permitindo pausas naturais. A deteção de fim de enunciação pode reduzir significativamente os sinais de fim de viragem prematuros sem adicionar latência percetível pelo utilizador.
| Field | Tipo | Description |
|---|---|---|
| modelo | cadeia (de caracteres) | Pode apoiar semantic_detection_v1 inglês ou semantic_detection_v1_multilingual inglês, espanhol, francês, italiano, alemão (DE), japonês, português, chinês, coreano, hindi |
| threshold_level | cadeia (de caracteres) | Optional. Nível de limiar de deteção (low, medium, high e default), o valor padrão é igual medium à definição. Com uma configuração mais baixa, a probabilidade de a frase estar completa será maior. |
| timeout_ms | number | Optional. Tempo máximo em milissegundos para esperar por mais fala do utilizador. Por defeito, é 1000 ms. |
Avatar Configuration
RealtimeAvatarConfig
Configuração para streaming de avatar e comportamento.
| Field | Tipo | Description |
|---|---|---|
| ice_servers | RealtimeIceServer[] | Optional. Servidores ICE para WebRTC |
| carácter | cadeia (de caracteres) | Nome da personagem ou ID do avatar |
| style | cadeia (de caracteres) | Optional. Estilo Avatar (tom emocional, estilo de fala) |
| customized | boolean | Se o avatar é personalizado |
| vídeo | RealtimeVideoParams | Optional. Video configuration |
| scene | RealtimeAvatarScene | Optional. Configuração para o nível de zoom, posição, rotação e amplitude de movimento do avatar no quadro de vídeo |
| output_protocol | cadeia (de caracteres) | Optional. Protocolo de saída para streaming de avatares. O padrão é webrtc |
| output_audit_audio | boolean | Optional. Quando ativado, encaminha áudio de auditoria via WebSocket para fins de revisão/depuração, mesmo quando a saída do avatar é entregue via WebRTC. O padrão é false |
RealtimeIceServer
Configuração do servidor ICE para negociação de ligação WebRTC.
| Field | Tipo | Description |
|---|---|---|
| urls | string[] | URLs dos servidores ICE (endpoints TURN ou STUN) |
| nome de utilizador | cadeia (de caracteres) | Optional. Nome de utilizador para autenticação |
| credencial | cadeia (de caracteres) | Optional. Credencial para autenticação |
RealtimeVideoParams
Parâmetros de streaming de vídeo para avatar.
| Field | Tipo | Description |
|---|---|---|
| bitrate | número inteiro | Optional. Taxa de bits em bits por segundo (padrão: 2000000) |
| codec | cadeia (de caracteres) | Optional. Codec de vídeo, apenas h264 atualmente (predefinido: h264) |
| Rec. | RealtimeVideoCrop | Optional. Cropping settings |
| resolução | RealtimeVideoResolution | Optional. Resolution settings |
RealtimeVideoCrop
Definição de retângulo de corte em vídeo.
| Field | Tipo | Description |
|---|---|---|
| top_left | integer[] | Canto superior esquerdo [x, y], inteiros não negativos |
| bottom_right | integer[] | Canto inferior direito [x, y], inteiros não negativos |
RealtimeVideoResolution
Especificação de resolução de vídeo.
| Field | Tipo | Description |
|---|---|---|
| width | número inteiro | Largura em píxeis (deve ser > 0) |
| height | número inteiro | Altura em píxeis (deve ser > 0) |
RealtimeAvatarScene
Configuração para o nível de zoom, posição, rotação e amplitude de movimento do avatar no quadro de vídeo.
| Field | Tipo | Description |
|---|---|---|
| ampliação | number | Optional. Nível de zoom do avatar. O alcance é (0, +∞). Valores inferiores a 1 zoom out, valores superiores a 1 zoom in. O padrão é 0 |
| position_x | number | Optional. Posição horizontal do avatar. O alcance é [-1, 1], como proporção da largura do frame. Os valores negativos movem-se para a esquerda, os valores positivos para a direita. O padrão é 0 |
| position_y | number | Optional. Posição vertical do avatar. O alcance é [-1, 1], como proporção da altura do quadro. Valores negativos sobem, valores positivos descem. O padrão é 0 |
| rotation_x | number | Optional. Rotação em torno do eixo X (afinação). O alcance é [-π, π] em radianos. Valores negativos rodam para cima, valores positivos rodam para baixo. O padrão é 0 |
| rotation_y | number | Optional. Rotação em torno do eixo Y (guinada). O alcance é [-π, π] em radianos. Valores negativos rodam para a esquerda, valores positivos rodam para a direita. O padrão é 0 |
| rotation_z | number | Optional. Rotação em torno do eixo Z (rolamento). O alcance é [-π, π] em radianos. Os valores negativos rodam no sentido anti-horário, os valores positivos rodam no sentido dos ponteiros do relógio. O padrão é 0 |
| amplitude | number | Optional. Amplitude do movimento do avatar. O alcance é (0, 1]. Valores em (0, 1) significam amplitude reduzida, 1 significa amplitude total. O padrão é 0 |
Animation Configuration
RealtimeAnimation
Configuração para saídas de animação incluindo blendshapes e visemas.
| Field | Tipo | Description |
|---|---|---|
| model_name | cadeia (de caracteres) | Optional. Nome do modelo de animação (por defeito: "default") |
| outputs | RealtimeAnimationOutputType[] | Optional. Tipos de saída (por defeito: ["blendshapes"]) |
RealtimeAnimationOutputType
Tipos de dados de animação a produzir.
Allowed Values:
-
blendshapes- Dados de blendshapes faciais -
viseme_id- Dados do identificador Viseme
Session Configuration
RealtimeRequestSession
Objeto de configuração de sessão usado em session.update eventos.
| Field | Tipo | Description |
|---|---|---|
| modelo | cadeia (de caracteres) | Optional. Nome do modelo a usar |
| modalities | RealtimeModality[] | Optional. As modalidades de saída suportadas para a sessão. Por exemplo, "modalidades": ["texto", "áudio"] é a configuração padrão que permite tanto as modalidades de saída de texto como de áudio. Para permitir apenas a saída de texto, defina "modalidades": ["texto"]. Para permitir a saída do avatar, defina "modalidades": ["texto", "áudio", "avatar"]. Não podes ativar apenas o áudio. |
| animação | RealtimeAnimation | Optional. Animation configuration |
| voice | RealtimeVoice | Optional. Voice configuration |
| instructions | cadeia (de caracteres) | Optional. Instruções do sistema para o modelo. As instruções podem orientar o áudio de saída se forem usadas vozes OpenAI, mas podem não se aplicar às vozes do Azure. |
| input_audio_sampling_rate | número inteiro | Optional. Taxa de amostragem de áudio de entrada em Hz (padrão: 24000 para pcm16, 8000 para g711_ulaw e g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Optional. Formato de áudio de entrada (predefinido: pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Formato de áudio de saída (por defeito: pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Configuração para redução de ruído de áudio de entrada. Isto pode ser definido como nulo para desligar. A redução de ruído filtra o áudio adicionado ao buffer de áudio de entrada antes de ser enviado para o VAD e para o modelo. Filtrar o áudio pode melhorar a precisão do VAD e da deteção de curvas (reduzindo falsos positivos) e o desempenho do modelo ao melhorar a perceção do áudio de entrada. Esta propriedade é anulável. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Configuração para cancelamento de eco de áudio de entrada. Isto pode ser definido como nulo para desligar. Este cancelamento do eco do lado do serviço pode ajudar a melhorar a qualidade do áudio de entrada ao reduzir o impacto do eco e da reverberação. Esta propriedade é anulável. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | A configuração para transcrição áudio de entrada. A configuração é nula (desligada) por defeito. A transcrição de áudio de entrada não é nativa do modelo, pois o modelo consome áudio diretamente. A transcrição corre assíncrona pelo /audio/transcriptions endpoint e deve ser tratada como orientação do conteúdo áudio de entrada, em vez do que exatamente o modelo ouviu. Para orientação adicional ao serviço de transcrição, o cliente pode opcionalmente definir a língua e o prompt para transcrição.Esta propriedade é anulável. |
| turn_detection | RealtimeTurnDetection | As definições de deteção de turno para a sessão. Isto pode ser definido como nulo para desligar. |
| tools | array do RealtimeTool | As ferramentas disponíveis para o modelo para a sessão. |
| tool_choice | RealtimeToolChoice | A escolha da ferramenta para a sessão. Valores permitidos: auto, none, e required. Caso contrário, pode especificar o nome da função a usar. |
| temperature | number | A temperatura de amostragem para o modelo. Os valores permitidos de temperatura estão limitados a [0,6, 1,2]. Por defeito é 0,8. |
| max_response_output_tokens | inteiro ou "inf" | O número máximo de tokens de saída por resposta do assistente, incluindo chamadas de ferramenta. Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor para "inf" para permitir o número máximo de tokens. Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf".Por defeito, é "inf". |
| reasoning_effort | ReasoningEffort | Optional. Limita o esforço de raciocínio para modelos de raciocínio. Consulte Azure Foundry doc para mais detalhes. Reduzir o esforço de raciocínio pode resultar em respostas mais rápidas e menos tokens usados no raciocínio numa resposta. |
| avatar | RealtimeAvatarConfig | Optional. Avatar configuration |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Optional. Tipos de carimbo temporal para áudio de saída |
RealtimeModality
Suportava modalidades de saída de sessão.
Allowed Values:
-
text- Saída de texto -
audio- Saída de áudio -
animation- Produção de animação -
avatar- Saída de vídeo Avatar
RealtimeAudioTimestampType
Tipos de carimbo temporal de saída suportados em conteúdos de resposta áudio.
Allowed Values:
-
word- Timestamps por palavra no áudio de saída
ReasoningEffort
Limita o esforço de raciocínio para modelos de raciocínio. Verifique a documentação dos modelos para valores suportados para cada modelo. Reduzir o esforço de raciocínio pode resultar em respostas mais rápidas e menos tokens usados no raciocínio numa resposta.
Allowed Values:
-
none- Sem esforço de raciocínio -
minimal- Esforço mínimo de raciocínio -
low- Baixo esforço de raciocínio - respostas mais rápidas com menos raciocínio -
medium- Esforço médio de raciocínio - equilibrado entre velocidade e profundidade de raciocínio -
high- Esforço de raciocínio elevado - raciocínio mais aprofundado, pode demorar mais tempo -
xhigh- Esforço de raciocínio extra elevado - profundidade máxima de raciocínio
Tool Configuration
Suportamos dois tipos de ferramentas: chamada de funções e ferramentas MCP, que permitem ligar a um servidor mcp.
RealtimeTool
Definição de ferramenta para chamada de funções.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "function" |
| name | cadeia (de caracteres) | Function name |
| description | cadeia (de caracteres) | Descrição da função e diretrizes de utilização |
| parameters | objecto | Parâmetros de função como objeto de esquema JSON |
RealtimeToolChoice
Estratégia de seleção de ferramentas.
Isto pode ser:
-
"auto"- Deixe o modelo escolher -
"none"- Não uses ferramentas -
"required"- Deve usar uma ferramenta -
{ "type": "function", "name": "function_name" }- Utilizar funções específicas
MCPTool
Configuração da ferramenta MCP.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "mcp" |
| server_label | cadeia (de caracteres) | Required. O rótulo do servidor MCP. |
| server_url | cadeia (de caracteres) | Required. A URL do servidor MCP. |
| allowed_tools | string[] | Optional. A lista de nomes de ferramentas permitidos. Se não for especificado, todas as ferramentas são permitidas. |
| headers | objecto | Optional. Cabeçalhos adicionais para incluir nos pedidos MCP. |
| autorização | cadeia (de caracteres) | Optional. Token de autorização para pedidos MCP. |
| require_approval | String ou dicionário | Optional. Se definido como uma cadeia, o valor deve ser never ou always. Se definido para um dicionário, deve estar no formato {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}. O valor padrão é always. Quando definida para always, a execução da ferramenta requer aprovação, mcp_approval_request será enviada ao cliente quando o argumento mcp estiver concluído, e só será executada quando mcp_approval_response com approve=true for recebida. Quando definida para never, a ferramenta será executada automaticamente sem aprovação. |
RealtimeConversationResponseItem
Este é um tipo de união que pode ser um dos seguintes:
RealtimeConversationUserMessageItem
Item de mensagem do utilizador.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "message" |
| objecto | cadeia (de caracteres) | Deve ser "conversation.item" |
| função | cadeia (de caracteres) | Deve ser "user" |
| conteúdo | RealtimeInputTextContentPart | O conteúdo da mensagem. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeConversationAssistantMessageItem
Item da mensagem do assistente.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "message" |
| objecto | cadeia (de caracteres) | Deve ser "conversation.item" |
| função | cadeia (de caracteres) | Deve ser "assistant" |
| conteúdo | RealtimeOutputTextContentPart[] ou RealtimeAudioContentPart[] | O conteúdo da mensagem. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeConversationSystemMessageItem
Item da mensagem do sistema.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "message" |
| objecto | cadeia (de caracteres) | Deve ser "conversation.item" |
| função | cadeia (de caracteres) | Deve ser "system" |
| conteúdo | RealtimeInputTextContentPart[] | O conteúdo da mensagem. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeConversationFunctionCallItem
Item de pedido de chamada de função.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "function_call" |
| objecto | cadeia (de caracteres) | Deve ser "conversation.item" |
| name | cadeia (de caracteres) | O nome da função a chamar. |
| arguments | cadeia (de caracteres) | Os argumentos para a função chamam como uma cadeia JSON. |
| call_id | cadeia (de caracteres) | O ID único da chamada de função. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeConversationFunctionCallOutputItem
Item de resposta de chamada funcional.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "function_call_output" |
| objecto | cadeia (de caracteres) | Deve ser "conversation.item" |
| name | cadeia (de caracteres) | O nome da função que foi chamada. |
| output | cadeia (de caracteres) | A saída da chamada de função. |
| call_id | cadeia (de caracteres) | O ID único da chamada de função. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeConversationMCPListToolsItem
Lista de ferramentas MCP item de resposta.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "mcp_list_tools" |
| server_label | cadeia (de caracteres) | O rótulo do servidor MCP. |
RealtimeConversationMCPCallItem
Item de resposta de chamada MCP.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "mcp_call" |
| server_label | cadeia (de caracteres) | O rótulo do servidor MCP. |
| name | cadeia (de caracteres) | O nome da ferramenta a chamar. |
| approval_request_id | cadeia (de caracteres) | O ID do pedido de aprovação para a chamada MCP. |
| arguments | cadeia (de caracteres) | Os argumentos a favor da chamada MCP. |
| output | cadeia (de caracteres) | A saída da chamada MCP. |
| erro | objecto | O erro detalha se a chamada MCP falhou. |
RealtimeConversationMCPApprovalRequestItem
Item do pedido de aprovação do MCP.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | O ID único do item. |
| tipo | cadeia (de caracteres) | Deve ser "mcp_approval_request" |
| server_label | cadeia (de caracteres) | O rótulo do servidor MCP. |
| name | cadeia (de caracteres) | O nome da ferramenta a chamar. |
| arguments | cadeia (de caracteres) | Os argumentos a favor da chamada MCP. |
RealtimeItemStatus
Estado dos pontos de conversa.
Allowed Values:
-
in_progress- Atualmente em processo -
completed- Concluído com sucesso -
incomplete- Incompleto (interrompido ou falhado)
RealtimeContentPart
Parte de conteúdo dentro de uma mensagem.
RealtimeInputTextContentPart
Parte do conteúdo textual.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "input_text" |
| enviar SMS | cadeia (de caracteres) | O conteúdo do texto |
RealtimeOutputTextContentPart
Parte do conteúdo textual.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "text" |
| enviar SMS | cadeia (de caracteres) | O conteúdo do texto |
RealtimeInputAudioContentPart
Parte do conteúdo áudio.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "input_audio" |
| audio | cadeia (de caracteres) | Optional. Dados de áudio codificados em Base64 |
| transcrição | cadeia (de caracteres) | Optional. Audio transcript |
RealtimeOutputAudioContentPart
Parte do conteúdo áudio.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Deve ser "audio" |
| audio | cadeia (de caracteres) | Dados de áudio codificados em Base64 |
| transcrição | cadeia (de caracteres) | Optional. Audio transcript |
Response Objects
RealtimeResponse
Objeto de resposta que representa uma resposta de inferência de modelo.
| Field | Tipo | Description |
|---|---|---|
| id | cadeia (de caracteres) | Optional. Response ID |
| objecto | cadeia (de caracteres) | Optional. Sempre "realtime.response" |
| estado | RealtimeResponseStatus | Optional. Response status |
| status_details | RealtimeResponseStatusDetails | Optional. Status details |
| output | RealtimeConversationResponseItem[] | Optional. Output items |
| utilização | RealtimeUsage | Optional. Estatísticas de utilização de tokens |
| conversation_id | cadeia (de caracteres) | Optional. ID de conversa associado |
| voice | RealtimeVoice | Optional. Voz usada para resposta |
| modalities | string[] | Optional. Modalidades de saída utilizadas |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Formato de áudio utilizado |
| temperature | number | Optional. Temperature used |
| max_response_output_tokens | inteiro ou "inf" | Optional. Tokens máximos usados |
RealtimeResponseStatus
Valores de estado de resposta.
Allowed Values:
-
in_progress- A resposta está a ser gerada -
completed- Resposta concluída com sucesso -
canceled- A resposta foi cancelada -
incomplete- Resposta incompleta (interrompida) -
failed- Resposta falhada com erro
RealtimeUsage
Estatísticas de utilização de tokens.
| Field | Tipo | Description |
|---|---|---|
| total_tokens | número inteiro | Total de tokens utilizados |
| input_tokens | número inteiro | Tokens de entrada usados |
| output_tokens | número inteiro | Tokens de saída gerados |
| input_token_details | TokenDetails | Divisão dos tokens de entrada |
| output_token_details | TokenDetails | Distribuição dos tokens de saída |
TokenDetails
Análise detalhada do uso do token.
| Field | Tipo | Description |
|---|---|---|
| cached_tokens | número inteiro | Optional. Tokens em cache usados |
| text_tokens | número inteiro | Optional. Tokens de texto usados |
| audio_tokens | número inteiro | Optional. Tokens de áudio usados |
Error Handling
RealtimeErrorDetails
Objeto de informação de erro.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | Tipo de erro (por exemplo, "invalid_request_error", "server_error") |
| código | cadeia (de caracteres) | Optional. Código de erro específico |
| mensagem | cadeia (de caracteres) | Descrição do erro legível por humanos |
| param | cadeia (de caracteres) | Optional. Parâmetro relacionado com o erro |
| event_id | cadeia (de caracteres) | Optional. ID do evento cliente que causou o erro |
RealtimeConversationRequestItem
Usas o RealtimeConversationRequestItem objeto para criar um novo item na conversa através do evento conversation.item.create .
Este é um tipo de união que pode ser um dos seguintes:
RealtimeSystemMessageItem
Um item de mensagem do sistema.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: message |
| função | cadeia (de caracteres) | O papel da mensagem. Valores permitidos: system |
| conteúdo | array do RealtimeInputTextContentPart | O conteúdo da mensagem. |
| id | cadeia (de caracteres) | O ID único do item. O cliente pode especificar o ID para ajudar a gerir o contexto do lado do servidor. Se o cliente não fornecer um ID, o servidor gera um. |
RealtimeUserMessageItem
Um item de mensagem do utilizador.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: message |
| função | cadeia (de caracteres) | O papel da mensagem. Valores permitidos: user |
| conteúdo | array de RealtimeInputTextContentPart ou RealtimeInputAudioContentPart | O conteúdo da mensagem. |
| id | cadeia (de caracteres) | O ID único do item. O cliente pode especificar o ID para ajudar a gerir o contexto do lado do servidor. Se o cliente não fornecer um ID, o servidor gera um. |
RealtimeAssistantMessageItem
Um item de mensagem de assistente.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: message |
| função | cadeia (de caracteres) | O papel da mensagem. Valores permitidos: assistant |
| conteúdo | array do RealtimeOutputTextContentPart | O conteúdo da mensagem. |
RealtimeFunctionCallItem
Um item de chamada de função.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: function_call |
| name | cadeia (de caracteres) | O nome da função a chamar. |
| arguments | cadeia (de caracteres) | Os argumentos da função chamam como uma cadeia JSON. |
| call_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| id | cadeia (de caracteres) | O ID único do item. O cliente pode especificar o ID para ajudar a gerir o contexto do lado do servidor. Se o cliente não fornecer um ID, o servidor gera um. |
RealtimeFunctionCallOutputItem
Uma função chama item de saída.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: function_call_output |
| call_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| output | cadeia (de caracteres) | A saída da chamada de função, que é uma cadeia de forma livre com o resultado da função, também pode ser vazia. |
| id | cadeia (de caracteres) | O ID único do item. Se o cliente não fornecer um ID, o servidor gera um. |
RealtimeMCPApprovalResponseItem
Um item de resposta de aprovação do MCP.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: mcp_approval_response |
| approve | boolean | Se o pedido do MCP é aprovado. |
| approval_request_id | cadeia (de caracteres) | O ID do pedido de aprovação do MCP. |
| id | cadeia (de caracteres) | O ID único do item. O cliente pode especificar o ID para ajudar a gerir o contexto do lado do servidor. Se o cliente não fornecer um ID, o servidor gera um. |
RealtimeFunctionTool
A definição de uma ferramenta de função utilizada pelo endpoint em tempo real.
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo da ferramenta. Valores permitidos: function |
| name | cadeia (de caracteres) | O nome da função. |
| description | cadeia (de caracteres) | A descrição da função, incluindo as diretrizes de uso. Por exemplo, "Use esta função para obter o tempo atual." |
| parameters | objecto | Os parâmetros da função na forma de um objeto JSON. |
RealtimeItemStatus
Allowed Values:
in_progresscompletedincomplete
RealtimeResponseAudioContentPart
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | A parte do tipo de conteúdo. Valores permitidos: audio |
| transcrição | cadeia (de caracteres) | A transcrição do áudio. Esta propriedade é anulável. |
RealtimeResponseFunctionCallItem
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: function_call |
| name | cadeia (de caracteres) | O nome da função chamada item. |
| call_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| arguments | cadeia (de caracteres) | Os argumentos da função chamam item. |
| estado | RealtimeItemStatus | O estado do item. |
RealtimeResponseFunctionCallOutputItem
| Field | Tipo | Description |
|---|---|---|
| tipo | cadeia (de caracteres) | O tipo do artigo. Valores permitidos: function_call_output |
| call_id | cadeia (de caracteres) | O ID do item da chamada de função. |
| output | cadeia (de caracteres) | A saída da função chama item. |
RealtimeResponseOptions
| Field | Tipo | Description |
|---|---|---|
| modalities | matriz | As modalidades de saída para a resposta. Valores permitidos: text, audioPor exemplo, "modalities": ["text", "audio"] é a definição padrão que permite tanto as modalidades de saída de texto como de áudio. Para ativar apenas a saída de texto, defina "modalities": ["text"]. Não podes ativar apenas o áudio. |
| instructions | cadeia (de caracteres) | As instruções (a mensagem do sistema) para orientar as respostas do modelo. |
| voice | RealtimeVoice | A voz usada para a resposta do modelo durante a sessão. Uma vez que a voz é usada na sessão para a resposta áudio do modelo, não pode ser alterada. |
| tools | array do RealtimeTool | As ferramentas disponíveis para o modelo para a sessão. |
| tool_choice | RealtimeToolChoice | A escolha da ferramenta para a sessão. |
| temperature | number | A temperatura de amostragem para o modelo. Os valores permitidos de temperatura estão limitados a [0,6, 1,2]. Por defeito é 0,8. |
| max_response_output_tokens | inteiro ou "inf" | O número máximo de tokens de saída por resposta do assistente, incluindo chamadas de ferramenta. Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor para "inf" para permitir o número máximo de tokens. Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf".Por defeito, é "inf". |
| reasoning_effort | ReasoningEffort | Optional. Limita o esforço de raciocínio para modelos de raciocínio. Verifique a documentação dos modelos para valores suportados para cada modelo. Reduzir o esforço de raciocínio pode resultar em respostas mais rápidas e menos tokens usados no raciocínio numa resposta. |
| conversa | cadeia (de caracteres) | Controla a que conversa a resposta é adicionada. Os valores suportados são auto e none.O auto valor (ou não definir esta propriedade) garante que o conteúdo da resposta é adicionado à conversa padrão da sessão.Defina esta propriedade para none criar uma resposta fora de banda onde os itens não serão adicionados à conversa padrão. Valores padrão para "auto" |
| metadados | mapa | Conjunto de até 16 pares-chave-valor que podem ser anexados a um objeto. Isto pode ser útil para armazenar informação adicional sobre o objeto num formato estruturado. As chaves podem ter um máximo de 64 caracteres e os valores podem ter no máximo 512 caracteres. Por exemplo: metadata: { topic: "classification" } |
RealtimeResponseSession
O RealtimeResponseSession objeto representa uma sessão na API de Tempo Real. É usado em alguns dos eventos do servidor, tais como:
| Field | Tipo | Description |
|---|---|---|
| objecto | cadeia (de caracteres) | O objeto da sessão. Valores permitidos: realtime.session |
| id | cadeia (de caracteres) | O ID único da sessão. |
| modelo | cadeia (de caracteres) | O modelo usado para a sessão. |
| modalities | matriz | As modalidades de saída para a sessão. Valores permitidos: text, audioPor exemplo, "modalities": ["text", "audio"] é a definição padrão que permite tanto as modalidades de saída de texto como de áudio. Para ativar apenas a saída de texto, defina "modalities": ["text"]. Não podes ativar apenas o áudio. |
| instructions | cadeia (de caracteres) | As instruções (a mensagem do sistema) para orientar as respostas de texto e áudio do modelo. Aqui estão algumas instruções de exemplo para ajudar a orientar o conteúdo e o formato das respostas de texto e áudio: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Aqui estão algumas instruções de exemplo para ajudar a orientar o comportamento do áudio: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Embora o modelo nem sempre siga estas instruções, elas fornecem orientações sobre o comportamento desejado. |
| voice | RealtimeVoice | A voz usada para a resposta do modelo durante a sessão. Uma vez que a voz é usada na sessão para a resposta áudio do modelo, não pode ser alterada. |
| input_audio_sampling_rate | número inteiro | A taxa de amostragem do áudio de entrada. |
| input_audio_format | RealtimeAudioFormat | O formato do áudio de entrada. |
| output_audio_format | RealtimeAudioFormat | O formato do áudio de saída. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | As definições para transcrição de entrada de áudio. Esta propriedade é anulável. |
| turn_detection | RealtimeTurnDetection | As definições de deteção de turno para a sessão. Esta propriedade é anulável. |
| tools | array do RealtimeTool | As ferramentas disponíveis para o modelo para a sessão. |
| tool_choice | RealtimeToolChoice | A escolha da ferramenta para a sessão. |
| temperature | number | A temperatura de amostragem para o modelo. Os valores permitidos de temperatura estão limitados a [0,6, 1,2]. Por defeito é 0,8. |
| max_response_output_tokens | inteiro ou "inf" | O número máximo de tokens de saída por resposta do assistente, incluindo chamadas de ferramenta. Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor para "inf" para permitir o número máximo de tokens. Por exemplo, para limitar os tokens de saída a 1000, defina "max_response_output_tokens": 1000. Para permitir o número máximo de tokens, defina "max_response_output_tokens": "inf". |
RealtimeResponseStatusDetails
| Field | Tipo | Description |
|---|---|---|
| tipo | RealtimeResponseStatus | O estado da resposta. |
RealtimeRateLimitsItem
| Field | Tipo | Description |
|---|---|---|
| name | cadeia (de caracteres) | O nome da propriedade com limite de taxa sobre o qual este item inclui informação. |
| limit | número inteiro | O limite máximo configurado para esta propriedade de limite de taxa. |
| remaining | número inteiro | A quota restante disponível contra o limite configurado para esta propriedade de limite de taxa. |
| reset_seconds | number | O tempo restante, em segundos, até que esta propriedade de limite de taxa seja reiniciada. |
Related Resources
- Experimente o quickstart do Voice Live
- Experimente o início rápido dos agentes do Voice Live
- Saiba mais sobre como usar a API Voice Live