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 Distribution

deepread_contract-0.1.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

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

deepread_contract-0.1.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file deepread_contract-0.1.0.tar.gz.

File metadata

  • Download URL: deepread_contract-0.1.0.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for deepread_contract-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0dd4a6faf427b74c0cd1912422de7c1ef474745bbe19eac1556cecf519175ca1
MD5 a460aacd90c7b089d19960ede93420dd
BLAKE2b-256 fc13b004038d386c627bdc880fec2676dcd08e4a04dd3a9aec9835f9cc07931b

See more details on using hashes here.

File details

Details for the file deepread_contract-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for deepread_contract-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84ecefc04fbc5cf4934cd91b720237109a1c64e345449f3b0240f8707d7aff10
MD5 71142786b2848224fce64dbb605a0ddc
BLAKE2b-256 eeff9444a7edc305e9f32a91979d5395f61e68de9fe68b760dd18f3e7436bf50

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