← Voltar

Optimus

Plataforma de Chatbots AI para Milhões de Usuários

O Problema

Uma empresa precisava de uma plataforma de chatbots que atendesse clínicas, e-commerces, escritórios de advocacia — qualquer vertical de negócio. O sistema precisava escalar pra milhões de usuários, manter contexto de conversas longas, e isolar completamente os dados entre clientes.

Chatbots genéricos não resolvem. Eles esquecem o que você disse 5 mensagens atrás e não entendem que "dente 36" numa clínica é informação crítica que não pode sumir.

A Solução

Arquitetura de microserviços do zero, pensada pra produção desde o dia um:

┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  WhatsApp   │  │  Web/Mobile │  │   Outros    │
└──────┬──────┘  └──────┬──────┘  └──────┬──────┘
       └────────────────┼────────────────┘
                        │
           ┌────────────▼────────────┐
           │  Backend Orchestrator   │
           │  Rate limiting, cache   │
           └────────────┬────────────┘
                        │
    ┌───────────────────┼───────────────────┐
    │                   │                   │
┌───▼───┐         ┌─────▼─────┐       ┌─────▼─────┐
│  AI   │         │  Memory   │       │  Rules    │
│Engine │         │  Engine   │       │  Engine   │
└───────┘         └───────────┘       └───────────┘
  • Backend Orchestrator — Gateway único. Rate limiting, cache, circuit breaker.
  • AI Engine — Processa conversas com LangChain. Zero acesso a banco.
  • Memory Engine — Dono do PostgreSQL. Memória hierárquica (hot/warm/cold).
  • Rules Engine — Automações de negócio por vertical.

Multi-Tenancy de Verdade

Cada cliente tem seu próprio schema no PostgreSQL (t_clinica_abc, t_loja_xyz). Não é só um tenant_id numa tabela compartilhada — é isolamento real. Um bug no código de um tenant não vaza dados de outro.

O Problema do "Esquecimento"

Chatbots perdem contexto. Depois de 50 mensagens, esquecem que você marcou consulta pra terça às 14h.

Resolvi com memória em três camadas:

  • Hot — Redis, últimas mensagens, acesso instantâneo
  • Warm — Redis, contexto recente, TTL maior
  • Cold — PostgreSQL, histórico completo

Quando um operador humano devolve pro bot, o sistema gera resumo via GPT-4 com templates específicos por vertical. Numa clínica, ele sabe que "dente 36" e "amoxicilina 500mg" são críticos.

Números

<500ms

Latência P95

~90%

Cache hit

99.9%

Uptime

3k/s

Throughput

Stack

PythonFastAPILangChainPostgreSQLRedisDockerKubernetesOpenAI

O que aprendi

Separação de responsabilidades não é frescura. Depois de 6 meses, quando você precisa mudar o cache sem quebrar o AI Engine, agradece.

Multi-tenancy precisa ser pensado desde o dia um. Schema por tenant no PostgreSQL é mais trabalho inicial, mas dorme tranquilo.

Memória de chatbot é subestimada. Todo mundo foca no modelo. Ninguém fala do que acontece com 200 mensagens.

Interessado em construir algo parecido?

Vamos conversar