image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF

HL

Henrique Lara22/08/2025 14:00
Compartilhe

Automação Inteligente de Contratos: Extraindo Estrutura de Documentos Complexos com IA e RAG

    Introdução

    Contratos são o alicerce de qualquer negócio. Seja na indústria da construção civil, em empresas de tecnologia ou em operações financeiras, são eles que formalizam acordos, estabelecem responsabilidades e definem valores. Apesar dessa centralidade, a forma como lidamos com contratos ainda é antiquada: documentos longos, geralmente em PDF, lidos manualmente, com interpretação lenta e sujeita a erros humanos.

    A pergunta inevitável surge: por que ainda lidamos com contratos como se estivéssemos no século passado, se já existem ferramentas de inteligência artificial capazes de compreender e organizar linguagem natural?

    Neste artigo, vamos explorar uma arquitetura prática que une RAG (Retrieval Augmented Generation) com modelos de linguagem (LLMs) para automatizar a extração de dados contratuais. Você verá como pegar contratos em PDF, convertê-los em dados estruturados e integrá-los a sistemas corporativos. Mais do que isso: vamos discutir riscos, limitações, casos de uso e o impacto estratégico dessa abordagem.

    O problema da heterogeneidade contratual

    Diferentemente das notas fiscais eletrônicas, que possuem layouts e schemas XML definidos pela legislação, contratos não seguem padrão algum.

    Algumas diferenças típicas incluem:

    • Estrutura do documento: uns usam cláusulas numeradas (1.1, 1.2), outros apenas subtítulos em negrito.
    • Forma de exibir valores: pode estar em tabela ou em parágrafo corrido, às vezes com moeda explícita, outras vezes só com “R$”.
    • Identificação das partes: algumas empresas usam razão social completa, outras só fantasia, e ainda há casos em que só o CNPJ é citado.
    • Assinaturas: podem estar no final, em páginas separadas ou em certificados digitais.
    • Cláusulas críticas: confidencialidade, multa de rescisão e foro jurídico aparecem com redações diferentes.

    Essa diversidade torna impossível criar um único regex ou um extrator baseado apenas em posição. A única saída viável é interpretação semântica, onde a máquina realmente “entende” o que está escrito — e isso só é possível com IA.

    Arquitetura da solução

    A arquitetura que propomos tem cinco camadas principais:

    1. Ingestão de PDF:
    2. O contrato é carregado, texto e tabelas são extraídos, e um hash é gerado para garantir rastreabilidade.
    3. Pré-processamento:
    4. O texto é dividido em segmentos (chunks) e vetorizado com embeddings semânticos (SentenceTransformers).
    5. Recuperação de contexto (RAG):
    6. Dada uma pergunta (“Qual o valor total do contrato?”), recuperamos os trechos mais relevantes via FAISS.
    7. Interpretação via LLM:
    8. O modelo GPT recebe o contexto e responde em JSON conforme um schema predefinido.
    9. Validação e auditoria:
    10. Antes de registrar os dados, validamos coerência (CNPJs válidos, prazos consistentes, somatória de valores etc.).

    Essa arquitetura garante precisão, escalabilidade e confiabilidade.

    O Schema como contrato digital

    Para transformar contratos em dados utilizáveis, definimos um schema de saída. Ele é flexível e adaptável, mas cobre os pontos mais críticos:

    {
    "contrato": {
      "numero": "",
      "cliente": "",
      "cnpj_cpf": "",
      "data_assinatura": "",
      "prazo_meses": 0,
      "valor_total": 0.0,
      "objeto": "",
      "vigencia_inicio": "",
      "vigencia_fim": "",
      "forma_pagamento": "",
      "periodicidade_pagamento": "",
      "moeda": "",
      "status": ""
    },
    "responsavel": {
      "nome": "",
      "cargo": "",
      "email": "",
      "telefone": "",
      "documento": ""
    },
    "condicoes": {
      "multa_rescisao": "",
      "reajuste": "",
      "jurisdicao": "",
      "confidencialidade": "",
      "renovacao_automatica": false
    },
    "assinaturas": [],
    "anexos": {
      "pdf_hash": ""
    },
    "alertas": []
    }
    

    Esse schema vira uma espécie de contrato digital paralelo: toda vez que um documento é processado, temos sua versão “estruturada”, pronta para ERP, CRM ou jurídico.

    Pré-processamento: do PDF ao vetor

    Trecho ilustrativo:

    import pdfplumber
    
    def ler_pdf(path: str) -> str:
      texto = []
      with pdfplumber.open(path) as pdf:
          for p in pdf.pages:
              texto.append(p.extract_text() or "")
      return "\n".join(texto)
    

    Depois, criamos chunks de 900 caracteres com sobreposição de 120, garantindo contexto:

    def chunk_text(txt, tamanho=900, overlap=120):
      out, i, n = [], 0, len(txt)
      while i < n:
          out.append(txt[i:i+tamanho])
          i += tamanho - overlap
      return out
    

    Esses trechos são vetorizados com SentenceTransformers e indexados com FAISS.

    Recuperação de contexto

    Com o índice pronto, podemos buscar trechos relevantes.

    Exemplo de pergunta: “Condições de rescisão”.

    def buscar_contexto(pergunta, index, chunks, topk=4):
      q = EMBEDDER.encode([pergunta], convert_to_numpy=True)
      faiss.normalize_L2(q)
      D, I = index.search(q, topk)
      return "\n---\n".join([chunks[i] for i in I[0]])
    

    Interpretação via LLM

    O prompt força saída em JSON:

    Você é um auditor de contratos.  
    Use apenas o CONTEXTO fornecido.  
    Se não encontrar um campo, deixe-o vazio ou zero.  
    Responda APENAS com JSON válido conforme o SCHEMA.
    

    Isso minimiza riscos de respostas em linguagem natural.

    A saída é sempre um JSON compatível.

    Validação e auditoria

    Exemplo de validações:

    • CNPJ válido: regex garante formato.
    • Prazos coerentes: início < fim.
    • Moeda suportada: BRL, USD, EUR.
    • Confidencialidade: se ausente, alerta é gerado.

    Esses guardrails são críticos para confiança.

    Casos de uso comparativos

    Caso 1: Contrato SaaS

    • Prazo: 12 meses.
    • Valor total: R$ 180.000, pagos mensalmente.
    • Objeto: licença de software + suporte.
    • Cláusula crítica: confidencialidade e LGPD.

    O sistema extrai corretamente o valor, periodicidade de pagamento e cláusulas sensíveis.

    Caso 2: Contrato de obra civil

    • Prazo: 24 meses.
    • Valor total: R$ 12.000.000.
    • Objeto: execução de obra de fundação.
    • Condições: reajuste anual pelo INCC, multa de 10% por rescisão.

    Aqui o desafio é capturar reajustes e índices setoriais — o modelo precisa estar treinado para reconhecer termos técnicos da construção.

    Integração com sistemas corporativos

    Com o JSON estruturado, abrimos várias possibilidades:

    • ERP: valores de contrato alimentam contas a pagar e projeções de fluxo de caixa.
    • Jurídico: cláusulas de confidencialidade e foro alimentam bases de compliance.
    • Auditoria: alertas de contratos sem cláusula de multa são priorizados.
    • Gestão de riscos: vigências permitem prever renovações automáticas.

    Performance e custo

    Um contrato médio tem 15 páginas (~8.000 tokens).

    Processá-lo diretamente em um LLM seria caro.

    Com RAG, enviamos apenas 2.000 tokens de contexto.

    Comparativo (simulado):

    • Sem RAG: 15 páginas → custo ~US$ 0,80 por contrato.
    • Com RAG: 25% dos tokens → custo ~US$ 0,20.

    Em escala (milhares de contratos), a diferença é significativa.

    Riscos e limitações

    • Ambiguidade jurídica: o modelo pode interpretar incorretamente termos como “renovação tácita”.
    • OCR ruim: contratos digitalizados em má qualidade prejudicam extração.
    • Dependência de prompt: mudanças no schema exigem ajuste no prompt.
    • Dados sensíveis: sempre considerar compliance com LGPD.

    Futuro da análise contratual

    O que hoje é um pipeline técnico pode evoluir para:

    • Dashboards jurídicos: mapas de risco em tempo real.
    • Comparação automática de contratos: detectar cláusulas ausentes.
    • Negociação assistida: IA sugerindo redações alternativas.
    • Assinatura digital integrada: cruzamento com sistemas de certificação.

    Em poucos anos, o ciclo contrato-assinatura-execução poderá ser 100% digital e monitorado por IA.

    Conclusão

    A extração inteligente de contratos não é apenas automação: é um novo paradigma de governança documental.

    Combinando RAG + LLM + validação, transformamos contratos de documentos estáticos em ativos digitais dinâmicos, prontos para análise, auditoria e integração.

    As empresas que dominarem essa abordagem terão:

    • Agilidade (dias de revisão viram minutos).
    • Confiabilidade (erros manuais minimizados).
    • Escalabilidade (milhares de contratos processados em lote).

    Mais do que tecnologia, trata-se de estratégia empresarial.

    Afinal, contratos são a base de qualquer negócio — e agora também podem ser a base de inteligência.

    Compartilhe
    Recomendados para você
    Ri Happy - Front-end do Zero #2
    Avanade - Back-end com .NET e IA
    Akad - Fullstack Developer
    Comentários (0)