Skip to main content
Multimodal em Tempo Real

Fluxo de interação multimodal em tempo real

Este tópico descreve o fluxo de interação multimodal em tempo real entre o servidor e o cliente.

Modo VAD

Para ativar o modo VAD, defina o parâmetro session.turn_detection do evento do cliente como "server_vad". Nesse modo, o servidor executa a Detecção de Atividade de Voz (VAD) no áudio recebido e responde ao identificar fala. Esta é a configuração padrão, ideal para cenários em que o cliente envia áudio continuamente ao servidor.
server_vad
  • O servidor envia o evento input_audio_buffer.speech_started ao detectar o início da fala.
  • O cliente pode adicionar áudio ao buffer a qualquer momento enviando um evento input_audio_buffer.append.
  • O servidor envia o evento input_audio_buffer.speech_stopped ao detectar o fim da fala.
  • O servidor confirma o buffer de áudio de entrada enviando um evento input_audio_buffer.committed.
  • O servidor envia um evento conversation.item.created contendo o item de mensagem do usuário criado a partir do buffer de áudio.

Fluxo de chamada de ferramenta

No modo VAD, quando uma resposta gerada pelo servidor exige uma chamada de ferramenta, ocorre o seguinte fluxo de interação:
image.svg
  • Após detectar o fim da fala e gerar uma resposta, o servidor determina que uma chamada de ferramenta é necessária.
  • O servidor envia um evento response.function_call_arguments.delta com dados incrementais dos argumentos da chamada de ferramenta.
  • O servidor envia um evento response.function_call_arguments.done para indicar que todos os argumentos da chamada de ferramenta foram enviados.
  • O cliente executa a chamada de ferramenta e obtém o resultado.
  • O cliente envia um evento conversation.item.create contendo o resultado da chamada de ferramenta.
  • O servidor gera automaticamente uma resposta com base no resultado da chamada de ferramenta.

Modo Manual

Para ativar o modo Manual, defina o parâmetro session.turn_detection do evento do cliente como null. Nessa configuração, o cliente solicita uma resposta do servidor enviando explicitamente os eventos input_audio_buffer.commit e response.create. Esse modo é adequado para cenários de "pressionar para falar", como o envio de mensagens de voz em aplicativos de chat.
manual
  • O cliente pode adicionar áudio ao buffer enviando um evento input_audio_buffer.append.
  • O cliente confirma o buffer de áudio de entrada enviando um evento input_audio_buffer.commit. Essa confirmação cria um novo item de mensagem do usuário na conversa.
  • O servidor responde enviando um evento input_audio_buffer.committed.
  • O cliente envia um evento response.create para acionar o modelo e gerar a resposta final.
  • O servidor responde enviando um evento conversation.item.created.

Fluxo de chamada de ferramenta

image.svg
No modo Manual, quando uma resposta gerada pelo servidor exige uma chamada de ferramenta, ocorre o seguinte fluxo de interação:
  • Após o cliente enviar um evento response.create, o servidor gera uma resposta e detecta a necessidade de uma chamada de ferramenta.
  • O servidor envia um evento response.function_call_arguments.delta contendo dados incrementais dos argumentos da chamada de ferramenta.
  • O servidor envia um evento response.function_call_arguments.done para sinalizar que a transferência dos argumentos da chamada de ferramenta foi concluída.
  • O cliente executa a chamada de ferramenta e obtém o resultado.
  • O cliente envia o resultado da chamada de ferramenta utilizando um evento conversation.item.create.
  • O cliente envia um evento response.create para acionar o modelo e gerar a resposta final.
  • O servidor gera uma resposta baseada no resultado da chamada de ferramenta e a envia ao cliente por meio de eventos response.audio.delta ou response.text.delta.
Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Geração de Vídeo
Áudio
API em tempo real
Incorporação de Texto
Produção de Modelos