validador-pedidos-gocase

validador-pedidos-gocase

MCP server that validates orders from a spreadsheet, rejects inconsistent ones with explanations, prioritizes valid orders by deadline urgency, and attempts automatic AI recovery of rejected orders.

Category
访问服务器

README

Validador de Pedidos — GoCase

Automação que atua como filtro de qualidade entre a captação de pedidos e o chão de fábrica: lê a planilha de pedidos, barra o que está inconsistente explicando o motivo, prioriza o que é válido pelo aperto do prazo e ainda tenta recuperar automaticamente, com IA, os pedidos que foram barrados.

Business case para o processo seletivo de Estágio em RPA na GoCase (GoGroup). Área de negócio: Operações de Fábrica.

Serviço no ar: https://validador-pedidos-gocase.onrender.com


O problema

Na produção sob demanda, cada pedido vira uma ordem de produção física. Um pedido com dado quebrado não é só um registro errado — é material personalizado gasto, hora-máquina perdida e cliente sem receber.

Os pedidos chegam de vários canais (site, marketplace, B2B, loja física), cada um com um nível diferente de validação na origem. O resultado é uma planilha onde convivem pedidos perfeitos e pedidos com cliente sem nome, e-mail quebrado, quantidade zerada, valor que não fecha, prazo vencido ou duplicidade.

Conferir isso à mão é lento, cansativo e deixa passar erro sutil — uma diferença de centavos, uma duplicata separada por dezenas de linhas.


Como o operador usa

  1. Abre o formulário no navegador.
  2. Sobe a planilha .xlsx.
  3. Recebe de volta um .zip com as três planilhas prontas.

Nada é instalado na máquina de ninguém: o processamento roda no servidor e o resultado volta pelo navegador.

O formulário é publicado pelo fluxo n8n, que acompanha o projeto em integracoes/ e é importado uma única vez. Quem não utiliza n8n pode consumir a API diretamente — o contrato está no mesmo guia.

Para experimentar sem preparar dados, o repositório inclui exemplo/pedidos_exemplo.xlsx: 50 pedidos, dos quais 10 contêm defeitos representativos dos que ocorrem na operação.

Primeira execução do dia. O serviço está hospedado em plano gratuito e hiberna após alguns minutos sem uso. A primeira chamada leva cerca de 50 segundos para acordar o servidor; as seguintes respondem em menos de 1 segundo. Se o fluxo acusar tempo esgotado na primeira tentativa, basta repetir.


Resultado medido

Lote de 50 pedidos, com 10 problemas reais:

Métrica Valor
Pedidos processados 50
Reprovados na validação 10
Recuperados pela IA 5
Válidos ao final 45 (90%)
Tempo de processamento menos de 1 segundo

Regras de validação

Cada pedido é avaliado contra todas as regras. Um pedido pode acumular vários motivos, concatenados na coluna motivo_rejeicao — a gestão vê a lista completa de problemas de uma vez, não um erro por reprocessamento.

# Campo Regra
1 id_pedido Não vazio e não duplicado. Na duplicata, a 2ª ocorrência é reprovada.
2 cliente Não vazio.
3 email Formato texto@texto.dominio.
4 quantidade Inteiro positivo.
5 valor_unitario Positivo.
6 valor_total Bate com quantidade × valor_unitario (tolerância de R$ 0,02).
7 prazo_entrega Não pode estar no passado.
8 produto Não vazio.
9 sku Não vazio.

Prioridade de produção

Os aprovados recebem dias_restantes e entram numa fila ordenada por urgência — os mais apertados primeiro.

Prioridade Dias até o prazo Cor na planilha
URGENTE 0 a 2 Vermelho claro
ALTA 3 a 5 Laranja claro
NORMAL 6 a 10 Verde claro
BAIXA 11 ou mais Sem cor

O que é entregue

Planilha Conteúdo
pedidos_validados.xlsx Aprovados, na ordem de produção, coloridos por prioridade.
pedidos_rejeitados.xlsx Reprovados, com o motivo exato de cada um.
resumo_execucao.xlsx Métricas do lote: totais, percentuais, prioridades, canais, valores.

Camada de IA — recuperação de pedidos reprovados

Barrar pedido resolve metade do problema. A outra metade é recuperá-lo.

A divisão de trabalho é explícita:

  • Erro mecânico (valor que não fecha, espaço sobrando, e-mail a normalizar) → resolvido por regra, sem IA.
  • Erro semântico (nome faltando, e-mail incompleto) → a IA infere cruzando os outros campos do próprio pedido.
  • Dado impossível de deduzir → sinalizado para revisão humana, nunca inventado.

O que a IA corrigiu na execução real

Pedido Correção De onde deduziu
PED-00003 cliente: '' → 'Camila Rodrigues' do e-mail camila.rodrigues@...
PED-00016 cliente: '' → 'Patricia Gomes' do e-mail patricia.gomes@...
PED-00034 cliente: '' → 'Daniel Oliveira' do e-mail daniel.oliveira@...
PED-00022 email: 'cliente@' → 'yasmin.monteiro@gmail.com' do nome do cliente
PED-00008 email: 'clientegocase.com' → 'cliente@gocase.com' faltava o @

O que ela corretamente não resolveu

Dos 10 reprovados, 5 permaneceram — e é assim que deve ser:

  • 2 duplicatas — exigem decisão humana sobre qual pedido vale.
  • 1 prazo vencido — não é erro de dado, é problema operacional.
  • 2 valores incoerentes — a IA ajustou a quantidade, mas o valor_total não fechou, então o pedido continuou reprovado. A validação não abre exceção para a IA.

Trilha de auditoria

Correção automática só é confiável se for auditável. A IA assina o que fez, dentro das planilhas entregues:

  • Coluna corrigido_por_ia marca os pedidos recuperados.
  • Coluna correcao_ia registra o antes → depois de cada campo alterado.
  • O resumo traz a linha "Pedidos recuperados pela IA".

Deduzir o nome a partir do e-mail é uma inferência plausível, não um dado confirmado. Por isso a trilha existe: a IA acelera a recuperação e a decisão final continua conferível por uma pessoa.


Arquitetura

Responsabilidade única por módulo — cada arquivo faz uma coisa e é testável isoladamente.

Módulo Responsabilidade
src/leitor.py Lê o Excel, tipa colunas e confere o schema esperado.
src/validador.py Aplica as 9 regras; separa aprovados de reprovados; acumula motivos.
src/organizador.py Calcula dias_restantes e prioridade; ordena a fila.
src/relatorio.py Gera as 3 planilhas formatadas.
src/assistente_ia.py Prepara os reprovados para a IA, aplica as correções e marca a autoria.
src/config.py Carrega config.yaml com fallback embutido.
src/agente.py executar_pipeline: o fluxo completo, em uma função só.
src/gerar_dados.py Gera a planilha de demonstração. Ferramenta de teste, não de produção.
api.py Superfície HTTP: validação, download e correção por IA.
mcp_server.py Superfície MCP: 5 ferramentas + 1 prompt para clientes de IA.
main.py Execução por terminal, para desenvolvimento.

Fonte única de verdade. O fluxo vive em executar_pipeline; as métricas são montadas uma vez e reaproveitadas pelo relatório, pelo log e pela API. Nomes, ordem e cores das faixas de prioridade existem apenas no config.yaml.

Tecnologias

Python 3.10+ · pandas e openpyxl (planilhas) · FastAPI e uvicorn (API HTTP) · PyYAML (configuração externa) · httpx (chamada à IA) · MCP (integração com clientes de IA) · Anthropic Claude (correção assistida) · n8n (orquestração low-code) · Render (hospedagem).


Formas de consumo

Uma lógica de validação, três superfícies — sem regra duplicada.

Superfície Para quem Como
n8n Operação Formulário de upload; devolve o .zip no navegador. Workflow pronto em integracoes/.
API HTTP Qualquer sistema HTTP + JSON padrão, sem SDK. Contrato em integracoes/README.md.
MCP Ferramentas de IA 5 ferramentas chamáveis por linguagem natural (ex.: Claude Desktop).

Conectando o MCP a um cliente de IA

O n8n executa a automação em lote; o MCP permite interrogá-la em linguagem natural — "quantos pedidos foram barrados e por quê?". Para habilitar num cliente compatível (Claude Desktop, por exemplo), aponte-o para o servidor:

{
  "mcpServers": {
    "validador-gocase": {
      "command": "python",
      "args": ["mcp_server.py"],
      "cwd": "caminho/para/validador-pedidos-gocase"
    }
  }
}

Ferramentas expostas: validar_pedidos, consultar_resumo, analisar_rejeitados, revalidar_com_correcoes e gerar_dados_exemplo, mais um prompt guia. As duas do meio formam o ciclo de correção assistida: o modelo do próprio cliente propõe as correções e o servidor revalida.

A integração não amarra a ferramenta: por ser HTTP puro, Make, Power Automate ou código próprio consomem a mesma API. O n8n é o caminho documentado e testado, por ser o padrão na GoCase.


Configuração sem código

Regras de negócio ficam fora do código, em config.yaml: tolerância de valor, padrão de e-mail, colunas obrigatórias e as faixas de prioridade (nomes, intervalos e cores). Um gestor ajusta limites sem abrir Python.

Há ainda o mapa_colunas, que traduz os cabeçalhos de um export real do e-commerce/ERP para os nomes esperados — planilha diferente não exige código novo.

Configuração ausente ou inválida não derruba nada: o sistema avisa e usa os padrões embutidos.


Qualidade

testar.py executa 13 verificações de ponta a ponta: geração da planilha, execução do fluxo, existência e conteúdo das 3 planilhas e do log, consistência (aprovados + reprovados = total), presença de motivo em todos os reprovados e o comportamento da API — validação, download do pacote e recusa de planilha fora do formato com erro legível em vez de falha genérica — e o MCP Server, que é exercitado pelo protocolo real: handshake, catálogo de ferramentas e uma ferramenta executada de ponta a ponta.

Outras salvaguardas embutidas: relatório aberto no Excel é tratado com novas tentativas e mensagem clara; correção malformada vinda da IA é descartada sem derrubar o lote; arquivos temporários do servidor expiram sozinhos em 1 hora.


Escopo e evolução

Escopo desta entrega. A API está publicada sem autenticação, por decisão de escopo do business case. A URL deve ser usada apenas com a planilha de demonstração (dados sintéticos); pedidos reais contêm dados pessoais e exigem autenticação por chave antes de trafegar por uma URL aberta. É um passo consciente do roadmap, não um esquecimento.

Evolução natural. Ler os pedidos direto do ERP em vez de planilha; escrever o status de volta no sistema de origem; notificação ativa para a gestão quando o índice de reprovação subir; histórico entre lotes para detectar duplicidade que atravessa execuções.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选