Compartilhar via


Eventos de áudio - referência

Eventos em tempo real são usados para se comunicar entre o cliente e o servidor em aplicativos de áudio em tempo real. Os eventos são enviados como objetos JSON em vários pontos de extremidade, como WebSockets ou WebRTC. Os eventos são usados para gerenciar a conversa, os buffers de áudio e as respostas em tempo real.

Você pode usar eventos de servidor e cliente de áudio com estas APIs:

A menos que especificado de outra forma, os eventos descritos neste documento são aplicáveis a ambas as APIs.

Eventos do cliente

Há nove eventos de cliente que podem ser enviados do cliente para o servidor:

Acontecimento Descrição
RealtimeClientEventConversationItemCreate O evento conversation.item.create do cliente é usado para adicionar um novo item ao contexto da conversa, incluindo mensagens, chamadas de função e respostas às chamadas de função.
RealtimeClientEventConversationItemDelete O evento conversation.item.delete do cliente é usado para remover um item do histórico de conversas.
RealtimeClientEventConversationItemRetrieve O evento cliente conversation.item.retrieve é usado para recuperar um item do histórico de conversas.
RealtimeClientEventConversationItemTruncate O evento conversation.item.truncate do cliente é usado para truncar o áudio de uma mensagem anterior do assistente.
RealtimeClientEventInputAudioBufferAppend O evento input_audio_buffer.append do cliente é usado para anexar bytes de áudio ao buffer de áudio de entrada.
RealtimeClientEventInputAudioBufferClear O evento input_audio_buffer.clear do cliente é usado para limpar os bytes de áudio no buffer.
RealtimeClientEventInputAudioBufferCommit O evento cliente input_audio_buffer.commit é usado para confirmar o buffer de áudio de entrada do usuário.
RealtimeClientEventOutputAudioBufferClear O evento cliente output_audio_buffer.clear é usado para limpar os bytes de áudio no buffer de saída.

Esse evento só é aplicável ao WebRTC.
RealtimeClientEventResponseCancel O evento response.cancel de cliente é usado para cancelar uma resposta em andamento.
RealtimeClientEventResponseCreate O evento response.create do cliente é usado para instruir o servidor a criar uma resposta por meio de inferência de modelo.
RealtimeClientEventSessionUpdate O evento session.update de cliente é usado para atualizar a configuração padrão da sessão.

RealtimeClientEventConversationItemCreate

O evento conversation.item.create do cliente é usado para adicionar um novo item ao contexto da conversa, incluindo mensagens, chamadas de função e respostas às chamadas de função. Esse evento pode ser usado para preencher um histórico da conversa e adicionar novos itens no meio do caminho. Atualmente, esse evento não pode preencher mensagens de áudio do assistente.

Se for bem-sucedido, o servidor responde com um evento conversation.item.created, caso contrário, um evento error é enviado.

Estrutura do evento

{
  "type": "conversation.item.create",
  "previous_item_id": "<previous_item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.create.
id_do_item_anterior cadeia O ID do item anterior após o qual o novo item é inserido. Se não for definido, o novo item será anexado ao final da conversa. Se definido, permite que um item seja inserido no meio da conversa. Se o ID não puder ser encontrado, um erro será retornado e o item não será adicionado.
item Item de Solicitação de Conversa em Tempo Real O item a ser adicionado à conversa.

RealtimeClientEventConversationItemDelete

O evento conversation.item.delete do cliente é usado para remover um item do histórico de conversas.

O servidor responde com um evento conversation.item.deleted, a menos que o item não exista no histórico de conversas, caso em que o servidor responde com um erro.

Estrutura do evento

{
  "type": "conversation.item.delete",
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.delete.
identificador_de_item cadeia O ID do item a ser excluído.

RealtimeClientEventConversationItemRetrieve

O evento cliente conversation.item.retrieve é usado para recuperar a representação do servidor de um item específico no histórico da conversa. Esse evento é útil, por exemplo, para inspecionar o áudio do usuário após o cancelamento de ruído e o VAD.

Se o evento do cliente for bem-sucedido, o servidor responderá com um evento conversation.item.retrieved. Se o item não existir no histórico de conversas, o servidor responderá com um erro.

Estrutura do evento

{
  "type": "conversation.item.retrieve",
  "item_id": "<item_id>",
  "event_id": "<event_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.retrieve.
identificador_de_item cadeia O ID do item a ser obtido.
event_id cadeia A ID do evento.

RealtimeClientEventConversationItemTruncate

O evento conversation.item.truncate do cliente é usado para truncar o áudio de uma mensagem anterior do assistente. O servidor produz áudio mais rápido do que em tempo real, então esse evento é útil quando o usuário interrompe para truncar o áudio que foi enviado ao cliente, mas ainda não foi reproduzido. A compreensão do áudio pelo servidor com a reprodução do cliente é sincronizada.

Truncar o áudio exclui a transcrição do texto do lado do servidor para garantir que não haja texto no contexto que o usuário não conheça.

Se o evento do cliente for bem-sucedido, o servidor responderá com um evento conversation.item.truncated.

Estrutura do evento

{
  "type": "conversation.item.truncate",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.truncate.
identificador_de_item cadeia O ID do item de mensagem do assistente a ser truncado. Somente itens de mensagens do assistente podem ser truncados.
índice_de_conteúdo inteiro O índice da parte do conteúdo a ser truncada. Defina essa propriedade como "0".
audio_end_ms inteiro Duração inclusiva até a qual o áudio é truncado, em milissegundos. Se audio_end_ms for maior que a duração real do áudio, o servidor responderá com um erro.

RealtimeClientEventInputAudioBufferAppend

O evento input_audio_buffer.append do cliente é usado para anexar bytes de áudio ao buffer de áudio de entrada. O buffer de áudio é um armazenamento temporário no qual você pode gravar e depois confirmar.

No modo VAD (Voice Activity Detection) do servidor, o buffer de áudio é usado para detectar a fala e o servidor decide quando confirmar. Quando o VAD do servidor é desabilitado, o cliente pode escolher quanto áudio colocar em cada evento até um máximo de 15 MiB. Por exemplo, transmitir partes menores 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.

Estrutura do evento

{
  "type": "input_audio_buffer.append",
  "audio": "<audio>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.append.
áudio cadeia Bytes de áudio codificados em Base64. Esse valor deve estar no formato especificado pelo campo input_audio_format na configuração da sessão.

RealtimeClientEventInputAudioBufferClear

O evento input_audio_buffer.clear do cliente é usado para limpar os bytes de áudio no buffer.

O servidor responde com um evento input_audio_buffer.cleared.

Estrutura do evento

{
  "type": "input_audio_buffer.clear"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

O evento input_audio_buffer.commit do cliente é usado para confirmar o buffer de áudio da entrada do usuário, o que cria um novo item de mensagem do usuário na conversa. O áudio será transcrito se input_audio_transcription estiver configurado para a sessão.

Quando estiver no modo VAD do servidor, o cliente não precisa enviar esse evento, o servidor confirma o buffer de áudio automaticamente. Sem o VAD do servidor, o cliente deve confirmar o buffer do áudio para criar um item de mensagem do usuário. Esse evento de cliente produz um erro se o buffer do áudio de entrada estiver vazio.

A confirmação do buffer de áudio de entrada não cria uma resposta do modelo.

O servidor responde com um evento input_audio_buffer.committed.

Estrutura do evento

{
  "type": "input_audio_buffer.commit"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.commit.

RealtimeClientEventOutputAudioBufferClear

O evento output_audio_buffer.clear do cliente é usado para limpar os bytes de áudio no buffer.

Observação

Esse evento só é aplicável ao WebRTC.

Esse evento deve ser precedido por um response.cancel evento cliente para interromper a geração da resposta atual.

O servidor para de gerar áudio e responde com um output_audio_buffer.cleared evento.

Estrutura do evento

{
  "type": "output_audio_buffer.clear"
}

Propriedades

Campo Tipo Descrição
event_id cadeia A ID do evento que causou o erro.
tipo cadeia O tipo de evento deve ser output_audio_buffer.clear.

RealtimeClientEventResponseCancel

O evento response.cancel de cliente é usado para cancelar uma resposta em andamento.

O servidor responde com um evento response.cancelled ou um erro se não houver resposta para cancelar.

Estrutura do evento

{
  "type": "response.cancel"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.cancel.

RealtimeClientEventResponseCreate

O evento response.create do cliente é usado para instruir o servidor a criar uma resposta por meio de inferência de modelo. Quando a sessão é configurada no modo VAD do servidor, o servidor cria respostas automaticamente.

Uma resposta inclui pelo menos um item e pode ter dois, caso em que o segundo é uma chamada de função. Esses itens são anexados ao histórico de conversas.

O servidor responde com um evento response.created, um ou mais itens e eventos de conteúdo (como conversation.item.created e response.content_part.added), e, por fim, um evento response.done para indicar que a resposta foi concluída.

Observação

O evento response.create do cliente inclui configuração de inferência como instructions e temperature. Esses campos substituem a configuração da sessão somente para essa resposta.

Estrutura do evento

{
  "type": "response.create"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.create.
response RealtimeResponseOptions As opções de resposta.

EventoDeAtualizaçãoDeSessãoDoClienteEmTempoReal

O evento session.update de cliente é usado para atualizar a configuração padrão da sessão. O cliente pode enviar esse evento a qualquer momento para atualizar a configuração da sessão, e qualquer campo pode ser atualizado a qualquer momento, exceto voz.

Somente os campos presentes são atualizados. Para limpar um campo (como instructions), passe uma cadeia de caracteres vazia.

O servidor responde com um evento session.updated que contem a configuração efetiva completa.

Estrutura do evento

{
  "type": "session.update"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser session.update.
sessão RealtimeRequestSession A configuração da sessão.

Eventos do servidor

Há 28 eventos de servidor que podem ser recebidos do servidor:

Acontecimento Descrição
RealtimeServerEventConversationCreated O evento conversation.created do servidor é retornado logo após a criação da sessão. Uma conversa é criada por sessão.
RealtimeServerEventConversationItemCreated O evento conversation.item.created do servidor é retornado quando um item de conversa é criado.
RealtimeServerEventConversationItemRetrieved O evento do servidor conversation.item.retrieved é retornado quando um item de conversa é recuperado.
RealtimeServerEventConversationItemDeleted O evento conversation.item.deleted do servidor é retornado quando o cliente exclui um item na conversa com um evento conversation.item.delete.
Transcrição de Áudio de Entrada de Item de Conversa de Evento do Servidor em Tempo Real Concluída O evento conversation.item.input_audio_transcription.completed do servidor é o resultado da transcrição de áudio da fala gravada no buffer de áudio.
Falha na Transcrição de Áudio de Entrada do Item de Conversa do Evento do Servidor em Tempo Real O evento conversation.item.input_audio_transcription.failed do servidor é retornado quando a transcrição de áudio de entrada é configurada e uma solicitação de transcrição para uma mensagem do usuário falhou.
RealtimeServerEventConversationItemTruncated O evento conversation.item.truncated do servidor é retornado quando o cliente trunca um item de mensagem de áudio do assistente anterior com um evento conversation.item.truncate.
RealtimeServerEventError O evento error do servidor é retornado quando ocorre um erro, que pode ser um problema do cliente ou do servidor.
RealtimeServerEventInputAudioBufferCleared O evento input_audio_buffer.cleared do servidor é retornado quando o cliente limpa o buffer de áudio de entrada com um evento input_audio_buffer.clear.
RealtimeServerEventInputAudioBufferCommitted O evento input_audio_buffer.committed do servidor é retornado quando um buffer de áudio de entrada é confirmado, pelo cliente ou automaticamente no modo VAD do servidor.
RealtimeServerEventInputAudioBufferSpeechStarted O evento input_audio_buffer.speech_started do servidor é retornado no modo server_vad quando uma fala é detectada no buffer de áudio.
RealtimeServerEventInputAudioBufferSpeechStopped O evento input_audio_buffer.speech_stopped do servidor é retornado no modo server_vad quando o servidor detecta o fim da fala no buffer de áudio.
RealtimeServerEventOutputAudioBufferCleared O evento do servidor output_audio_buffer.cleared é retornado quando o usuário interrompe (input_audio_buffer.speech_started) ou quando o cliente emite o evento output_audio_buffer.clear para cortar manualmente a resposta de áudio atual.

Esse evento só é aplicável ao WebRTC.
RealtimeServerEventOutputAudioBufferStarted O evento do servidor output_audio_buffer.started é retornado quando o servidor começa a transmitir áudio para o cliente. Esse evento é emitido depois que uma parte de conteúdo de áudio é adicionada (response.content_part.added) à resposta.

Esse evento só é aplicável ao WebRTC.
RealtimeServerEventOutputAudioBufferStopped O evento do servidor output_audio_buffer.stopped é retornado quando o buffer de áudio de saída é completamente drenado no servidor e não há mais áudio por vir.

Esse evento só é aplicável ao WebRTC.
LimitesDeTaxaDeEventosDoServidorEmTempoRealAtualizados O evento rate_limits.updated do servidor é emitido no início de uma resposta para indicar os limites de taxa atualizados.
RealtimeServerEventResponseAudioDelta O evento response.audio.delta do servidor é retornado quando o áudio gerado pelo modelo é atualizado.
RealtimeServerEventResponseAudioDone O evento response.audio.done do servidor é retornado quando o áudio gerado pelo modelo é concluído.
RealtimeServerEventResponseAudioTranscriptDelta O evento response.audio_transcript.delta do servidor é retornado quando a transcrição gerada pelo modelo da saída de áudio é atualizada.
RealtimeServerEventResponseAudioTranscriptDone O evento response.audio_transcript.done do servidor é retornado quando o streaming da transcrição gerada pelo modelo da saída de áudio é concluído.
RealtimeServerEventResponseContentPartAdded O evento do servidor response.content_part.added é retornado quando uma nova parte de conteúdo é adicionada a um item de mensagem do assistente.
RealtimeServerEventResponseContentPartDone O evento do servidor response.content_part.done é retornado quando o streaming de uma parte do conteúdo é concluído.
RespostaDeEventoDoServidorEmTempoRealCriada O evento response.created do servidor é retornado quando uma nova resposta é criada. Esse é primeiro evento de criação de resposta, onde a resposta está em um estado inicial de in_progress.
RealtimeServerEventResponseDone O evento response.done do servidor é retornado quando o streaming de uma resposta é concluído.
RealtimeServerEventResponseFunctionCallArgumentsDelta O evento response.function_call_arguments.delta do servidor é retornado quando os argumentos de chamada de função gerados pelo modelo são atualizados.
RealtimeServerEventResponseFunctionCallArgumentsDone O evento response.function_call_arguments.done do servidor é retornado quando o streaming dos argumentos de chamada de função gerados pelo modelo é concluído.
RealtimeServerEventResponseOutputItemAdded O evento response.output_item.added do servidor é retornado quando um novo item é criado durante a geração de resposta.
RealtimeServerEventResponseOutputItemDone O evento response.output_item.done do servidor é retornado quando o streaming de um item é concluído.
RealtimeServerEventResponseTextDelta O evento response.text.delta do servidor é retornado quando o texto gerado pelo modelo é atualizado.
RealtimeServerEventResponseTextDone O evento response.text.done do servidor é retornado quando o streaming do texto gerado pelo modelo é concluído.
RealtimeServerEventSessionCreated O evento session.created do servidor é o primeiro evento de servidor quando você estabelece uma nova conexão com a API em tempo real. Esse evento cria e retorna uma nova sessão com a configuração de sessão padrão.
RealtimeServerEventSessionUpdated O evento session.updated do servidor é retornado quando uma sessão é atualizada pelo cliente. Se houver um erro, o servidor enviará um evento error.

RealtimeServerEventConversationCreated

O evento conversation.created do servidor é retornado logo após a criação da sessão. Uma conversa é criada por sessão.

Estrutura do evento

{
  "type": "conversation.created",
  "conversation": {
    "id": "<id>",
    "object": "<object>"
  }
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.created.
conversa objeto O recurso de conversação.

Propriedades de conversação

Campo Tipo Descrição
id cadeia A ID exclusiva da conversa.
objeto cadeia O tipo de objeto deve ser realtime.conversation.

RealtimeServerEventConversationItemCreated

O evento conversation.item.created do servidor é retornado quando um item de conversa é criado. Existem vários cenários que produzem esse evento:

  • O servidor está gerando uma resposta que, se bem-sucedida, produz um ou dois itens, que são do tipo message (função assistant) ou tipofunction_call.
  • O buffer de áudio de entrada é confirmado pelo cliente ou pelo servidor (no server_vad modo). O servidor pega o conteúdo do buffer de áudio de entrada e o adiciona a um novo item de mensagem do usuário.
  • O cliente enviou um evento conversation.item.create para adicionar um novo item à conversa.

Estrutura do evento

{
  "type": "conversation.item.created",
  "previous_item_id": "<previous_item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.created.
id_do_item_anterior cadeia O ID do item anterior no contexto da conversa permite que o cliente entenda a ordem da conversa.
item RealtimeConversationResponseItem O item que foi criado.

RealtimeServerEventConversationItemRetrieved

O evento do servidor conversation.item.retrieved é retornado quando um item de conversa é recuperado.

Estrutura do evento

{
  "type": "conversation.item.retrieved",
  "previous_item_id": "<previous_item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.retrieved.
event_id cadeia A ID do evento.
item RealtimeConversationResponseItem O item que foi recuperado.

RealtimeServerEventConversationItemDeleted

O evento conversation.item.deleted do servidor é retornado quando o cliente exclui um item na conversa com um evento conversation.item.delete. Esse evento é usado para sincronizar a compreensão do histórico de conversas pelo servidor com a visão do cliente.

Estrutura do evento

{
  "type": "conversation.item.deleted",
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.deleted.
identificador_de_item cadeia O ID do item que foi excluído.

RealtimeServerEventConversationItemInputAudioTranscriptionCompleted

O evento conversation.item.input_audio_transcription.completed do servidor é o resultado da transcrição de áudio da fala gravada no buffer de áudio.

A transcrição começa quando o buffer de áudio de entrada é confirmado pelo cliente ou servidor (no modo server_vad). A transcrição é executada de forma assíncrona com a criação da resposta, portanto, esse evento pode ocorrer antes ou depois dos eventos de resposta.

Os modelos de API em tempo real aceitam áudio nativamente e, portanto, a transcrição de entrada é um processo separado executado em um modelo de reconhecimento de fala separado, como whisper-1. Portanto, a transcrição pode divergir um pouco da interpretação do modelo e deve ser tratada como um guia aproximado.

Estrutura do evento

{
  "type": "conversation.item.input_audio_transcription.completed",
  "item_id": "<item_id>",
  "content_index": 0,
  "transcript": "<transcript>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.input_audio_transcription.completed.
identificador_de_item cadeia O ID do item de mensagem do usuário que contém o áudio.
índice_de_conteúdo inteiro O índice da parte do conteúdo que contém o áudio.
transcrição cadeia O texto transcrito.

FalhaNaTranscriçãoDeÁudioDaEntradaDoItemDeConversaNoEventoDoServidorEmTempoReal

O evento conversation.item.input_audio_transcription.failed do servidor é retornado quando a transcrição de áudio de entrada é configurada e uma solicitação de transcrição para uma mensagem do usuário falhou. Esses eventos são separados de outros eventos error para que o cliente possa identificar o item relacionado.

Estrutura do evento

{
  "type": "conversation.item.input_audio_transcription.failed",
  "item_id": "<item_id>",
  "content_index": 0,
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>"
  }
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.input_audio_transcription.failed.
identificador_de_item cadeia O ID do item de mensagem do usuário.
índice_de_conteúdo inteiro O índice da parte do conteúdo que contém o áudio.
erro objeto Detalhes do erro de transcrição.

Consulte as propriedades aninhadas na próxima tabela.

Propriedades de erro

Campo Tipo Descrição
tipo cadeia O tipo de erro.
codificar cadeia Código de erro, se houver.
mensagem cadeia Uma mensagem de erro legível por humanos.
parâmetro cadeia Parâmetro relacionado ao erro, se houver.

RealtimeServerEventConversationItemTruncated

O evento conversation.item.truncated do servidor é retornado quando o cliente trunca um item de mensagem de áudio do assistente anterior com um evento conversation.item.truncate. Esse evento é usado para sincronizar a compreensão do áudio pelo servidor com a reprodução do cliente.

Essa evento trunca o áudio e remove a transcrição do texto do lado do servidor para garantir que não haja texto no contexto que o usuário não conheça.

Estrutura do evento

{
  "type": "conversation.item.truncated",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser conversation.item.truncated.
identificador_de_item cadeia O ID do item de mensagem do assistente que foi truncado.
índice_de_conteúdo inteiro O índice da parte do conteúdo que foi truncada.
audio_end_ms inteiro A duração até a qual o áudio foi truncado, em milissegundos.

Erro de Evento do Servidor em Tempo Real

O evento error do servidor é retornado quando ocorre um erro, que pode ser um problema do cliente ou do servidor. A maioria dos erros são recuperáveis ​​e a sessão permanece aberta.

Estrutura do evento

{
  "type": "error",
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>",
    "event_id": "<event_id>"
  }
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser error.
erro objeto Detalhes do erro.

Consulte as propriedades aninhadas na próxima tabela.

Propriedades de erro

Campo Tipo Descrição
tipo cadeia O tipo de erro. Por exemplo, "invalid_request_error" e "server_error" são tipos de erro.
codificar cadeia Código de erro, se houver.
mensagem cadeia Uma mensagem de erro legível por humanos.
parâmetro cadeia Parâmetro relacionado ao erro, se houver.
event_id cadeia O ID do evento do cliente que causou o erro, se aplicável.

RealtimeServerEventInputAudioBufferCleared

O evento input_audio_buffer.cleared do servidor é retornado quando o cliente limpa o buffer de áudio de entrada com um evento input_audio_buffer.clear.

Estrutura do evento

{
  "type": "input_audio_buffer.cleared"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.cleared.

RealtimeServerEventInputAudioBufferCommitted

O evento input_audio_buffer.committed do servidor é retornado quando um buffer de áudio de entrada é confirmado, pelo cliente ou automaticamente no modo VAD do servidor. A propriedade item_id é o ID do item de mensagem do usuário criado. Assim, um evento conversation.item.created também é enviado ao cliente.

Estrutura do evento

{
  "type": "input_audio_buffer.committed",
  "previous_item_id": "<previous_item_id>",
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.committed.
id_do_item_anterior cadeia O ID do item anterior após o qual o novo item é inserido.
identificador_de_item cadeia O ID do item de mensagem do usuário criado.

RealtimeServerEventInputAudioBufferSpeechStarted

O evento input_audio_buffer.speech_started do servidor é retornado no modo server_vad quando uma fala é detectada no buffer de áudio. Esse evento pode ocorrer sempre que áudio for adicionado ao buffer (a menos que a fala já tenha sido detectada).

Observação

O cliente pode usar esse evento para interromper a reprodução de áudio ou fornecer feedback visual ao usuário.

O cliente deve esperar receber um evento input_audio_buffer.speech_stopped quando a fala parar. A propriedade item_id é a ID do item de mensagem do usuário criado quando a fala é interrompida. O item_id também é incluído no evento input_audio_buffer.speech_stopped, a menos que o cliente confirme manualmente o buffer de áudio durante a ativação do VAD.

Estrutura do evento

{
  "type": "input_audio_buffer.speech_started",
  "audio_start_ms": 0,
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.speech_started.
audio_start_ms inteiro Milissegundos desde o início de todo o áudio gravado no buffer durante a sessão quando a fala foi detectada pela primeira vez. Essa propriedade corresponde ao início do áudio enviado ao modelo e, portanto, inclui o prefix_padding_ms configurado na sessão.
identificador_de_item cadeia O ID do item de mensagem do usuário criado quando a fala é interrompida.

RealtimeServerEventInputAudioBufferSpeechStopped

O evento input_audio_buffer.speech_stopped do servidor é retornado no modo server_vad quando o servidor detecta o fim da fala no buffer de áudio.

O servidor também envia um evento conversation.item.created com o item de mensagem do usuário criado a partir do buffer de áudio.

Estrutura do evento

{
  "type": "input_audio_buffer.speech_stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser input_audio_buffer.speech_stopped.
audio_end_ms inteiro Milissegundos desde o início da sessão quando a fala parou. Essa propriedade corresponde ao final do áudio enviado ao modelo e, portanto, inclui o min_silence_duration_ms configurado na sessão.
identificador_de_item cadeia O ID do item de mensagem do usuário criado.

RealtimeServerEventOutputAudioBufferCleared

O evento do servidor output_audio_buffer.cleared é retornado quando o buffer de áudio de saída é limpo.

Observação

Esse evento só é aplicável ao WebRTC.

Isso acontece no modo VAD quando o usuário interrompe (input_audio_buffer.speech_started) ou quando o cliente emite o evento output_audio_buffer.clear para cortar manualmente a resposta de áudio atual.

Estrutura do evento

{
  "type": "output_audio_buffer.cleared"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser output_audio_buffer.cleared.
event_id cadeia A ID do evento do servidor.
identificador_de_resposta cadeia A ID exclusiva da resposta que produziu o áudio.

RealtimeServerEventOutputAudioBufferStarted

O evento do servidor output_audio_buffer.started é retornado quando o servidor começa a transmitir áudio para o cliente. Esse evento é emitido depois que uma parte de conteúdo de áudio é adicionada (response.content_part.added) à resposta.

Observação

Esse evento só é aplicável ao WebRTC.

Estrutura do evento

{
  "type": "output_audio_buffer.started",
  "event_id": "<item_id>",
  "response_id": "<response_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser output_audio_buffer.started.
event_id cadeia A ID do evento do servidor.
identificador_de_resposta cadeia A ID exclusiva da resposta que produziu o áudio.

RealtimeServerEventOutputAudioBufferStopped

O evento do servidor output_audio_buffer.stopped é retornado quando o buffer de áudio de saída é completamente drenado no servidor e não há mais áudio por vir.

Observação

Esse evento só é aplicável ao WebRTC.

Esse evento é retornado depois que os dados de resposta completos são enviados ao cliente por meio do response.done evento.

Estrutura do evento

{
  "type": "output_audio_buffer.stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser output_audio_buffer.stopped.
event_id cadeia A ID do evento do servidor.
identificador_de_resposta cadeia A ID exclusiva da resposta que produziu o áudio.

Limites de Taxa de Eventos de Servidor em Tempo Real Atualizados

O evento rate_limits.updated do servidor é 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 mostrados aqui refletem essa reserva, que é ajustada de acordo quando a resposta é concluída.

Estrutura do evento

{
  "type": "rate_limits.updated",
  "rate_limits": [
    {
      "name": "<name>",
      "limit": 0,
      "remaining": 0,
      "reset_seconds": 0
    }
  ]
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser rate_limits.updated.
limites de taxa matriz deRealtimeServerEventRateLimitsUpdatedRateLimitsItem A lista de informações sobre limites de taxa.

RealtimeServerEventResponseAudioDelta

O evento response.audio.delta do servidor é retornado quando o áudio gerado pelo modelo é atualizado.

Estrutura do evento

{
  "type": "response.audio.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.audio.delta.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia Delta de dados de áudio Base64-encoded.

RealtimeServerEventResponseAudioDone

O evento response.audio.done do servidor é retornado quando o áudio gerado pelo modelo é concluído.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.audio.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.audio.done.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.

RealtimeServerEventResponseAudioTranscriptDelta

O evento response.audio_transcript.delta do servidor é retornado quando a transcrição gerada pelo modelo da saída de áudio é atualizada.

Estrutura do evento

{
  "type": "response.audio_transcript.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.audio_transcript.delta.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia A transcrição delta.

RealtimeServerEventResponseAudioTranscriptDone

O evento response.audio_transcript.done do servidor é retornado quando o streaming da transcrição gerada pelo modelo da saída de áudio é concluído.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.audio_transcript.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "transcript": "<transcript>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.audio_transcript.done.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
transcrição cadeia A transcrição final do áudio.

RealtimeServerEventResponseContentPartAdded

O evento response.content_part.added do servidor é retornado quando uma nova parte de conteúdo é adicionada a um item de mensagem do assistente durante a geração de resposta.

Estrutura do evento

{
  "type": "response.content_part.added",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.content_part.added.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item ao qual a parte do conteúdo foi adicionada.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
part RealtimeContentPart A parte de conteúdo que foi adicionada.

Propriedades de parte

Campo Tipo Descrição
tipo RealtimeContentPartType

RealtimeServerEventResponseContentPartDone

O evento response.content_part.done do servidor é retornado quando uma parte do conteúdo conclui o streaming de um item de mensagem do assistente.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.content_part.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.content_part.done.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
part RealtimeContentPart A parte do conteúdo que está pronta.

Propriedades de parte

Campo Tipo Descrição
tipo RealtimeContentPartType

RespostaDeEventoDoServidorEmTempoRealCriada

O evento response.created do servidor é retornado quando uma nova resposta é criada. Esse é primeiro evento de criação de resposta, onde a resposta está em um estado inicial de in_progress.

Estrutura do evento

{
  "type": "response.created"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.created.
response RealtimeResponse O objeto de resposta.

RealtimeServerEventResponseDone

O evento response.done do servidor é retornado quando o streaming de uma resposta é concluído. Esse evento sempre é emitido, independentemente do estado final. O objeto de resposta incluído no evento response.done inclui todos os itens de saída na resposta, mas omite os dados de áudio brutos.

Estrutura do evento

{
  "type": "response.done"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.done.
response RealtimeResponse O objeto de resposta.

RealtimeServerEventResponseFunctionCallArgumentsDelta

O evento response.function_call_arguments.delta do servidor é retornado quando os argumentos de chamada de função gerados pelo modelo são atualizados.

Estrutura do evento

{
  "type": "response.function_call_arguments.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "delta": "<delta>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.function_call_arguments.delta.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item de chamada de função.
output_index inteiro O índice do item de saída na resposta.
ID da chamada cadeia O ID da chamada de função.
delta cadeia Os argumentos delta como uma cadeia de caracteres JSON.

RealtimeServerEventResponseFunctionCallArgumentsDone

O evento response.function_call_arguments.done do servidor é retornado quando o streaming dos argumentos de chamada de função gerados pelo modelo é concluído.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.function_call_arguments.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "arguments": "<arguments>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.function_call_arguments.done.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item de chamada de função.
output_index inteiro O índice do item de saída na resposta.
ID da chamada cadeia O ID da chamada de função.
argumentos cadeia Os argumentos finais como uma cadeia de caracteres JSON.

RealtimeServerEventResponseOutputItemAdded

O evento response.output_item.added do servidor é retornado quando um novo item é criado durante a geração de resposta.

Estrutura do evento

{
  "type": "response.output_item.added",
  "response_id": "<response_id>",
  "output_index": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.output_item.added.
identificador_de_resposta cadeia O ID da resposta à qual o item pertence.
output_index inteiro O índice do item de saída na resposta.
item RealtimeConversationResponseItem O item que foi adicionado.

RealtimeServerEventResponseOutputItemDone

O evento response.output_item.done do servidor é retornado quando o streaming de um item é concluído.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.output_item.done",
  "response_id": "<response_id>",
  "output_index": 0
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.output_item.done.
identificador_de_resposta cadeia O ID da resposta à qual o item pertence.
output_index inteiro O índice do item de saída na resposta.
item RealtimeConversationResponseItem O item cujo streaming foi concluído.

RealtimeServerEventResponseTextDelta

O evento response.text.delta do servidor é retornado quando o texto gerado pelo modelo é atualizado. O texto corresponde à parte de conteúdo text de um item de mensagem do assistente.

Estrutura do evento

{
  "type": "response.text.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.text.delta.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
delta cadeia O texto delta.

RealtimeServerEventResponseTextDone

O evento response.text.done do servidor é retornado quando o streaming do texto gerado pelo modelo é concluído. O texto corresponde à parte de conteúdo text de um item de mensagem do assistente.

Esse evento também é retornado quando uma resposta é interrompida, incompleta ou cancelada.

Estrutura do evento

{
  "type": "response.text.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "text": "<text>"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser response.text.done.
identificador_de_resposta cadeia O ID da resposta.
identificador_de_item cadeia O ID do item.
output_index inteiro O índice do item de saída na resposta.
índice_de_conteúdo inteiro O índice da parte de conteúdo na matriz de conteúdo do item.
enviar SMS cadeia O conteúdo final do texto.

SessãoDeEventoDeServidorEmTempoRealCriada

O evento session.created do servidor é o primeiro evento de servidor quando você estabelece uma nova conexão com a API em tempo real. Esse evento cria e retorna uma nova sessão com a configuração de sessão padrão.

Estrutura do evento

{
  "type": "session.created"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser session.created.
sessão RealtimeResponseSession O objeto de sessão.

SessãoDeEventoDoServidorEmTempoRealAtualizada

O evento session.updated do servidor é retornado quando uma sessão é atualizada pelo cliente. Se houver um erro, o servidor enviará um evento error.

Estrutura do evento

{
  "type": "session.updated"
}

Propriedades

Campo Tipo Descrição
tipo cadeia O tipo de evento deve ser session.updated.
sessão RealtimeResponseSession O objeto de sessão.

Componentes

FormatoDeÁudioEmTempoReal

Valores Permitidos:

  • pcm16
  • g711_ulaw
  • g711_alaw

ModeloDeTranscriçãoDeEntradaDeÁudioEmTempoReal

Valores Permitidos:

  • whisper-1
  • gpt-4o-transcribe
  • gpt-4o-mini-transcribe
  • gpt-4o-transcribe-diarize

Configurações de Transcrição de Entrada de Áudio em Tempo Real

Campo Tipo Descrição
linguagem cadeia O idioma do áudio de entrada. Fornecer o idioma de entrada no formato ISO-639-1 (como en) melhorará a precisão e a latência.
modelo RealtimeAudioInputTranscriptionModel O modelo de transcrição de entrada de áudio. Por exemplo, whisper-1.
solicitação cadeia A solicitação para a transcrição de entrada de áudio. Texto opcional para orientar o estilo do modelo ou continuar um segmento de áudio anterior. Para o whisper-1 modelo, o prompt é uma lista de palavras-chave. Para os modelos gpt-4o-transcribe, gpt-4o-transcribe-diarize e gpt-4o-mini-transcribe, o prompt é uma string de texto livre, como 'espere palavras relacionadas à tecnologia'.

Configurações de Redução de Ruído de Áudio de Entrada em Tempo Real

Campo Tipo Descrição
tipo cadeia Tipo de redução de ruído. Especifique near_field para microfones de fala próxima, como fones de ouvido ou far_field para microfones de campo distante, como laptop ou microfones de sala de conferência.

RealtimeClientEvent

Campo Tipo Descrição
tipo RealtimeClientEventType O tipo do evento do cliente.
event_id cadeia A ID exclusiva do evento. O cliente pode especificar a ID para ajudar a identificar o evento.

TipoDeEventoDoClienteEmTempoReal

Valores Permitidos:

  • session.update
  • input_audio_buffer.append
  • input_audio_buffer.commit
  • input_audio_buffer.clear
  • conversation.item.create
  • conversation.item.delete
  • conversation.item.truncate
  • response.create
  • response.cancel

ParteDeConteúdoEmTempoReal

Campo Tipo Descrição
tipo RealtimeContentPartType O tipo de conteúdo.

Uma propriedade do objeto function.

Valores permitidos: input_text, input_audio, item_reference, text.
enviar SMS cadeia O conteúdo do texto. Esta propriedade é aplicável para os tipos de conteúdo input_text e text.
id cadeia ID de um item de conversa anterior a ser referenciado em itens criados pelo cliente e pelo servidor. Esta propriedade é aplicável ao tipo de conteúdo item_reference em eventos response.create.
áudio cadeia Os bytes de áudio codificados em Base64. Esta propriedade é aplicável ao tipo de conteúdo input_audio.
transcrição cadeia A transcrição do áudio. Esta propriedade é aplicável ao tipo de conteúdo input_audio.

TipoDeParteDeConteúdoEmTempoReal

Valores Permitidos:

  • input_text
  • input_audio
  • text
  • audio

RealtimeConversationItemBase (Base de Itens de Conversa em Tempo Real)

O item a ser adicionado à conversa.

Esta tabela descreve todas as propriedades RealtimeConversationItem. As propriedades aplicáveis por evento dependem do RealtimeItemType.

Campo Tipo Descrição
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.
tipo RealtimeItemType O tipo do item.

Valores permitidos: message, function_call, function_call_output
objeto cadeia O identificador do objeto de API que está sendo retornado. O valor sempre será realtime.item.
status RealtimeItemStatus A situação do item. Este campo não afeta a conversa, mas é aceito para consistência com o evento conversation.item.created.

Valores permitidos: completed e incomplete
função RealtimeMessageRole A função do remetente da mensagem. Esta propriedade só é aplicável para itens message.

Valores permitidos: system, user, assistant
conteúdo matriz de RealtimeContentPart O conteúdo da mensagem. Esta propriedade só é aplicável para itens message.

- Itens de mensagem da função system dão suporte apenas a conteúdo input_text.
- Itens de mensagem da função user dão suporte a conteúdo input_text e input_audio.
- Itens de mensagem da função assistant dão suporte a conteúdo text.
ID da chamada cadeia A ID da chamada de função (para itens function_call e function_call_output). Se repassado em um item function_call_output, o servidor verificará se existe um item function_call com a mesma ID no histórico da conversa.
nome cadeia O nome da função que está sendo chamada (para itens function_call).
argumentos cadeia Os argumentos da chamada de função (para itens function_call).
saída cadeia A saída da chamada de função (para itens function_call_output).

ItemDeSolicitaçãoDeConversaEmTempoReal

Use o objeto RealtimeConversationRequestItem para criar um novo item na conversa por meio do evento conversation.item.create.

Campo Tipo Descrição
tipo RealtimeItemType O tipo do item.
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.

RealtimeConversationResponseItem

O objeto RealtimeConversationResponseItem representa um item na conversa. Ele é usado em alguns dos eventos do servidor, como:

Campo Tipo Descrição
objeto cadeia O identificador do objeto de API retornado.

Valores permitidos: realtime.item
tipo RealtimeItemType O tipo do item.

Valores permitidos: message, function_call, function_call_output
id cadeia A ID exclusiva do item. O cliente pode especificar a ID para ajudar a gerenciar o contexto do lado do servidor. Se o cliente não fornecer uma ID, o servidor gerará uma.

Essa propriedade é anulável.

RealtimeFunctionTool

A definição de uma ferramenta de função conforme usada pelo ponto de extremidade em tempo real.

Campo Tipo Descrição
tipo cadeia O tipo da ferramenta.

Valores permitidos: function
nome cadeia O nome da função.
descrição cadeia A descrição da função, incluindo diretrizes de uso. Por exemplo, "Use esta função para obter a hora atual".
parâmetros objeto Os parâmetros da função na forma de um objeto JSON.

StatusDeItemEmTempoReal

Valores Permitidos:

  • in_progress
  • completed
  • incomplete

TipoDeItemEmTempoReal

Valores Permitidos:

  • message
  • function_call
  • function_call_output

RealtimeMessageRole

Valores Permitidos:

  • system
  • user
  • assistant

RealtimeRequestAssistantMessageItem

Campo Tipo Descrição
função cadeia A função da mensagem.

Valores permitidos: assistant
conteúdo matriz de RealtimeRequestTextContentPart O conteúdo da mensagem.

RealtimeRequestAudioContentPart

Campo Tipo Descrição
tipo cadeia O tipo da parte de conteúdo.

Valores permitidos: input_audio
transcrição cadeia A transcrição do áudio.

RealtimeRequestFunctionCallItem

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: function_call
nome cadeia A ID do item de chamada de função.
ID da chamada cadeia O ID do item de chamada de função.
argumentos cadeia Os argumentos do item de chamada de função.
status RealtimeItemStatus A situação do item.

RealtimeRequestFunctionCallOutputItem

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: function_call_output
ID da chamada cadeia O ID do item de chamada de função.
saída cadeia A saída do item de chamada de função.

ItemDeMensagemDeSolicitaçãoEmTempoReal

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: message
função RealtimeMessageRole A função da mensagem.
status RealtimeItemStatus A situação do item.

ItemDeReferenciaDaMensagemDeSolicitacaoEmTempoReal

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: message
id cadeia A ID da mensagem.

Sessão de Solicitação em Tempo Real

Use o objeto RealtimeRequestSession quando quiser atualizar a configuração da sessão por meio do evento session.update.

Campo Tipo Descrição
modalities matriz As modalidades compatíveis com a sessão.

Valores permitidos: text e audio

Por exemplo, "modalities": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalities": ["text"]. Você não pode habilitar apenas o áudio.
Instruções cadeia 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 de áudio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Embora o modelo nem sempre siga estas instruções, eles fornecem diretrizes sobre o comportamento desejado.
voice RealtimeVoice A voz usada para a resposta do modelo para a sessão.

Depois que a voz é usada na sessão para a resposta de áudio do modelo, ela não pode ser alterada.
formato_de_áudio_de_entrada RealtimeAudioFormat O formato do áudio de entrada.
formato_de_saída_de_áudio RealtimeAudioFormat O formato do áudio de saída.
redução_de_ruído_do_áudio_de_entrada ConfiguraçõesDeReduçãoDeRuídoDeÁudioDeEntradaEmTempoReal Configuração para redução de ruído de áudio de entrada. Isso pode ser definido como nulo para desativar. A redução de ruído filtra o áudio adicionado ao buffer de áudio de entrada antes de ser enviado ao VAD e ao modelo. Filtrar o áudio pode melhorar a precisão do VAD e da detecção de turnos (reduzindo falsos positivos) e o desempenho do modelo ao aprimorar a percepção do áudio de entrada.

Essa propriedade é anulável.
transcrição_de_áudio_de_entrada ConfiguraçõesDeTranscriçãoDeEntradaDeÁudioEmTempoReal A configuração da transcrição de áudio de entrada. A configuração é nula (desativada) por padrão. A transcrição de áudio de entrada não é nativa do modelo, pois o modelo consome áudio diretamente. A transcrição é executada de forma assíncrona por meio do /audio/transcriptions endpoint e deve ser tratada como uma orientação do conteúdo de áudio de entrada, em vez de precisamente o que o modelo ouviu. Para obter diretrizes adicionais para o serviço de transcrição, o cliente pode opcionalmente definir o idioma e solicitar a transcrição.

Essa propriedade é anulável.
detecção_de_giro RealtimeTurnDetection As configurações de detecção de turno para a sessão.

Essa propriedade é anulável.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
escolha_de_ferramenta RealtimeToolChoice A opção de ferramenta para a sessão.

Valores permitidos: auto, none e required. Caso contrário, você poderá especificar o nome da função a ser usada.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max_response_output_tokens inteiro ou "inf" O número máximo de tokens de saída para uma única resposta do assistente, incluindo chamadas de ferramentas.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "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".

Usa "inf" como padrão.

RealtimeRequestSystemMessageItem

Campo Tipo Descrição
função cadeia A função da mensagem.

Valores permitidos: system
conteúdo matriz de RealtimeRequestTextContentPart O conteúdo da mensagem.

ParteDeConteúdoDeTextoDeSolicitaçãoEmTempoReal

Campo Tipo Descrição
tipo cadeia O tipo da parte de conteúdo.

Valores permitidos: input_text
enviar SMS cadeia O conteúdo do texto.

RealtimeRequestUserMessageItem

Campo Tipo Descrição
função cadeia A função da mensagem.

Valores permitidos: user
conteúdo matriz de RealtimeRequestTextContentPart ou RealtimeRequestAudioContentPart O conteúdo da mensagem.

RealtimeResponse

Campo Tipo Descrição
objeto cadeia O objeto de resposta.

Valores permitidos: realtime.response
id cadeia A ID exclusiva da resposta.
status RealtimeResponseStatus O status da resposta.

O valor de status padrão é in_progress.
detalhes_do_status RealtimeResponseStatusDetails Os detalhes do status da resposta.

Essa propriedade é anulável.
saída matriz de RealtimeConversationResponseItem Os itens de saída da resposta.
uso objeto Estatísticas de uso da resposta. Cada sessão de API em tempo real mantém um contexto de conversa e acrescenta novos itens à conversa. A saída de turnos anteriores (tokens de texto e áudio) é a entrada para turnos posteriores.

Veja as propriedades aninhadas a seguir.
total_tokens inteiro O número total de tokens na resposta, incluindo tokens de texto e áudio de entrada e saída.

Uma propriedade do objeto usage.
+ input_tokens inteiro O número de tokens de entrada usados na resposta, incluindo tokens de texto e áudio.

Uma propriedade do objeto usage.
+ output_tokens inteiro O número de tokens de saída enviados na resposta, incluindo tokens de texto e áudio.

Uma propriedade do objeto usage.
+ detalhes_do_token_de_entrada objeto Detalhes sobre os tokens de entrada usados na resposta.

Uma propriedade do objeto usage.

Veja as propriedades aninhadas a seguir.
+ tokens em cache inteiro O número de tokens armazenados em cache usados na resposta.

Uma propriedade do objeto input_token_details.
+ text_tokens inteiro O número de tokens de texto usados na resposta.

Uma propriedade do objeto input_token_details.
+ audio_tokens inteiro O número de tokens de áudio usados na resposta.

Uma propriedade do objeto input_token_details.
+ output_token_details objeto Detalhes sobre os tokens de saída usados na resposta.

Uma propriedade do objeto usage.

Veja as propriedades aninhadas a seguir.
+ text_tokens inteiro O número de tokens de texto usados na resposta.

Uma propriedade do objeto output_token_details.
+ audio_tokens inteiro O número de tokens de áudio usados na resposta.

Uma propriedade do objeto output_token_details.

RealtimeResponseAudioContentPart

Campo Tipo Descrição
tipo cadeia O tipo da parte de conteúdo.

Valores permitidos: audio
transcrição cadeia A transcrição do áudio.

Essa propriedade é anulável.

RealtimeResponseBase

O recurso de resposta.

RealtimeResponseFunctionCallItem

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: function_call
nome cadeia A ID do item de chamada de função.
ID da chamada cadeia O ID do item de chamada de função.
argumentos cadeia Os argumentos do item de chamada de função.
status RealtimeItemStatus A situação do item.

RealtimeResponseFunctionCallOutputItem

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: function_call_output
ID da chamada cadeia O ID do item de chamada de função.
saída cadeia A saída do item de chamada de função.

RealtimeResponseMessageItem

Campo Tipo Descrição
tipo cadeia O tipo do item.

Valores permitidos: message
função RealtimeMessageRole A função da mensagem.
conteúdo matriz O conteúdo da mensagem.

Itens de matriz: RealtimeResponseTextContentPart
status RealtimeItemStatus A situação do item.

Opções de Resposta em Tempo Real

Campo Tipo Descrição
modalities matriz As modalidades compatíveis com a sessão.

Valores permitidos: text e audio

Por exemplo, "modalities": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalities": ["text"]. Você não pode habilitar apenas o áudio.
Instruções cadeia 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 de áudio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Embora o modelo nem sempre siga estas instruções, eles fornecem diretrizes sobre o comportamento desejado.
voice RealtimeVoice A voz usada para a resposta do modelo para a sessão.

Depois que a voz é usada na sessão para a resposta de áudio do modelo, ela não pode ser alterada.
formato_de_saída_de_áudio RealtimeAudioFormat O formato do áudio de saída.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
escolha_de_ferramenta RealtimeToolChoice A opção de ferramenta para a sessão.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max__output_tokens inteiro ou "inf" O número máximo de tokens de saída para uma única resposta do assistente, incluindo chamadas de ferramentas.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "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".

Usa "inf" como padrão.
conversa cadeia Controla a qual conversa a resposta é adicionada. Os valores com suporte são auto e none.

O valor auto (ou não definir esta propriedade) garante que o conteúdo da resposta seja adicionado à conversa padrão da sessão.

Defina esta propriedade como none para criar uma resposta fora de banda em que os itens não serão adicionados à conversa padrão. Para mais informações, consulte o guia de instruções.

Usa "auto" como padrão
metadados mapa Configure até 16 pares chave-valor que podem ser anexados a um objeto. Este poderá ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.

Por exemplo: metadata: { topic: "classification" }
entrada matriz Itens de entrada a serem incluídos no prompt do modelo. Cria um novo contexto para essa resposta, sem incluir a conversa padrão. Pode incluir referências a itens da conversa padrão.

Itens de matriz: RealtimeConversationItemBase

SessãoDeRespostaEmTempoReal

O objeto RealtimeResponseSession representa uma sessão na API Realtime. Ele é usado em alguns dos eventos do servidor, como:

Campo Tipo Descrição
objeto cadeia O objeto de sessão.

Valores permitidos: realtime.session
id cadeia A ID exclusiva da sessão.
modelo cadeia O modelo usado para a sessão.
modalities matriz As modalidades compatíveis com a sessão.

Valores permitidos: text e audio

Por exemplo, "modalities": ["text", "audio"] é a configuração padrão que habilita as modalidades de texto e áudio. Para habilitar apenas o texto, defina "modalities": ["text"]. Você não pode habilitar apenas o áudio.
Instruções cadeia 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 de áudio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Embora o modelo nem sempre siga estas instruções, eles fornecem diretrizes sobre o comportamento desejado.
voice RealtimeVoice A voz usada para a resposta do modelo para a sessão.

Depois que a voz é usada na sessão para a resposta de áudio do modelo, ela não pode ser alterada.
formato_de_áudio_de_entrada RealtimeAudioFormat O formato do áudio de entrada.
formato_de_saída_de_áudio RealtimeAudioFormat O formato do áudio de saída.
transcrição_de_áudio_de_entrada ConfiguraçõesDeTranscriçãoDeEntradaDeÁudioEmTempoReal As configurações de transcrição de entrada de áudio.

Essa propriedade é anulável.
detecção_de_giro RealtimeTurnDetection As configurações de detecção de turno para a sessão.

Essa propriedade é anulável.
Ferramentas matriz de RealtimeTool As ferramentas disponíveis para o modelo para a sessão.
escolha_de_ferramenta RealtimeToolChoice A opção de ferramenta para a sessão.
temperatura número A temperatura de amostragem do modelo. Os valores de temperatura permitidos são limitados a [0,6, 1,2]. O valor padrão é 0,8.
max_response_output_tokens inteiro ou "inf" O número máximo de tokens de saída para uma única resposta do assistente, incluindo chamadas de ferramentas.

Especifique um inteiro entre 1 e 4096 para limitar os tokens de saída. Caso contrário, defina o valor como "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".

StatusDeRespostaEmTempoReal

Valores Permitidos:

  • in_progress
  • completed
  • cancelled
  • incomplete
  • failed

DetalhesDoStatusDeRespostaEmTempoReal

Campo Tipo Descrição
tipo RealtimeResponseStatus O status da resposta.

ParteDeTextoDeRespostaEmTempoReal

Campo Tipo Descrição
tipo cadeia O tipo da parte de conteúdo.

Valores permitidos: text
enviar SMS cadeia O conteúdo do texto.

RealtimeServerEvent

Campo Tipo Descrição
tipo RealtimeServerEventType O tipo do evento do servidor.
event_id cadeia A ID exclusiva do evento do servidor.

RealtimeServerEventRateLimitsUpdatedRateLimitsItem

Campo Tipo Descrição
nome cadeia O nome da propriedade de limite de taxa sobre a qual esse item inclui informações.
limite inteiro O limite máximo configurado para essa propriedade de limite de taxa.
remaining inteiro A cota restante disponível em relação ao limite configurado para essa propriedade de limite de taxa.
reset_seconds número O tempo restante, em segundos, até que essa propriedade de limite de taxa seja redefinida.

RealtimeServerEventType

Valores Permitidos:

  • session.created
  • session.updated
  • conversation.created
  • conversation.item.created
  • conversation.item.deleted
  • conversation.item.truncated
  • response.created
  • response.done
  • rate_limits.updated
  • response.output_item.added
  • response.output_item.done
  • response.content_part.added
  • response.content_part.done
  • response.audio.delta
  • response.audio.done
  • response.audio_transcript.delta
  • response.audio_transcript.done
  • response.text.delta
  • response.text.done
  • response.function_call_arguments.delta
  • response.function_call_arguments.done
  • input_audio_buffer.speech_started
  • input_audio_buffer.speech_stopped
  • conversation.item.input_audio_transcription.completed
  • conversation.item.input_audio_transcription.failed
  • input_audio_buffer.committed
  • input_audio_buffer.cleared
  • error

DetecçãoDeTurnoVadEmServidorEmTempoReal

Campo Tipo Descrição
tipo cadeia O tipo de detecção de turno.

Valores permitidos: server_vad
limite número O limite de ativação para a detecção de turno do VAD do servidor. Em ambientes barulhentos, talvez seja necessário aumentar o limite para evitar falsos positivos. Em ambientes silenciosos, talvez seja necessário diminuir o limite para evitar falsos negativos.

Usa 0.5 como padrão. Você pode definir o limite como um valor entre 0.0 e 1.0.
prefix_padding_ms cadeia A duração do áudio de fala (em milissegundos) a ser incluída antes do início da fala detectada.

Usa 300 como padrão.
duração_do_silêncio_ms cadeia A duração do silêncio (em milissegundos) para detectar o fim da fala. Você deseja detectar o fim da fala o mais rápido possível, mas não muito cedo para evitar cortar a última parte da fala.

O modelo responderá mais rapidamente se você definir esse valor como um número menor, mas isso poderá cortar a última parte da fala. Se você definir esse valor como um número mais alto, o modelo aguardará mais tempo para detectar o fim da fala, mas pode levar mais tempo para responder.

RealtimeSessionBase

Configuração de objeto de sessão em tempo real.

RealtimeTool

A representação base de uma definição de ferramenta em tempo real.

Campo Tipo Descrição
tipo RealtimeToolType O tipo da ferramenta.

RealtimeToolChoice

O conjunto combinado de representações disponíveis para um parâmetro tool_choice em tempo real, abrangendo as duas opções de literais de cadeia de caracteres, como "auto" e referências estruturadas a ferramentas definidas.

RealtimeToolChoiceFunctionObject

A representação de uma tool_choice em tempo real selecionando uma ferramenta de função nomeada.

Campo Tipo Descrição
tipo cadeia O tipo do tool_choice.

Valores permitidos: function
função objeto A ferramenta de função a ser selecionada.

Veja as propriedades aninhadas a seguir.
+ nome cadeia O nome da ferramenta de função.

Uma propriedade do objeto function.

RealtimeToolChoiceLiteral

O conjunto disponível de opções de tool_choice de literais de cadeia de caracteres no nível do modo para o ponto de extremidade em tempo real.

Valores Permitidos:

  • auto
  • none
  • required

RealtimeToolChoiceObject

Uma representação base para uma tool_choice em tempo real selecionando uma ferramenta nomeada.

Campo Tipo Descrição
tipo RealtimeToolType O tipo do tool_choice.

TipoDeFerramentaEmTempoReal

Os discriminadores de tipo de ferramenta suportados para ferramentas em tempo real. Atualmente, apenas ferramentas de “função” são suportadas.

Valores Permitidos:

  • function

Detecção de Viradas em Tempo Real

Campo Tipo Descrição
tipo TipoDeDetecçãoDeViradaEmTempoReal O tipo de detecção de turno.

Valores permitidos: semantic_vad ou server_vad
limite número O limite de ativação para a detecção de turno do VAD (server_vad) do servidor. Em ambientes barulhentos, talvez seja necessário aumentar o limite para evitar falsos positivos. Em ambientes silenciosos, talvez seja necessário diminuir o limite para evitar falsos negativos.

Usa 0.5 como padrão. Você pode definir o limite como um valor entre 0.0 e 1.0.

Essa propriedade só é aplicável para a detecção de turnos de server_vad.
prefix_padding_ms cadeia A duração do áudio de fala (em milissegundos) a ser incluída antes do início da fala detectada.

O padrão é 300 milissegundos.

Essa propriedade só é aplicável para a detecção de turnos de server_vad.
duração_do_silêncio_ms cadeia A duração do silêncio (em milissegundos) para detectar o fim da fala. Você deseja detectar o fim da fala o mais rápido possível, mas não muito cedo para evitar cortar a última parte da fala.

O modelo responderá mais rapidamente se você definir esse valor como um número menor, mas isso poderá cortar a última parte da fala. Se você definir esse valor como um número mais alto, o modelo aguardará mais tempo para detectar o fim da fala, mas pode levar mais tempo para responder.

O padrão é 200 milissegundos.

Essa propriedade só é aplicável para a detecção de turnos de server_vad.
criar_resposta boolean Indica se o servidor criará automaticamente uma resposta quando o VAD estiver habilitado e a fala for interrompida.

Usa true como padrão.
interrupt_response boolean Indica se o servidor interromperá automaticamente qualquer resposta contínua com saída para a conversa padrão (auto) quando ocorrer um evento de início do VAD.

Usa true como padrão.
entusiasmo cadeia O entusiasmo do modelo em responder e interromper o usuário. Especifique low esperar mais tempo para que o usuário continue falando. Especifique high para dividir o áudio o mais rápido possível para respostas mais rápidas. O valor padrão é auto equivalente a médio.

Essa propriedade só é aplicável para a detecção de turnos de semantic_vad.

Tipo de Detecção de Turno em Tempo Real

Valores Permitidos:

  • semantic_vad - O VAD semântico detecta quando o usuário termina de falar com base nas palavras que ele pronunciou. O áudio de entrada é pontuado com base na probabilidade de o usuário terminar de falar. Quando a probabilidade for baixa, o modelo aguardará um tempo limite. Quando a probabilidade é alta, não há necessidade de esperar.
  • server_vad – O servidor avalia o áudio do usuário proveniente do cliente. O servidor usa automaticamente esse áudio para iniciar a geração de resposta em conversas aplicáveis quando um fim de fala é detectado.

RealtimeVoice

Valores Permitidos:

  • alloy
  • ash
  • ballad
  • coral
  • echo
  • sage
  • shimmer
  • verse