Assistente conversacional deste site, construído em Laravel 12 com painel Filament v4. Um sistema RAG (Retrieval-Augmented Generation) que responde em português e inglês a partir do conteúdo real do portefólio — serviços, projetos e notícias — com salvaguardas para não inventar informação.
Pipeline de um pedido:
┌───────────────────┐
│ Pergunta (BRI) │
└─────────┬─────────┘
▼
Recuperação híbrida — SQLite FTS5 + embeddings, fundidos (RRF)
▼
Montagem de contexto — catálogo + contactos + regra de veracidade
▼
LLM (ancorado) — resposta gerada token a token
▼
┌───────────────────┐
│ Browser (BRI) │ ◀ Server-Sent Events, com repetição
└───────────────────┘
A recuperação é híbrida: pesquisa lexical SQLite FTS5 combinada com embeddings (nomic-embed-text) e fundida por Reciprocal Rank Fusion, com um ligeiro fator de recência. Blocos autoritativos (catálogo de registos, contactos reais e regra de veracidade) são injetados no prompt para eliminar alucinações.
Os modelos são separados por função:
Chatbot (BRI) ─────▶ ┌────────────────────────────┐
│ Ollama Cloud │ sem quota
│ gpt-oss:120b (no think) │ contexto 128k
└────────────────────────────┘
Editorial Desk ─────▶ Gemini ─▶ Groq ─▶ OpenRouter
└─── failover em 429 / 5xx ───┘
O chat corre num backend sem quotas (Ollama Cloud), enquanto a redação editorial automatizada usa uma cadeia cloud com failover automático. A camada de streaming deteta cortes a meio e oferece repetição; uma sonda de saúde coloca o widget em modo offline localizado e recupera-o sozinha; e a memória de conversa, com base na conversa guardada no servidor, mantém o contexto do visitante ao longo do diálogo.
Desenhado, integrado e em produção neste próprio site.