Exemplos em Tempo Real

Quatro exemplos executáveis no diretório examples/, em ordem aproximada de quanto eles ensinam. Todos usam a server-side bridge; todos rodam em qualquer um OpenAI ou Gemini. Defina a chave relevante primeiro:

export OPENAI_API_KEY=sk-…        # for OpenAI sessions
export GEMINI_API_KEY=…           # for Gemini sessions (or GOOGLE_API_KEY)

realtime_tools

Sem interface gráfica. A leitura inicial mais clara. Uma sonda de console (sem navegador) que exercita tool dispatch em IntegratedRealtimeRunner: turnos de ferramenta única, ferramenta paralela e calculadora, com agregação de sessão/memória/transcrição integrada. A menor imagem de ponta a ponta de como um turno de ferramenta flui.

cargo run --manifest-path examples/realtime_tools/Cargo.toml

Comece aqui para entender o runner; depois passe para os exemplos web para áudio.


realtime_voiceMindfulness com Mia

O carro-chefe. Um aplicativo de voz web completo: o navegador captura o microfone PCM16 e reproduz o agent sem interrupções com barge-in; o servidor Rust é o proprietário da session. Sua característica marcante é memória: um GraphMemoryService com suporte de arquivo é a memória de longo prazo da Mia — o cartão de perfil dela é injetado no início da session, cada turno é registrado no graph, e ela organiza fatos duráveis no meio da conversa através das ferramentas remember/relate em ponte. Um painel "User Memory Insights" ao vivo lê e escreve o mesmo graph sobre /api/memory. Também mostra uma ferramenta get_weather server-side.

ClaroEscuro
Mindfulness com Mia — tema claroMindfulness com Mia — tema escuro
cargo run --manifest-path examples/realtime_voice/Cargo.toml
# → http://localhost:3033

Leia para: captura/reprodução de Web Audio, memória de knowledge-graph, autocura de agent.


customer_serviceAria

A vitrine multimodal. Uma versão redesenhada da demonstração da Live API do "Customer Service Agent" do Google — agnóstico de backend, em Rust, com uma UI de três colunas temática (sistema/claro/escuro). Ele combina tudo:

  • Multimodal — transmite PCM do microfone e quadros JPEG da câmera; Aria o que você mostra a ela (send_video_frame).
  • Ferramentasprocess_refund e connect_to_human executam no lado do servidor; os resultados são falados de volta.
  • Diálogo afetivo — empático em ambos os backends; CS_AFFECTIVE=1 muda Gemini para o modelo de áudio nativo para uma verdadeira correspondência de tom.
ClaroEscuro
Agente de Atendimento ao Cliente — tema claroAgente de Atendimento ao Cliente — tema escuro
cargo run --manifest-path examples/customer_service/Cargo.toml
# → http://localhost:3066

# headless smoke test (verifies the refund tool runs):
cargo run --manifest-path examples/customer_service/Cargo.toml -- probe openai
cargo run --manifest-path examples/customer_service/Cargo.toml -- probe gemini

# enable Gemini native affective dialogue:
CS_AFFECTIVE=1 cargo run --manifest-path examples/customer_service/Cargo.toml

Leia para: entrada de vídeo, misturando multimodal + ferramentas + afeto em um único Agent.


live_translation

O exemplo de modelo dedicado. Um tradutor de fala para fala em tempo real: fale inglês, ouça espanhol alguns segundos depois. Mesma ponte, mas apontado para os modelos de tradução dos provedores — OpenAI gpt-realtime-translate e Gemini gemini-3.5-live-translate-preview — que usam um protocolo diferente dos modelos conversacionais. Escolha um idioma de destino na UI; o servidor negocia as taxas de áudio por provedor antes que o áudio flua.

ClaroEscuro
Tradução ao Vivo — tema claroTradução ao Vivo — tema escuro
cargo run --manifest-path examples/live_translation/Cargo.toml
# → http://localhost:3055
cargo run --manifest-path examples/live_translation/Cargo.toml -- probe openai

Leia para: usar os modelos de tradução dedicados e uma ponte focada e mínima.


Um caminho sugerido

  1. realtime_tools — veja o runner e uma rodada de tool, sem ruído de áudio.
  2. realtime_voice — adicione áudio real e memória de knowledge-graph.
  3. customer_service — adicione visão e afeto; o agente multimodal completo.
  4. live_translation — um modelo e protocolo especializados.

Cada README.md no diretório de exemplo possui a tabela completa de env-var, model overrides (OPENAI_REALTIME_MODEL / GEMINI_REALTIME_MODEL) e notas de arquitetura.

← Voltar para a Visão geral em tempo real