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

CLI machine-friendly para automação e uso por agentes de IA. Toda saída é JSON em stdout, erros em stderr, e o exit code reflete sucesso (0) ou falha (≥1).

Instalação

pip install deepread-contract[cli]

Comandos

Comando Descrição
version Mostra a versão instalada
cnpj <cnpj> Consulta CNPJ na Receita Federal (BrasilAPI → ReceitaWS fallback)
buscar <nome> Busca empresa por nome (Casa dos Dados)
classificar <documento> Classificação rápida por keywords (sem IA)
verificar <documento> Verificação completa do contrato (extração com IA + validação Receita)
keywords Lista keywords de validação e exclusão
models Lista modelos Pydantic disponíveis com seus campos

Exemplos

# Versão
deepread-contract version

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

# Buscar empresa por nome (com filtro de UF opcional)
deepread-contract buscar "Petrobras" --uf RJ

# Classificação rápida (sem IA, só keywords)
deepread-contract classificar contrato.pdf

# Verificação completa do contrato
export OPENAI_API_KEY=sk-...
export DEEPREAD_API_TOKEN=dr_...
deepread-contract verificar contrato.pdf

Configurar Provider (OpenAI / Azure)

O comando verificar aceita as seguintes flags para configurar o LLM:

Flag Env var Descrição
--api-key OPENAI_API_KEY Chave do provider LLM
--token DEEPREAD_API_TOKEN Token do DeepRead
--model / -m Modelo (default: gpt-4o)
--provider Provider: openai (default) ou azure
--verbose / -v Logs detalhados em stderr
# OpenAI (default)
deepread-contract verificar contrato.pdf \
  --api-key sk-... \
  --model gpt-4o

# Azure OpenAI
deepread-contract verificar contrato.pdf \
  --provider azure \
  --api-key <azure-key> \
  --model gpt-4o

Exit codes

Code Significado
0 Sucesso (e contrato APROVADO no caso de verificar)
1 Falha genérica ou contrato REPROVADO/PENDENTE
2 Erro de configuração (chave/token ausente)
3 Arquivo não encontrado
4 Erro de execução (rede, API, etc.)

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 Distributions

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

deepread_contract-0.2.1-cp313-cp313-win_amd64.whl (279.0 kB view details)

Uploaded CPython 3.13Windows x86-64

deepread_contract-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

deepread_contract-0.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

deepread_contract-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl (320.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

deepread_contract-0.2.1-cp312-cp312-win_amd64.whl (279.9 kB view details)

Uploaded CPython 3.12Windows x86-64

deepread_contract-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

deepread_contract-0.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

deepread_contract-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl (321.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

deepread_contract-0.2.1-cp311-cp311-win_amd64.whl (289.4 kB view details)

Uploaded CPython 3.11Windows x86-64

deepread_contract-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

deepread_contract-0.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

deepread_contract-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (323.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

deepread_contract-0.2.1-cp310-cp310-win_amd64.whl (289.5 kB view details)

Uploaded CPython 3.10Windows x86-64

deepread_contract-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

deepread_contract-0.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

deepread_contract-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (327.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

deepread_contract-0.2.1-cp39-cp39-win_amd64.whl (291.2 kB view details)

Uploaded CPython 3.9Windows x86-64

deepread_contract-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

deepread_contract-0.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

deepread_contract-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (330.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file deepread_contract-0.2.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 97aae6ea7e764df78d4d84e680340752c786feb8ddfefe2afba9c656e4ac74f4
MD5 62616c0d4bcf5b9ab3536eb0622d0b2e
BLAKE2b-256 2bf10a21f5b5e1e045299dfb33c29fda43574127bd4aee7b4b397effab8c2e3b

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3e5eeb6d6080c5082a991d141db4049a14b5903309985379fbdaaf1c9dbd3761
MD5 2ca837186ad1cd4bf7800e5f91bcaac9
BLAKE2b-256 a420cb816433c0bec315c5f8cf553d4e025e16fbebcb00535a5dfe92f0c4e47d

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 e270779b1eca0308ca716fd1b91e87d33a02a2e57d7434f1b0b66fed25ff088f
MD5 9d5c3a2dce5414edd053f422ceaca691
BLAKE2b-256 c8d836b8eca13707ce1a2eb2da6ca1092dac3a37296f112a8edfa2c45501e4b1

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 472ff1dfcb31d1376c58b8f299be38c33b623d1fe67a4dbbf03cf8b7f83a2d96
MD5 1e51117a7f8ace8545093cb9b8089b0a
BLAKE2b-256 0fdd9a5ca8a1e43c6b30b4c89c0732310c8d886cd701af22cb5ead9397a61a79

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5660e980a4ac4aaad93977f9252ed477cacf29add0d2df80408db729a67b93da
MD5 72ce1162f9777c54994ecfa31f01d699
BLAKE2b-256 8d8a55b607db3e2c88e124ca4e96074c55b7642f5529b581c3e9eee6f054db2b

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5709975ea403592f3c98e7412ce8382b3787fbcbb59085fa97404c72df3eb410
MD5 bec6cabd51e4d311f54998997d47707e
BLAKE2b-256 c673d9d03331bbda157498fed08d750eb9c868bd536e8066519821e7785bdc94

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5b6fd2131a994791cfffc31c5502ff4052896f09cbb8e0c80d084a365d4417b4
MD5 094acc434265d0fe116eef87806144b7
BLAKE2b-256 3fb005ca5b12538b237ba8e8fb1900b0479e94afde52f15812355abadedd6b58

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c99011eb51ca76fb2b7769888aedaedc3c0c868d9a21e0aaabbfb8040e4639cf
MD5 8a9bcdd86049f15af1b4cc11ecc7f208
BLAKE2b-256 44d44c3b8cf69f4e0d54d78a6ae18f1928b48176afb21854e65c130bd1f5e867

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b9395c38d54142410f5913975ca71ef041ef74a1fbe27992d09a89a9c895f0e8
MD5 61001cd3b7abf5bfe3dbc65a7165b09f
BLAKE2b-256 6ac4c7556235787d6ec51e52432fb1ecb7a49bd546032892c7c25d1ceca5a652

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c89fbb48d7c916ca499d0dd714325293421514f717ffc0e61b55df6fd6c366af
MD5 51ab088072ad44e038c1bec6b30905e4
BLAKE2b-256 686b54596134081191bf5d6cd73a67676acfcd64aad745514ce1644fce20124a

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 dfdd90896b416cc51709a42b0fb662a54e04a9fdd6116cef52e1997d5e5c9209
MD5 d1612e24d2cca8abc7e17c2c10d0976b
BLAKE2b-256 623b95553bbfc8ab3cc95b007a5d94061b3390076b289c1141fd016397271960

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e6f744432eb23b34d439ec6bfb910e8157c035b85e33b7e98ae0c277db38ab47
MD5 cd0e44304123aff8065358a5175833c1
BLAKE2b-256 d8f1998651e454c8c3d84ace7a98985cb6c5b1f0e18ffc9a68e69948cfe6b964

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0278173794c4bc091ee987220ce3a479f8320ed0e2346ef862ee8f338c7adaf3
MD5 d45dc8862f30f462ff6fcc64c8f7a78c
BLAKE2b-256 7c4ed305b29e1517492964b23043b8b8b85209252cc592bcf95b07593a0d78f2

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0c9014f674913e8f5e2d522090310befdf0a2f0162a344a682351abea6093ec4
MD5 fc03f43eb2ddb0ebeeb5abfb137a483a
BLAKE2b-256 425c27fb5c141524560c63a0d68a3f797e41e579610b019b98bd8e66185592a8

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3b4740e69a2dd566d980026eab7c466f29d2a1d0dfec0862c428125f4ced3291
MD5 b1f823d55269754738e4a4bee52bfdc8
BLAKE2b-256 b262148bc2b59e864afd269fa16bdcae8f1cc9c78bd0846d8a74a817dd6d4a69

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b7b7e83cfad5dd7ee02c1ac5e3b19e801f5ff6addfaa82548593ae78c48de829
MD5 5d4b4af6787d47b42de2043ee785c845
BLAKE2b-256 64603f0e1d9b84c63385238adbe9d0172179d18f0e514f55cad3de2f6324137b

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9dffeea4e727886116cb7b5d39a3040d68feb00bb2c0f3e9381fb3e776cc74c8
MD5 a4512bf8d63af1aee647df62b769d2e4
BLAKE2b-256 e8da6edc8440b5180155718f4af3418fa79b9c8cbffef2e094d7ab8a3ddc567e

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3a2105d364c97fcb185c1f0aef283b5841c01df9456f7cd1189a9e527920b83f
MD5 6596f1204f7205c537aa36c1bcb069dc
BLAKE2b-256 51ce7a9581d2776abaafe15640430e47f57e6ac395ec019e14aaf61dd7c92a2a

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5de3929dc8d626d125d0bd15b386c31301847de9a0d74a48010cd1a9e0c25d7b
MD5 e213839991f9a5bd9b433e12698b31ab
BLAKE2b-256 5014d4ce9a53a30969dae0d9a8c3926ce9ca99dd42aa1fccd23aefab07a55ebb

See more details on using hashes here.

File details

Details for the file deepread_contract-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for deepread_contract-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5ef4b74d42d5d926798d24375ac9508c7844d9f0984106e58e84d9e42dc386a8
MD5 12a40c2d3300adb129aa83b077ae32b7
BLAKE2b-256 6a10ae8c1346ffcf53f22916dca7d71d91a1bfc148cfdf38c0d22d5f245776e6

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