Arquitetura do VisionApp: como construímos uma plataforma de licitações com IA
Por dentro da arquitetura do VisionApp — monitoramento de editais, matching com LLM, pipeline Kanban e assistente IA que resume editais em 30 segundos.
O problema que resolvemos
Empresas que participam de licitações públicas enfrentam um problema brutal: milhares de editais publicados diariamente em portais diferentes, com formatos inconsistentes, prazos curtos e documentos de 200+ páginas. A maioria descobre oportunidades tarde demais — ou perde horas analisando editais irrelevantes.
O VisionApp nasceu pra resolver isso: uma plataforma que monitora, filtra, analisa e prioriza licitações automaticamente usando IA.
Decisões de arquitetura
Stack core
- Next.js 14 (App Router) — SSR para SEO + client components para interatividade
- Python — backend de IA, scrapers e pipelines de dados
- PostgreSQL com pgvector — banco relacional + busca vetorial para embeddings
- Redis — cache, filas de jobs e sessões
- LLM (via API) — análise de documentos e assistente conversacional
Por que Next.js + Python (e não monolito)?
A UI precisa de interatividade rica (Kanban, chat ao vivo, dashboards) — Next.js com React é ideal pra isso. Mas o processamento de IA (embeddings, parsing de PDFs, matching) é CPU-intensivo e se beneficia do ecossistema Python (LangChain, PyPDF, scikit-learn). Separamos em dois serviços comunicando via API REST.
Como funciona o matching IA
O core do VisionApp é o matching engine — dado o perfil de uma empresa (CNAEs, certidões, stack, região, histórico), ele recebe editais novos e atribui um score de compatibilidade de 0 a 100.
Fluxo:
- Scraper coleta editais de portais gov (ComprasNet, BEC, portais estaduais)
- Parser extrai texto dos PDFs e normaliza (título, objeto, valor, prazo, requisitos)
- Embedder gera vetor semântico do edital usando modelo de embeddings
- Matcher calcula similaridade coseno entre o vetor do edital e os vetores do perfil da empresa
- Ranker aplica regras de negócio (prazo, valor mínimo, região, exclusões) e gera score final
- Notifier envia alertas por email, push e WhatsApp para matches acima do threshold
Watch Queries
Usuários criam "Watch Queries" — perfis de busca salvos com filtros de palavras-chave, UFs, faixa de valor e modalidade. O matcher roda contra todas as watch queries de todos os clientes a cada ciclo de scraping (a cada hora).
O assistente IA
O assistente conversacional do VisionApp usa RAG (Retrieval-Augmented Generation):
- Usuário pergunta: "Qual o prazo de impugnação do edital do FNDE?"
- Sistema busca o documento do edital no banco vetorial
- Chunks relevantes são recuperados e injetados no prompt
- LLM responde com base no conteúdo real do edital — não alucina
O sistema também gera briefings executivos automaticamente: resume um edital de 200 páginas em um documento de 1 página com: objeto, valor estimado, requisitos técnicos, prazos, riscos e recomendação.
Resultado
O VisionApp processa milhares de editais por dia, com tempo médio de matching de 2.3 segundos por edital. Empresas que usam a plataforma reportam redução de 70% no tempo gasto analisando editais e aumento de 3x na taxa de participação em licitações relevantes.
Stack completa
Next.js · React · Python · FastAPI · PostgreSQL · pgvector · Redis · LangChain · OpenAI · Docker · AWS
VisionApp é um produto da Bradata. Conheça a plataforma ou fale conosco.
Posts relacionados
Como migramos 4 bilhões de linhas para Azure Synapse
LLM integrado em sistemas empresariais: como fazemos na Bradata
Como construímos um sistema de gestão escolar do zero
Precisa de um talento tech agora?
Fale com a Bradata e receba uma proposta em 24 horas úteis.