Skip to main content

Biblioteca para validação de documentos e contratos brasileiros

Project description

DeepRead Contract 📄

PyPI version Python 3.9+ License: MIT

Biblioteca Python para validação de documentos e contratos brasileiros.

Consulta dados de empresas na Receita Federal e valida:

  • ✅ CNPJ (situação cadastral)
  • ✅ Razão Social
  • ✅ Endereços
  • ✅ Poder de assinatura (QSA)

Instalação

pip install deepread-contract

Uso Rápido

Consultar CNPJ

from deepread_contract import consultar_cnpj, validar_cnpj

# Validar formato
if validar_cnpj("33.000.167/0001-01"):
    # Consultar na Receita Federal
    dados = consultar_cnpj("33.000.167/0001-01")
    
    print(dados["razao_social"])  # PETROLEO BRASILEIRO S A PETROBRAS
    print(dados["situacao"])       # ATIVA
    print(dados["socios"])         # Lista de sócios/administradores

Buscar Empresa por Nome

from deepread_contract import buscar_cnpj_por_nome

dados = buscar_cnpj_por_nome("Petrobras")
print(dados["cnpj"])  # 33.000.167/0001-01

Validar Documento

from deepread_contract import validar_documento_contrato

texto = """
CONTRATO DE PRESTAÇÃO DE SERVIÇOS
CONTRATANTE: Empresa XYZ, inscrita no CNPJ...
CLÁUSULA PRIMEIRA - OBJETO
"""

eh_contrato, qtd_keywords, keywords = validar_documento_contrato(texto)
print(f"É contrato: {eh_contrato}")  # True

Formatar CNPJ

from deepread_contract import formatar_cnpj, limpar_cnpj

formatar_cnpj("33000167000101")       # "33.000.167/0001-01"
limpar_cnpj("33.000.167/0001-01")     # "33000167000101"

Verificação de Contratos (com DeepRead)

OpenAI

from deepread_contract import ContractChecker

checker = ContractChecker(openai_api_key="sk-...")
resultado = checker.verificar("contrato.pdf")

print(resultado["resultado_final"])  # APROVADO, REPROVADO, PENDENTE
print(resultado["campos_aprovados"])
print(resultado["campos_reprovados"])

Azure OpenAI

from deepread_contract import ContractChecker

checker = ContractChecker(
    provider="azure",
    azure_api_key="sua-chave-azure",
    azure_endpoint="https://seu-recurso.openai.azure.com",
    azure_deployment="gpt-4o",
    azure_api_version="2024-02-15-preview"
)

resultado = checker.verificar("contrato.pdf")

Via Variáveis de Ambiente

# OpenAI
export OPENAI_API_KEY=sk-...

# Azure
export OPENAI_PROVIDER=azure
export AZURE_API_KEY=sua-chave-azure
export AZURE_API_ENDPOINT=https://seu-recurso.openai.azure.com
export AZURE_DEPLOYMENT_NAME=gpt-4o
export AZURE_API_VERSION=2024-02-15-preview
# Detecta automaticamente do ambiente
checker = ContractChecker()
print(checker.provider)  # "openai" ou "azure"

Autenticação

DeepReadAuth

from deepread_contract import DeepReadAuth

# OpenAI
auth = DeepReadAuth(openai_api_key="sk-...")

# Azure
auth = DeepReadAuth(
    provider="azure",
    azure_api_key="sua-chave",
    azure_endpoint="https://seu-recurso.openai.azure.com",
    azure_deployment="gpt-4o"
)

# Verificar configuração
print(auth.provider)        # "openai" ou "azure"
print(auth.has_api_key)     # True/False
print(auth.is_deepread_available)  # True/False

# Obter token
token = auth.get_token()

AuthenticatedClient

from deepread_contract import AuthenticatedClient

client = AuthenticatedClient(
    provider="azure",
    azure_api_key="...",
    azure_endpoint="...",
    azure_deployment="gpt-4o"
)

if client.is_ready:
    dr = client.get_deepread_client()
    resultado = dr.process("documento.pdf")

CLI

# Consultar CNPJ
deepread-contract cnpj 33.000.167/0001-01

# Buscar por nome
deepread-contract buscar "Petrobras"

# Verificar contrato
deepread-contract verificar contrato.pdf

# Saída em JSON
deepread-contract cnpj 33.000.167/0001-01 --json

Estrutura de Resposta CNPJ

{
    "cnpj": "33.000.167/0001-01",
    "razao_social": "PETROLEO BRASILEIRO S A PETROBRAS",
    "nome_fantasia": "PETROBRAS",
    "situacao": "ATIVA",
    "data_abertura": "1966-09-28",
    "natureza_juridica": "Sociedade de Economia Mista",
    "capital_social": 205431960490.0,
    "endereco": {
        "logradouro": "AVENIDA REPUBLICA DO CHILE",
        "numero": "65",
        "bairro": "CENTRO",
        "cidade": "RIO DE JANEIRO",
        "uf": "RJ",
        "cep": "20031912"
    },
    "socios": [
        {"nome": "JOAO SILVA", "qualificacao": "Diretor"},
        ...
    ]
}

Estrutura de Resposta Verificação

{
    "resultado_final": "APROVADO",  # APROVADO, REPROVADO, PENDENTE
    "justificativa": "Todos os campos aprovados",
    "campos_aprovados": ["CNPJ - Empresa X", "Situação - Empresa X", ...],
    "campos_reprovados": [],
    "campos_pendentes": [],
    "empresas": [...],
    "assinaturas": [...],
    "metricas": {
        "tokens": 5000,
        "custo_usd": 0.025,
        "tempo_segundos": 12.5
    }
}

Exemplos

Veja a pasta examples/ para exemplos completos:

  • exemplo_cnpj.py - Consulta de CNPJ
  • exemplo_validacao_documento.py - Validação de documento
  • exemplo_verificar_contrato.py - Verificação completa
  • exemplo_cli.sh - Comandos CLI

Dependências

Obrigatórias

  • requests - Requisições HTTP
  • pydantic - Validação de dados

Opcionais

  • openai - Para usar com OpenAI/Azure

Licença

MIT License - veja LICENSE para detalhes.

Contribuição

Contribuições são bem-vindas! Abra uma issue ou pull request.


Desenvolvido por BeMonkAI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deepread_contract-0.1.1-cp39-cp39-macosx_10_9_universal2.whl (609.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file deepread_contract-0.1.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for deepread_contract-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a846362c301380089e61640cc797fcb4fca247ec5a796e3635206cac24feb26a
MD5 6cd1c2325f4e50b85dfeb58b3d2f1d9d
BLAKE2b-256 9fbd69eb06b72cccdd192e63926edefa24a6c36cb537a88356c840d0d81d35e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page