Fluxo principal
- Contexto e anexos
- Informações complementares
- Revisão e aprovação do resumo
- Geração, revisão e aprovação da proposta
Frontend — etapas e edição assistida
Next.js, React e TypeScript organizam entrada de contexto, arquivos, informações faltantes e revisão. Um estado compartilhado acompanha as etapas e os identificadores de tarefas; a interface lê o stream de status de processamento. Mantine e o editor BlockNote apoiam a revisão do documento. Há superfícies administrativas para propostas, templates, arquivos e usuários, além do fluxo de exportação da proposta aprovada.
Backend — domínio e processamento de documentos
FastAPI coordena chats, propostas, templates e transições de revisão e aprovação, usando identidade e dados do Supabase. Celery com RabbitMQ processa documentos e anexos; o backend expõe status de tarefas por Server-Sent Events. Aprovar o resumo desencadeia resolução do template e geração multiagente. A API aguarda a geração; os workers cuidam do processamento de documentos e anexos.
IA — recuperação híbrida e agentes
Weaviate combina busca textual e vetorial sobre o corpus institucional e coleções temporárias de anexos do chat. O contexto é construído com template, dados do projeto e respostas do usuário; anexos recebem prioridade e há tratamento de conflitos com trechos da base. Embeddings Voyage AI apoiam a indexação. CrewAI organiza tarefas de geração, edição e revisão. A proveniência de trechos, arquivos e páginas é persistida para rastreabilidade e auditoria.
Dados — estado relacional, arquivos e índice vetorial
PostgreSQL/Supabase mantém chats, propostas, templates, etapas e evidências; Supabase Storage mantém arquivos. Um serviço de ingestão separado recebe documentos institucionais, enfileira extração e limpeza, divide texto em chunks e grava vetores no Weaviate e Markdown no Storage. Hash SHA-256 e verificações dos artefatos permitem deduplicar ingestões completas e reparar parciais. Anexos do chat usam outro caminho de processamento, com Docling/OCR e coleções temporárias, distinto do corpus institucional.