Converta documentos para Markdown estruturado — libere seu conhecimento de PDFs
Project description
CONVERTER
Converter documentos não é sobre tecnologia. É sobre liberdade de conhecimento.
🎯 O Problema: Documentos são Prisões de Conhecimento
O Que Você Nunca Notou Sobre PDFs
📄 PDF (Portable Document Format)
│
├── VISUALMENTE: Lindo, formatado, "profissional"
├── PARA HUMANOS: Legível (se você tiver tempo)
└── PARA MÁQUINAS: Um caos estrutural
├── Texto? Às vezes (se não for imagem)
├── Tabelas? Caixas aleatórias
├── Hierarquia? Inexistente
└── Semântica? Zero.
O PDF foi criado para IMPRIMIR, não para PROCESSAR.
Quando você envia um PDF para uma IA (ChatGPT, Claude, Gemini), ela não "lê" — ela adivinha.
O PDF Esconde:
| O Que Você Vê | O Que a IA Vê |
|---|---|
| Capítulo 1: Introdução | BT /F1 12 Tf 100 700 Td (Capítulo) Tj |
| Tabela de preços | 4 rects, 12 text boxes, no relation |
| Nota de rodapé | Texto aleatório no fim da página |
| Formatação em negrito | Same font, maybe different weight? |
Resultado: A IA perde contexto, estrutura e significado.
HTML: A Web Quebrada
<!-- O que um humano vê: "Preço: R$ 100" -->
<div class="sc-12e8fsh-3 eRjMye price-widget">
<span class="currency" data-cy="currency-symbol">R$</span>
<span class="amount" style="font-weight:600!important">100</span>
</div>
O HTML é para BROWSERS, não para COMPREENSÃO.
- CSS esconde significado
- JavaScript gera conteúdo dinâmico
- Classes semânticas? Raras.
- Extrair dados = Engenharia reversa
DOCX: A Ilusão de Estrutura
DOCX (Word)
├── Parece estruturado...
├── Mas é XML zipado
├── Estilos? Arbitrários.
├── Tabelas? Para layout, não dados.
└── Versões? Incompatíveis.
O DOCX foi feito para edição humana, não para processamento automatizado.
💡 A Solução: Por Que Converter Para Markdown
Markdown é Texto Puro Com Significado
# Capítulo 1: Introdução
Este é um **parágrafo** com *ênfase*.
## Seção 1.1
| Produto | Preço |
|---------|-------|
| Item A | R$ 100|
| Item B | R$ 200|
> Esta é uma citação
O que a IA vê:
#= Título nível 1##= Hierarquia clara**= Importância semântica|= Tabela estruturada>= Citação
Não há adivinhação. Há compreensão.
Benefícios Para QUALQUER Modelo de Linguagem
1. Contexto Ampliado (Token Efficiency)
# PDF convertido "naive"
"PREÇO R$ 100 ITEM A R$ 200 ITEM B ..." # 50 tokens, sem contexto
# Markdown estruturado
"| Produto | Preço |\n|---------|-------|\n| Item A | R$ 100|" # 20 tokens, total contexto
Mesma informação, 60% menos tokens.
Em modelos como GPT-4, Claude, Gemini:
- Menos tokens = Menor custo
- Menos tokens = Maior contexto disponível
- Menos tokens = Respostas mais precisas
2. Estrutura Semântica Preservada
| Elemento | No PDF | No Markdown | Benefício para IA |
|---|---|---|---|
| Título | Caixa de texto | # Título |
Entende hierarquia |
| Lista | Bullets gráficos | - Item |
Entende sequência |
| Tabela | Células posicionadas | ` | A |
| Ênfase | Fonte bold | **texto** |
Entende importância |
| Citação | Aspas + indentação | > quote |
Entende origem |
3. RAG (Retrieval Augmented Generation) Efetivo
Problema: Sistemas RAG dividem documentos em chunks.
PDF chunkado:
"...preço do item é R$ 100 e o próximo capítulo..."
↑ Contexto perdido: QUAL item? QUAL capítulo?
Markdown chunkado:
"## Capítulo 3: Preços\n\n| Item | Preço |\n|------|-------|\n| A | R$ 100|"
↑ Contexto preservado: Hierarquia clara
Resultado: Busca semântica encontra o que você precisa.
4. Chain-of-Thought Natural
Modelos de raciocínio (o1, Claude 3.5 Sonnet, Gemini 2.5) beneficiam-se de estrutura:
# Análise de Reequilíbrio
## 1. Fatos
- Contrato assinado em 2020
- IPCA acumulado: 25%
## 2. Fundamentação Legal
- Art. 12 da Lei 8.987
- Resolução ANTT 5.820
## 3. Cálculos
```python
indice = 1.25 # IPCA
wacc = 0.08 # Contrato
4. Conclusão
...
**A IA segue o raciocínio estruturado.**
---
## 🔍 Comparativo: Alternativas Existentes
### Opção 1: Bibliotecas Raw (PyPDF2, pdfplumber, etc.)
```python
# Exemplo: Extrair texto de PDF com pdfplumber
import pdfplumber
with pdfplumber.open("documento.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
# O que você recebe:
# "Texto quebrado\nsem\nestrutura nem contexto"
Complexidade: ⭐⭐⭐⭐☆ (Alta)
- Precisa entender PDF internamente
- Cada PDF é um caso diferente
- OCR para scanned documents = outra biblioteca
- Tabelas? Boa sorte.
Expertise Necessária:
- Python intermediário/avançado
- Entendimento de formatos PDF/DOCX
- Regex para parsing
- Debugging de extratos quebrados
Custos Ocultos:
- Tempo de desenvolvimento: 40-80 horas para pipeline robusto
- Manutenção: PDFs corrompidos, novos formatos, edge cases
- Infraestrutura: GPU para OCR, workers para batch
- Frustração: Alta. "Funciona no meu PDF, não no dele."
Opção 2: Skills de Agentes IA (Claude Code, Cursor, etc.)
Skill: "Ler PDF"
Você diz: "Analise este PDF"
A IA tenta:
1. Extrair texto (melhor esforço)
2. Interpretar estrutura (adivinhação)
3. Responder baseada em fragmentos
Resultado: "Parece que o documento fala sobre..."
Complexidade: ⭐⭐☆☆☆ (Baixa para o usuário) Mas: ⭐⭐⭐⭐⭐ (Muito alta para quem desenvolve a skill)
Expertise Necessária:
- Engenharia de prompts avançada
- Tratamento de edge cases
- Integração com múltiplos formatos
- Gestão de tokens e contexto
Custos Ocultos:
- Custo de tokens: Modelos processando PDFs longos = $$$$
- Latência: 30s-2min por documento
- Precisão: 70-85% (varia com formato)
- Dependência: Vendor lock-in na skill/agente
Opção 3: APIs Comerciais (AWS Textract, Google Document AI, Azure Form Recognizer)
# AWS Textract
import boto3
textract = boto3.client('textract')
response = textract.analyze_document(
Document={'S3Object': {'Bucket': 'docs', 'Name': 'file.pdf'}},
FeatureTypes=['TABLES', 'FORMS']
)
# Custo: $1.50 por 1.000 páginas (tables/forms)
Complexidade: ⭐⭐⭐☆☆ (Média)
- Setup AWS/GCP/Azure
- IAM, roles, permissões
- Handling de async operations
- Parsers de resposta JSON complexa
Expertise Necessária:
- Cloud engineering
- IAM e segurança
- Cost management (alertas de billing)
- Integração APIs
Custos Diretos ($$$):
| Serviço | Custo por 1.000 págs | 10K docs/mês | Anual |
|---|---|---|---|
| AWS Textract (Tables+Forms) | $1.50 | $15.000 | $180.000 |
| Google Document AI | $1.50 | $15.000 | $180.000 |
| Azure Form Recognizer | $1.50 | $15.000 | $180.000 |
Custos Ocultos:
- Data transfer (egress)
- Storage (S3, GCS)
- Lambda/functions para orchestration
- DevOps para manter pipeline
Opção 4: CONVERTER (Esta Solução)
# Instalação
pip install converter
# Uso
converter documento.pdf --output markdown/
Complexidade: ⭐☆☆☆☆ (Mínima)
- Instalação: 1 comando
- Uso: 1 comando
- Configuração: Opcional
Expertise Necessária:
- Linha de comando básica
- Zero programação (modo CLI)
- Opcional: Python básico (para scripting)
Custos:
- Software: Grátis (MIT License)
- Infraestrutura: Seu próprio hardware
- Tempo: 5 minutos setup
- Manutenção: Comunidade + updates automáticos
O Que Você Ganha:
| Feature | Bibliotecas Raw | Skills IA | APIs Cloud | CONVERTER |
|---|---|---|---|---|
| Setup | 8h | 2h | 4h | 5min |
| OCR integrado | ❌ | ⚠️ | ✅ | ✅ |
| Tabelas | ❌ | ⚠️ | ✅ | ✅ |
| Batch processing | DIY | DIY | DIY | ✅ |
| Custo mensal | $0 | $$$ | $$$$$ | $0 |
| Controle total | ✅ | ❌ | ❌ | ✅ |
| Offline | ✅ | ❌ | ❌ | ✅ |
| Open Source | ✅ | ❌ | ❌ | ✅ |
🎓 Sabedoria: O Paradigma da Conversão
A Metáfora do Tradutor
"PDF é como um livro em chinês para quem só fala português.
Você pode:
- Aprender chinês (bibliotecas raw — anos de estudo)
- Contratar um tradutor humano por página (APIs cloud — caro)
- Usar Google Translate (skills IA — imperfeito)
- Ter o livro traduzido uma vez, reutilizar para sempre (CONVERTER — sábio)"
Por Que Isso Importa Para o Futuro
Large Language Models virão e irão.
- GPT-4 → GPT-5 → GPT-6...
- Claude 3 → Claude 4 → Claude 5...
- Gemini, Llama, Mistral, novos players...
Mas a estrutura semântica é eterna.
Um documento em Markdown:
- Funciona com GPT-4
- Funcionará com GPT-5
- Funcionará com qualquer modelo futuro
- Funciona com RAG híbrido
- Funciona com agentes autônomos
É um investimento no tempo.
O Custo da Não-Conversão
| Cenário | Sem Conversão | Com CONVERTER |
|---|---|---|
| Analisar 100 processos | 300 horas (manual) | 10 horas (automatizado) |
| Custo com APIs | R$ 50.000/mês | R$ 0 |
| Precisão da IA | 70% (PDFs crus) | 95% (Markdown estruturado) |
| Tempo de resposta | 2-5 dias | 15 minutos |
| Escalabilidade | Limitada | Ilimitada |
🛠️ Como Funciona (O "Como" Depois do "Porquê")
Arquitetura de Conversão
Entrada (PDF/DOCX/HTML/ZIP)
↓
[DETECTOR DE FORMATO]
↓
[EXTRATOR ESPECÍFICO]
├── PDF: PyMuPDF4LLM + OCR cascade
├── DOCX: python-docx
├── HTML: BeautifulSoup
└── ZIP: Recursivo + paralelo
↓
[ENRIQUECEDOR SEMÂNTICO]
├── Detecta tabelas
├── Identifica hierarquia
├── Preserva metadados
└── Gera índice
↓
Saída (Markdown Estruturado)
OCR Cascade: A Garantia de Leitura
# Estratégia: Tentar do melhor para o mais compatível
1. PaddleOCR (GPU-accelerated, PT-BR excelente)
└── Falhou? →
2. EasyOCR (CPU-friendly, multilíngue)
└── Falhou? →
3. Tesseract (battle-tested, sempre funciona)
└── Falhou? →
4. Fallback: "[Imagem não processável - verificar manualmente]"
Nenhum documento fica para trás.
📚 Para Quem É Esta Ferramenta
Perfil 1: Analista Jurídico/Regulatório
Problema: 500 páginas de processo administrativo para analisar em 5 dias.
Solução CONVERTER:
converter processo.zip --output analise/
# 15 minutos depois: Markdown estruturado pronto para IA
Resultado: Análise completa em 4 horas, não 40.
Perfil 2: Pesquisador Acadêmico
Problema: 200 papers em PDF para revisão sistemática.
Solução CONVERTER:
converter papers/ --output corpus/ --format jsonl
# Indexa direto em vector store para RAG
Perfil 3: Desenvolvedor de IA
Problema: Precisa de dados estruturados para fine-tuning.
Solução CONVERTER:
from converter import batch_convert
chunks = batch_convert(
source="datasets/",
output_format="openai-jsonl", # Pronto para fine-tuning
chunk_size=2000
)
Perfil 4: Organização que Quer Autonomia
Problema: Depender de APIs externas é caro e inseguro.
Solução CONVERTER:
- Self-hosted
- Open source
- Controle total dos dados
- Zero vendor lock-in
☁️ Escala na Nuvem: Colab Híbrido (Rust + Python)
Para processamento em massa (>1000 arquivos), use nosso Colab Híbrido:
Arquitetura
┌──────────────┐ PyO3 ┌─────────────────┐
│ RUST │◄──────────────►│ PYTHON WORKERS │
│ Orchestrator │ │ │
│ (Rayon) │ │ • pymupdf4llm │
│ │ │ • pandoc │
└──────────────┘ │ • tesseract │
└─────────────────┘
Quando Usar
| Cenário | CONVERTER Local | Colab Híbrido |
|---|---|---|
| < 100 arquivos | ✅ Ideal | ❌ Overkill |
| > 1000 arquivos | ❌ Lento | ✅ A100 GPU |
| Arquivos >100MB | ❌ Memória limitada | ✅ 150GB RAM |
| Desenvolvimento | ✅ Instantâneo | ❌ 2min setup |
| Dados sensíveis | ✅ 100% offline | ❌ Cloud |
Link do Notebook
Acesse: https://colab.research.google.com/drive/1AjNkcLnar1JzEx8-JVpdDsHXodNmvv7b?usp=sharing
Guia completo: docs/colab-hybrid-guide.md
Performance Comparada
| Métrica | Local (RTX 4060) | Colab (A100) |
|---|---|---|
| 100 PDFs × 50MB | ~25 min | ~8 min |
| VRAM | 8GB | 80GB |
| Throughput | 4 PDFs/min | 12.5 PDFs/min |
Conclusão: Use CONVERTER local para prototipagem e Colab Híbrido para produção em escala.
🚀 Próximos Passos
Instalação
pip install converter
Primeiro Uso
# Converter um PDF
converter documento.pdf
# Converter ZIP inteiro
converter processos.zip --output markdown/
# Com OCR (para PDFs escaneados)
converter escaneado.pdf --ocr --gpu
Integração com Sua IA Favorita
# Exemplo: Pipeline com Claude
import converter
import anthropic
# 1. Converter
markdown = converter.to_markdown("documento.pdf")
# 2. Enviar para IA
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=4000,
messages=[{
"role": "user",
"content": f"Analise este documento:\n\n{markdown}"
}]
)
# 3. Receber análise estruturada
print(response.content)
📖 Filosofia
"Converter não é sobre mudar formatos. É sobre liberar conhecimento aprisionado em estruturas legadas para que máquinas possam compreender — e humanos possem multiplicar seu intelecto."
O conhecimento é o único recurso que multiplica quando compartilhado.
CONVERTER é a ponte entre o passado (documentos estáticos) e o futuro (inteligência augmentada).
Pronto para começar? Veja docs/quickstart.md
Quer entender a fundo? Veja docs/philosophy.md
Precisa de ajuda? Comunidade: discord.gg/converter
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
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 kazuba_converter-0.1.0.tar.gz.
File metadata
- Download URL: kazuba_converter-0.1.0.tar.gz
- Upload date:
- Size: 48.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb6d2a7422160380b2183f7afc0b555ffc07b301147c48629af7ba0b380509dc
|
|
| MD5 |
39c4001a570d5d3d4255aeed49145850
|
|
| BLAKE2b-256 |
7fa78721ecfceb3760f377bbc885dc967ac73b71cdb3af7aa887939e8b61c533
|
File details
Details for the file kazuba_converter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kazuba_converter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 40.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6a9e4c3ac74aa1e9996fff0eb7a66aae4243f2d7643f939848a923b02450b93
|
|
| MD5 |
2e712482ec4f416773f65c671814aa1d
|
|
| BLAKE2b-256 |
340649d5857ba9dc7fb21a167560f14dcc80c4f06a2e01a763584b0184a49e61
|