Biblioteca para validação de documentos e contratos brasileiros
Project description
DeepRead Contract 📄
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 CNPJexemplo_validacao_documento.py- Validação de documentoexemplo_verificar_contrato.py- Verificação completaexemplo_cli.sh- Comandos CLI
Dependências
Obrigatórias
requests- Requisições HTTPpydantic- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deepread_contract-0.1.1-cp39-cp39-macosx_10_9_universal2.whl.
File metadata
- Download URL: deepread_contract-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 609.0 kB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a846362c301380089e61640cc797fcb4fca247ec5a796e3635206cac24feb26a
|
|
| MD5 |
6cd1c2325f4e50b85dfeb58b3d2f1d9d
|
|
| BLAKE2b-256 |
9fbd69eb06b72cccdd192e63926edefa24a6c36cb537a88356c840d0d81d35e8
|