← Voltar aos projetos

SofiaAgente de voz com IA em tempo real

Agente de voz com IA em tempo real

Sofia

2026Repo privado
  • Python 3.12
  • LiveKit Agents
  • Deepgram Nova-3
  • Claude Haiku 4.5
  • Gemini 2.5 Flash
  • ElevenLabs Flash
  • Silero VAD
  • PostgreSQL
  • Docker

Resumo

A Sofia é uma recepcionista de telefone com IA, 24/7, para clínicas. O paciente liga para um número normal e fala com um agente em tempo real que agenda, captura dados e passa para um humano quando tem dúvida — em fala natural, em menos de um segundo e meio por turno.

Arquitetura

caller
STTDeepgram Nova-3
LLMClaude Haiku 4.5 · Gemini 2.5 Flash
TTSElevenLabs Flash
caller

Uma cascata em tempo real, residente na UE. Cada etapa é observável e mensurável separadamente.

LiveKit transport · Silero VAD + LM end-of-turn detector · Postgres tool-calls

~416 ms
STT
~882 ms
LLM
~163 ms
TTS
~1.46 s
median e2e

Latência por turno

0500100015001,5 s · limite de desligar1461turno 11394turno 21286turno 31467turno 41530turno 5median ~1461 msSTTLLMTTS
Mediana ~1,46 s ponta a ponta. Os cinco turnos abaixo da linha em que quem liga desiste.

Destaques

  • Cascata em tempo real: Deepgram Nova-3 (voz→texto) → um LLM (Claude Haiku 4.5, com Gemini 2.5 Flash como fallback trocável em tempo de execução) → ElevenLabs Flash (texto→voz), orquestrado sobre o LiveKit.
  • Latência mediana de ~1,46s ponta a ponta por turno, medida e registrada por turno (detalhe STT / LLM / TTS): acima de ~1,5s quem liga acha que é caixa postal e desliga.
  • Tool-calling idempotente: o modelo chama save_caller_name uma vez; um índice único no Postgres garante exatamente uma linha por chamada, então retentativas não duplicam.
  • Silero VAD + um detector de fim-de-turno por modelo decidem quando o paciente realmente terminou — sem cortes no meio da frase.
  • Tipado (mypy --strict), ≥90% de cobertura na lógica de negócio, Dockerizado e com CI. Stack residente na UE para o GDPR.