Powered by HostGator
Agente de suporte com RAG para responder duvidas recorrentes de VPS, WhatsApp e automacoes com seguranca, rastreabilidade e escalonamento humano.
O supportFAQagent transforma conhecimento tecnico versionado em respostas consistentes, auditaveis e reutilizaveis por dominio. O primeiro dominio do produto e suporte-vps-whatsapp, voltado para atendimento tecnico de VPS, WhatsApp e automacoes operacionais.
Equipes de suporte perdem tempo com perguntas repetidas, respostas inconsistentes e dificuldade para saber quando um bot deve parar e chamar uma pessoa.
Este projeto resolve isso com um nucleo Python modular que:
- responde com base em conhecimento controlado
- evita inventar respostas quando falta contexto
- registra
request_id, referencias e motivos de escalonamento - permite evoluir de um dominio inicial para varios setores
- prepara integracao nativa com Meta WhatsApp Cloud API, adapters temporarios como Hermes e PostgreSQL/pgvector
- API HTTP com FastAPI
- dominio inicial para suporte de VPS, WhatsApp e automacoes
- retrieval lexical como padrao seguro para local/CI
- retrieval PostgreSQL/pgvector como default operacional do staging por
RETRIEVAL_BACKEND=pgvector - provider real de LLM com OpenAI/Anthropic
- fallback seguro quando credenciais ou providers falham
- handoff estruturado por baixa confianca, pedido humano, termo sensivel ou erro tecnico
- feedback persistente e confiavel quando
PERSISTENCE_BACKEND=postgres - fachada publica
POST /web/chatePOST /web/feedbackpara website sem expor segredo no navegador - adaptador para ler arquivos do GitHub pela Contents API oficial, sem scraping de HTML
- rate limit no
/chat X-Request-IDem todas as respostas- testes automatizados cobrindo API, seguranca, retrieval, LLM, handoff e contratos
- atendimento inicial em WhatsApp
- atendimento inicial em website com chat publico controlado
- suporte tecnico para VPS
- triagem de duvidas recorrentes
- consulta a FAQs e artigos internos
- canais externos consumindo uma API estavel, sem mover inteligencia para fora do backend
- base para agentes reutilizaveis em outros dominios
Canal externo
-> FastAPI
-> Configuracao do dominio
-> Retrieval de conhecimento
-> Prompt builder
-> LLM provider
-> Resposta com confianca, referencias e handoff
O dominio define persona, escopo, regras de resposta, limites, provider de LLM, embedding e politica de escalonamento.
Request:
{
"message": "Como conectar o WhatsApp pela Meta API oficial?",
"session_id": "whatsapp:+5511999999999",
"domain": "suporte-vps-whatsapp"
}Response:
{
"request_id": "uuid",
"domain": "suporte-vps-whatsapp",
"answer": "Resposta final para o usuario.",
"confidence": 0.82,
"escalated": false,
"handoff_reasons": [],
"references": ["article-or-chunk-id"],
"error_code": null
}O projeto foi desenhado para uso operacional controlado:
- secrets fora do Git
API_SECRET_KEYobrigatorio fora de desenvolvimento- logs com cuidado para nao expor dados sensiveis
- fallback seguro em falha de provider
- rate limit no endpoint de chat
- rastreabilidade por
request_id - escalonamento quando o contexto nao for suficiente
Pronto no MVP atual:
- API principal
- dominio inicial
- resposta com fallback seguro
- handoff estruturado
- persistencia PostgreSQL de feedback, conversas e mensagens sanitizadas por feature flag
- historico curto real isolado por dominio, canal e hash de sessao
- readiness separado para banco, migrations, retrieval e outbox
- retrieval lexical preservado como fallback local e rollback operacional
- pgvector promovido como default operacional do staging real
pgvector_gate.yamlvalidada em staging com76/78- Fase 0 implementada e validada localmente com PostgreSQL/pgvector real,
migrations
001-008e356testes verdes - fundacao Meta WhatsApp Cloud API implementada por feature flag, com webhook, parser, cliente HTTP, entrega OTP e transporte de chat desativados por padrao
- Hermes disponivel apenas como adapter temporario para entrega OTP
- testes e documentacao base
Proxima fase operacional:
- executar restore cronometrado em ambiente isolado e medir
RPO <= 24h/RTO <= 4h - executar smoke privado da Meta WhatsApp Cloud API antes de qualquer ativacao real
- manter Hermes como ponte temporaria somente se reduzir risco operacional
- operacao reproduzivel e monitoramento da VPS
- acompanhar pgvector como default do staging com rollback documentado para lexical
Roadmap:
- calibragem com perguntas reais
- expansao para novos dominios
Risco operacional conhecido:
- o staging chegou a
100%de uso do disco por cache de build Docker; depois da limpeza e promocao parcial ficou em81%, portanto precisa de alerta e politica de limpeza antes de producao - a Fase 0 operacional continua
not_approvedate o restore isolado passar;n8nfoi removido do projeto e nao e gate do MVP
app/
api/ # rotas e schemas HTTP
core/ # configuracao, logging e utilitarios
db/ # modelos e conexao de persistencia
domain_engine/ # carga de dominios, prompts e politicas
evals/ # runner e modelos de calibragem local
feedback/ # contrato e servico de feedback operacional
handoff/ # regras reutilizaveis de escalonamento humano
ingestion/ # leitura e chunking da base de conhecimento
llm/ # contratos e provedores de modelos
orchestration/ # fluxo principal de atendimento
retrieval/ # embeddings, vetores e recuperacao
static/ # chat UI local para validacao controlada
domains/
suporte-vps-whatsapp/
domain.yaml
knowledge/
prompts/
docs/ # arquitetura, produto, contratos, runbooks e seguranca
archive/ # planos concluidos, relatorios substituidos e roadmaps historicos
migrations/ # scripts SQL e artefatos de evolucao do banco
scripts/ # comandos operacionais
tests/ # testes unitarios e de integracao
- Crie um ambiente virtual.
- Instale as dependencias:
pip install -e ".[dev]"- Copie
.env.examplepara.env. - Rode a API:
uvicorn app.main:app --reloadO pyproject.toml e a unica fonte de dependencias. Instale o projeto e seus
extras diretamente por ele; nao mantenha listas paralelas de pacotes.
Para usar o prototipo local com ChromaDB e CSV:
pip install -e ".[chroma]"Em APP_ENV=development, a API tambem pode servir uma tela local de chat para testes controlados. A V0 tambem pode expor a chat-ui como superficie publica controlada quando ENABLE_PUBLIC_CHAT_UI=true, usando os endpoints POST /web/chat e POST /web/feedback sem enviar X-API-Key ao navegador. Em staging, a tela antiga baseada em ENABLE_CHAT_UI=true continua disponivel apenas para validacao interna com X-LLM-API-Key. Nenhuma dessas superficies substitui integracoes externas como Meta WhatsApp, Hermes ou outros consumidores servidor-servidor.
python -m compileall app tests scripts
python -m pytestComece por Como navegar no projeto. Ele apresenta um percurso inicial curto e direciona cada tipo de tarefa para os documentos necessarios, sem exigir a leitura de toda a base.
- Como contribuir: setup, regras e validacoes.
- Arquitetura: limites e fluxo do sistema.
- Estado da documentacao: fontes ativas de verdade.
- Plano unico do MVP: status e proxima fase.
- Archive: planos concluidos e registros historicos.
Este projeto cresce por dominios. Antes de adicionar comportamento novo, alinhe a mudanca com a arquitetura modular existente e leia o guia de contribuicao.
Ao escrever docs, issues, PRs ou prompts para agentes, preserve o posicionamento do produto: serio, operacional, rastreavel e seguro. Evite prometer autonomia total ou substituir suporte humano; o valor esta em reduzir repeticao, melhorar consistencia e escalar quando falta contexto.

