A automação de processos de sinistro, tickets de suporte e documentos de KYC pode rodar inteiramente dentro da própria infraestrutura de uma empresa, sem nenhum documento enviado a um provedor externo de modelos. O modelo de linguagem é uma etapa de sete, ao lado de classificação, extração de texto e de layout, validação, uma fila de revisão, avaliação por campo e um registro de auditoria. Este artigo mostra como cada etapa é construída, o que muda entre sinistros, tickets e KYC, e o que perguntar a uma empresa que se oferece para construir isso.
Processos de sinistro, tickets de suporte e documentos de KYC têm o mesmo problema em comum: pessoas os leem para preencher campos de que outro sistema precisa. Um sinistro vira um número de apólice, uma data do sinistro e itens da fatura; um ticket, uma categoria e um cliente; um documento de identidade, um nome, uma data de nascimento e uma data de validade. O requisito que vem com o trabalho costuma ser declarado antes de qualquer outra coisa: os documentos não podem ir para a OpenAI nem para qualquer outro provedor externo de modelos.
Onde o modelo roda é uma decisão à parte, comparada em um artigo anterior deste blog. Este artigo parte de um modelo de pesos abertos servido dentro da sua infraestrutura e descreve o pipeline ao redor dele, da ingestão ao registro que outro sistema consome. Ele explica a mecânica; não é um estudo de caso.
A resposta curta: o modelo de linguagem é uma etapa de sete, e todas as sete rodam dentro da sua infraestrutura. Os documentos são classificados na ingestão; texto e layout são extraídos com OCR ou um modelo de layout antes de qualquer chamada ao modelo; um motor de serving auto-hospedado restringe a saída a um schema por tipo de documento; o código valida o registro contra o schema e as regras de negócio; campos que falham ou são incertos vão para uma fila de revisão humana cujas correções alimentam o conjunto de avaliação; a acurácia é medida por campo e por tipo de documento; e cada campo mantém um registro do modelo, do prompt e da versão do schema que o produziram. Sinistros, tickets e KYC compartilham esse esqueleto e diferem nas regras, nos dados pessoais e na retenção. O que a amBrain pode sustentar publicamente sobre o próprio trabalho com LLM, na íntegra: levamos à produção uma integração de LLM dentro do perímetro de FinTech de um cliente: extração e normalização de avisos não estruturados de corretoras e de venues — eventos corporativos, alterações de instrumentos e de margem — em registros estruturados que o sistema de trading consome. O cliente não é nomeado, não é divulgado quais dessas etapas foram usadas nesse projeto e este artigo não é um estudo de caso dele.
Manter os dados longe de provedores externos é uma propriedade do pipeline inteiro, não da chamada ao modelo: o motor de OCR, a ferramenta de revisão, o conjunto de avaliação, o armazenamento de auditoria e os logs guardam todos o documento ou algo derivado dele, como o artigo anterior sobre pilotos lista na íntegra.
Todas as etapas seguintes dependem do tipo de documento: o schema, as regras, os revisores e o prazo de retenção, então a classificação vem primeiro e decide a rota. Um processo de sinistro que chega por e-mail pode conter um formulário de aviso de sinistro, faturas, fotos e um laudo médico; cada anexo é classificado separadamente e vinculado ao mesmo processo.
Um PDF gerado por software traz uma camada de texto que pode ser lida diretamente. Uma digitalização ou uma foto de celular traz apenas pixels, e algo precisa transformá-los em caracteres com posições.
Os motores open source para esta etapa rodam localmente. A documentação de linha de comando do Tesseract mostra saída TSV com uma coluna de confiança para cada palavra e saída hOCR com um atributo de confiança por palavra, um sinal por palavra que a etapa de roteamento pode usar. O Docling, uma biblioteca de conversão open source sob a licença MIT, lista entre os seus recursos para PDF o layout da página, a ordem de leitura e a estrutura de tabelas, além de suporte a OCR para PDFs digitalizados e imagens e execução local para dados sensíveis e ambientes isolados (air-gapped).
Um modelo de visão e linguagem pode ler a imagem da página em vez disso: a documentação do vLLM sobre entradas multimodais afirma que a entrada de imagens é suportada de acordo com a OpenAI Vision API. O que funciona melhor é medido nos seus documentos, lembrando que uma etapa de OCR separada devolve as posições das palavras e a confiança delas, e um modelo que lê uma imagem não.
Cada tipo de documento recebe o seu próprio schema de saída, versionado como código. A documentação do vLLM sobre structured outputs lista cinco tipos de restrição: choice, regex, um JSON schema, uma gramática livre de contexto e uma structural tag, com backends que incluem xgrammar, guidance, outlines e lm-format-enforcer, e um padrão, auto, que tenta escolher um backend adequado com base nos detalhes da requisição.
Valide a saída de novo no código da aplicação com um validador de JSON Schema comum. Os backends diferem: a mesma página observa que xgrammar, guidance e outlines usam expressões regulares no estilo do Rust, enquanto o lm-format-enforcer usa o módulo re do Python, e que, para modelos Qwen3 Coder com raciocínio (reasoning) habilitado, as structured outputs podem ficar desabilitadas se o conteúdo do raciocínio não for separado em um campo próprio. Uma geração interrompida pelo limite de tokens também termina no meio do registro. A segunda verificação é barata.
Um registro que se encaixa no schema ainda pode estar errado. As verificações que pegam isso são as que o back-office aplica hoje à mão, escritas como código por tipo de documento:
Documentos de identidade vêm com o seu próprio validador. O ICAO Doc 9303, a especificação de documentos de viagem de leitura mecânica, define dígitos verificadores na zona de leitura mecânica calculados em módulo 10 com uma ponderação 7, 3, 1 que se repete continuamente, com as letras de A a Z contando como 10 a 35 e o caractere de preenchimento como zero, e afirma que os dígitos verificadores permitem que os leitores verifiquem se os dados foram interpretados corretamente.
O roteamento é decidido por campo, não por documento: um sinistro cujo total da fatura falha enquanto todo o resto passa envia um campo para uma pessoa, não o processo inteiro. Os sinais:
A declaração de certeza do próprio modelo fica de fora de propósito; um artigo anterior deste blog explica por que ela é um filtro fraco.
A tela de revisão mostra a página com as palavras citadas destacadas ao lado do valor proposto, para que o revisor confira em vez de reler. Cada correção é armazenada por campo com o valor antigo, o valor novo, o revisor e um motivo escolhido de uma lista curta. Depois que uma segunda pessoa a confirma, ela entra no conjunto de avaliação, mas nunca na parte congelada com base na qual as decisões de release são tomadas.
Um único número de acurácia para o pipeline esconde o resultado que importa, como datas de validade falhando nas carteiras de identidade de um país enquanto todos os outros campos passam. Meça pelos mesmos eixos que o roteamento usa:
Uma release, seja um novo modelo, prompt, schema, versão de OCR ou validador, é pontuada no conjunto congelado antes de entrar em produção, e o critério de aprovação é por campo: nenhum campo de nenhum tipo de documento fica abaixo da sua nota de corte, mesmo que a média suba. A construção do primeiro conjunto rotulado é tratada no artigo anterior sobre pilotos que nunca chegaram à produção.
Um sinistro contestado ou a pergunta de um auditor sobre uma identidade aceita diz respeito a um campo em um documento. O registro que responde a isso é gravado enquanto o pipeline roda, uma entrada por campo, em um armazenamento append-only:
O AI Act da UE estabelece um requisito de registro de eventos para os sistemas que trata como de alto risco: o artigo 12(1) determina que os sistemas de IA de alto risco devem permitir tecnicamente o registro automático de eventos (logs) ao longo da vida útil do sistema. O anexo III lista os usos de alto risco, entre eles avaliar a capacidade de crédito de pessoas físicas, exceto para detectar fraude financeira, e a avaliação de riscos e a precificação em seguros de vida e de saúde; o artigo 6(3) define quando um sistema da lista ainda assim não é considerado de alto risco, por exemplo quando executa uma tarefa processual restrita. Se um determinado pipeline está no escopo é uma questão para o time jurídico do cliente; um registro por campo gravado em tempo de execução é útil de qualquer forma.
Um pipeline copia dados pessoais para mais lugares do que a pasta original. O artigo 5(1)(c) do GDPR exige que os dados pessoais sejam adequados, pertinentes e limitados ao que é necessário em relação às finalidades para as quais são tratados. O artigo 25(2) pede medidas que assegurem que, por padrão, só sejam tratados os dados pessoais necessários para cada finalidade específica, e aplica isso à quantidade de dados coletados, à extensão do tratamento, ao prazo de conservação e à acessibilidade. Em termos de pipeline:
O OWASP Logging Cheat Sheet inclui dados pessoais sensíveis e algumas formas de informação de identificação pessoal, como dados de saúde e identificadores governamentais, entre os dados que normalmente não devem ser registrados diretamente em logs, e diz que esses dados devem, em vez disso, ser removidos, mascarados, sanitizados, convertidos em hash ou criptografados.
A retenção varia por tipo de documento e, para KYC na UE, é definida pela legislação de prevenção à lavagem de dinheiro. O artigo 77 do Regulamento (UE) 2024/1624, aplicável a partir de 10 de julho de 2027, exige que as entidades obrigadas conservem uma cópia dos documentos e das informações obtidos na diligência devida em relação ao cliente e garantam que esses registros não tenham trechos suprimidos. Ele fixa um prazo de conservação de cinco anos, contados a partir do fim da relação de negócio ou da data de uma transação ocasional, após o qual os dados pessoais devem ser apagados, ressalvadas as exceções previstas no mesmo artigo. O registro de KYC original permanece completo no sistema de registro oficial; as cópias do próprio pipeline, dos traces aos snapshots de revisão, são minimizadas e apagadas em um cronograma próprio mais curto.
O volume do back-office é irregular: um único evento pode afetar muitos segurados de uma vez, e uma indisponibilidade enche a fila de tickets. Filas, backpressure e um fallback manual são tratados no artigo anterior sobre pilotos; o que é específico de um pipeline de documentos auto-hospedado:
A capacidade de aceleradores dentro da sua própria infraestrutura é fixa no curto prazo, então a ordem em que as filas cedem é decidida com antecedência, não durante o pico.
Manter os documentos longe de um provedor externo de modelos é decidido por onde o modelo roda. Se o pipeline merece confiança para lidar com eles é decidido por tudo o que está ao redor do modelo: o schema, as regras, a fila de revisão e o registro de quem produziu cada campo.
A pergunta tem três tipos de resposta, e eles vendem coisas diferentes. Fornecedores de processamento de documentos vendem uma plataforma, às vezes instalável on-premises, que você configura para os seus documentos. Provedores de nuvem vendem serviços gerenciados que rodam na infraestrutura deles. Empresas de engenharia constroem o pipeline no seu ambiente a partir de componentes abertos e das suas regras.
Seja qual for o tipo com que você fale, estas perguntas mostram se um time já construiu isso antes:
Uma resposta que fica no genérico na primeira e na quinta pergunta significa que o caminho de dados e a trilha de auditoria ainda não foram projetados.
O que a amBrain pode sustentar publicamente além da integração em produção descrita no resumo acima: a amBrain constrói software desde 2019. Trabalhamos em três formatos: entrega completa, time dedicado ou engenheiros embarcados no seu time. O cliente mantém a propriedade integral do produto e do código, exceto dos nossos componentes reutilizáveis.
Este artigo explica como um pipeline desse tipo funciona; ele não é um estudo de caso, não cita clientes e não afirma que a amBrain construiu um sistema de sinistros, de tickets ou de KYC. O trabalho em produção citado acima é a extração de avisos de corretoras e de venues para um sistema de trading.
Então o primeiro passo não é escolher um modelo. É registrar por escrito, para um tipo de documento, o schema, as regras que o verificam e os campos que uma pessoa sempre precisa ver, antes que qualquer documento chegue ao pipeline.
Traga sua arquitetura atual e o modo de falha que preocupa você, e vamos analisá-lo juntos em meia hora.