DEV Community

Cover image for Como Automatizar a Redação de PII e Extração de Dados com IA Usando Python (API Serverless)
NjC-IA
NjC-IA

Posted on

Como Automatizar a Redação de PII e Extração de Dados com IA Usando Python (API Serverless)

Lidar com documentos não estruturados é uma das tarefas mais tediosas da engenharia de software. Seja construindo uma plataforma de RH, um ERP contábil ou um app de legal tech, você inevitavelmente enfrenta duas grandes dores de cabeça: Privacidade de Dados (conformidade com LGPD/GDPR) e Extração de Dados Estruturados.

Como compartilhar um currículo com segurança sem vazar o telefone do candidato? Como extrair o valor total de impostos de uma nota fiscal em PDF bagunçada sem escrever centenas de regras frágeis de Regex?

É aí que entra a NeoPII & Extract API. Neste artigo, vou te mostrar como usar essa API serverless, alimentada por IA, para sanitizar documentos e extrair dados estruturados em JSON usando Python.


🌟 As Oportunidades: O Que Você Pode Construir?

A API é dividida em dois motores principais:

1. NeoShield (Anonimização de Dados)

Esse motor recebe um arquivo, escaneia usando NLP e Regex avançado, e substitui Informações Pessoais Identificáveis (PII) — como e-mails, cartões de crédito e CPFs — por tags seguras (ex: [EMAIL], [CPF]). O grande diferencial? Ele suporta nativamente e reconstrói arquivos binários como .DOCX, .XLSX e .PDF. Ele não retorna apenas texto plano; ele devolve sua planilha Excel ou documento Word original com a mesma formatação, apenas com os dados sensíveis devidamente mascarados.

Casos de uso: Pipelines de recrutamento sem viés, protocolos de documentos legais públicos e compartilhamento seguro de dados.

2. Neo-Struct (Extração de Dados com IA)

Alimentado por IA generativa, esse endpoint lê arquivos não estruturados e força a saída em um schema JSON rígido que você define. Sem alucinações da IA, sem JSON quebrado.

Casos de uso: Automatização de entrada de dados de notas fiscais, extração de cláusulas de contratos e digitalização de registros históricos bagunçados.


💻 Tutorial: Implementação em Python

Vamos colocar a mão na massa. Primeiro, certifique-se de ter a biblioteca requests instalada:

pip install requests
Enter fullscreen mode Exit fullscreen mode

Cenário A: Mascarando um Documento Confidencial

Ao trabalhar com APIs que aceitam arquivos, a maior armadilha em Python é como a biblioteca requests lida com multipart/form-data. Para garantir que o backend serverless interprete seu arquivo corretamente, sempre envie o arquivo como uma tupla (filename, file_object, mime_type).

Veja como mascarar um arquivo .docx:

import requests
import os

API_URL = "https://neopii-extract.p.rapidapi.com/mask_file"
HEADERS = {
    "X-RapidAPI-Host": "neopii-extract.p.rapidapi.com",
    "X-RapidAPI-Key": "SUA_CHAVE_RAPIDAPI"
}

file_path = "contrato_confidencial.docx"

with open(file_path, "rb") as f:
    # Dica: Use o formato de tupla para garantir a integridade do boundary
    files = {"file": (os.path.basename(file_path), f, "application/octet-stream")}

    print("Anonimizando documento...")
    response = requests.post(API_URL, files=files, headers=HEADERS)

    if response.status_code == 200:
        with open("contrato_mascarado.docx", "wb") as out:
            out.write(response.content)
        print("Sucesso! O documento foi sanitizado e salvo.")
    else:
        print(f"Erro: {response.text}")
Enter fullscreen mode Exit fullscreen mode

Cenário B: Extraindo JSON Estruturado de um PDF

Imagine que você tem uma nota fiscal em PDF bagunçada e só precisa do nome do fornecedor, do valor total e da data de vencimento. Basta declarar um schema JSON e deixar a IA fazer o trabalho pesado.

import requests
import json
import os

API_URL = "https://neopii-extract.p.rapidapi.com/extract"
HEADERS = {
    "X-RapidAPI-Host": "neopii-extract.p.rapidapi.com",
    "X-RapidAPI-Key": "SUA_CHAVE_RAPIDAPI"
}

file_path = "nota_fiscal.pdf"

# Defina a estrutura exata de dados que você quer que a IA retorne
meu_schema = json.dumps({
    "nome_fornecedor": "string",
    "valor_total": "number",
    "data_vencimento": "string (formato ISO)"
})

with open(file_path, "rb") as f:
    files = {"file": (os.path.basename(file_path), f, "application/octet-stream")}
    data = {"schema": meu_schema}

    print("Extraindo dados via IA...")
    response = requests.post(API_URL, files=files, data=data, headers=HEADERS)

    if response.status_code == 200:
        dados_estruturados = response.json()
        print("\nExtração Completa:")
        print(json.dumps(dados_estruturados, indent=2))
    else:
        print(f"Erro: {response.text}")
Enter fullscreen mode Exit fullscreen mode

⚠️ Limitações Técnicas e Boas Práticas

Antes de ir para produção, há algumas restrições arquiteturais que você deve ter em mente:

1. "Cold Starts" Serverless

A API é construída em arquitetura serverless para garantir escalabilidade. Se a API não tiver sido chamada por um tempo, a primeira requisição pode levar cerca de 10 a 15 segundos para carregar as bibliotecas pesadas de NLP (como SpaCy) na memória. As requisições subsequentes, porém, serão extremamente rápidas (geralmente abaixo de 2 segundos).

Boa prática: Implemente um mecanismo de retry ou um ping em background para o endpoint /health para manter o motor aquecido durante o horário comercial.

2. Janela de Contexto (Limites de Tokens)

O endpoint de extração por IA (/extract) opera com um limite de aproximadamente 15.000 tokens. Se você enviar um PDF altamente denso de 50 páginas, o texto será truncado para caber na janela de contexto, o que pode resultar em dados faltantes.

Boa prática: Se você tem documentos muito grandes, divida-os em partes menores ou garanta que o tamanho do arquivo seja razoável.

3. Limites de Tamanho de Arquivo

Para evitar timeouts e garantir baixa latência, a API impõe limites rígidos de tamanho:

  • PDF: 10 MB
  • DOCX: 5 MB
  • XLSX: 3 MB

- TXT / JSON / CSV: 1–2 MB

Considerações Finais

Os dias de escrever Regex interminável para parsear PDFs ou arriscar vazamento de dados no processamento de arquivos acabaram. Combinando reconstrução nativa de binários com extração baseada em LLM, você pode construir aplicações altamente seguras e de nível enterprise em minutos.

Pronto para experimentar? Conheça mais sobre o serviço, veja demos e a documentação completa no site oficial do NeoPII. Quando estiver pronto, pegue sua chave de API e teste gratuitamente no RapidAPI Hub. Happy coding! 🚀

Top comments (0)