Como esta prova de conceito funciona.
Esta é uma versão funcional reduzida da plataforma. Parte do processo já roda de verdade; parte é simulada de propósito. Aqui está exatamente onde essa fronteira passa — sem maquiagem.
A fronteira: real vs. simulado
O ponto da prova de conceito é demonstrar a capacidade técnica central — ler um cardápio qualquer e confrontá-lo com o mercado — sem investir ainda na parte mais cara e frágil (a coleta de concorrentes).
Leitura do seu cardápio
- Extração estruturada do cardápio enviado (foto, PDF ou texto) por um modelo de visão.
- Reconhecimento semântico: "Bruschetta Pomodoro", "Bruschetta de Tomate" e "Bruschetta Clássica" viram o mesmo item comparável.
- Cálculo da posição de cada prato contra a distribuição de preço da região (mediana, quartis, variação).
O mercado da região
- A base de concorrentes é pré-carregada (~22 estabelecimentos de uma região de São Paulo).
- Em produção, essa camada é alimentada por coleta contínua de cardápios — o ponto caro e sujeito a bloqueio que fica fora do escopo da demonstração.
- Trocar a base simulada pela coleta real não muda nada do que você vê funcionando: a leitura e o cálculo já são os definitivos.
O pipeline, passo a passo
O que acontece entre enviar o cardápio e ver o comparativo.
Entrada
Você cola o texto ou envia a foto do cardápio em /app.
Extração
O modelo de visão lê a imagem/texto e devolve item, descrição e preço estruturados.
Normalização
Cada item é casado semanticamente com o catálogo de itens comparáveis da região.
Mercado
Os preços dos concorrentes vêm de uma base pré-carregada (em produção: coleta contínua).
Comparativo
Mediana, quartis e variação por item, com leitura por linha. Renderizado no relatório.
O servidor mínimo
Um único serviço Node + Express, sem banco e sem login nesta fase. Serve as páginas estáticas e expõe um
endpoint de análise. Roda em container Docker na infraestrutura did.lu, atrás de HTTPS automático, em
gastro.did.lu.
Endpoint central: POST /api/analyze recebe { text } ou { image },
chama o modelo, cruza com a base e devolve o comparativo. GET /api/market expõe a distribuição
da região; GET /api/health é o healthcheck.
O que a versão de produção acrescenta
Nada do que está acima muda. O que entra é o que ficou de fora por escolha:
Coleta real e contínua de cardápios de concorrentes (substitui a base simulada) · persistência em banco com histórico de relatórios · conta de usuário · cota e cobrança · e, com massa de dados suficiente, o mapa público de preços por região.