Se você já tentou extrair dados estruturados de um formulário escaneado, uma tabela com células mescladas, ou um PDF com texto manuscrito misturado com texto impresso, já sabe o que é OCR tradicional em produção: pipelines frágeis, hacks de pós-processamento, e documentos que simplesmente quebram tudo.
Chandra 2 é um modelo de OCR open source do Datalab — o mesmo time por trás de Marker e Surya — que adota uma abordagem diferente. Em vez de dividir as páginas em blocos e rodar inferência em cada pedaço separadamente, decodifica a página completa de uma só vez. O resultado é um modelo que lida com layout, tabelas, formulários, texto manuscrito, matemática e conteúdo multilíngue como uma saída unificada em Markdown, HTML ou JSON.
Acaba de alcançar estado da arte no benchmark olmOCR com uma pontuação de 85,9% — acima de GPT-4o, Gemini Flash 2, Mistral OCR e DeepSeek OCR. E com 4B de parâmetros (reduzindo dos 9B do Chandra 1), também é mais rápido.
O que gera como output
Você passa um PDF ou uma imagem. Obtém:
- Markdown estruturado com cabeçalhos, tabelas e listas corretamente formatados
- Tipos de blocos de layout: tabela, formulário, figura, equação, bloco de código, nota de rodapé, imagem com legenda
- Diagramas de fluxo convertidos para formato Mermaid
- Gráficos extraídos como dados estruturados (valores, rótulos de eixos, categorias)
- Matemática em LaTeX
Para quem constrói pipelines RAG, fluxos de document ingestion, ou automações, este é o formato que você realmente precisa — não texto plano com espaços em branco quebrados.
As três formas de usá-lo
Aqui está o prático. Você tem três opções dependendo do seu setup e escala:
Opção 1: API hospedada (o caminho mais rápido)
A opção mais simples. Datalab roda a inferência, você chama a API. Inclui $5 de créditos gratuitos para começar, depois pagamento por uso. Você não precisa de GPU. Ideal para: prototipagem, volumes baixos ou médios, ou quando você não quer gerenciar infraestrutura.
pip install datalab-sdk
Opção 2: vLLM local (recomendado para produção)
Você roda o modelo em sua própria GPU com vLLM como backend de inferência. Instalação mais leve que HuggingFace, melhor throughput, e mais fácil de containerizar. É o caminho recomendado para times que precisam de privacidade de dados ou custos previsíveis em escala.
pip install chandra-ocr
chandra_vllm # levanta o servidor vLLM
chandra input.pdf ./output
Configuração via variáveis de ambiente:
MODEL_CHECKPOINT=datalab-to/chandra-ocr-2
VLLM_API_BASE=http://localhost:8000/v1
VLLM_GPUS=0
Em uma H100, você pode chegar a 4 páginas por segundo — cerca de 345.000 páginas por dia.
Opção 3: Backend HuggingFace (máximo controle)
Use transformers diretamente. Mais dependências (torch, flash attention é recomendado), mas lhe dá o maior controle sobre inferência, batching e integração com pipelines ML existentes.
pip install chandra-ocr[hf]
chandra input.pdf ./output --method hf
E por código:
from chandra.model import InferenceManager
from chandra.model.schema import BatchInputItem
from PIL import Image
manager = InferenceManager(method="vllm")
batch = [BatchInputItem(image=Image.open("doc.png"), prompt_type="ocr_layout")]
result = manager.generate(batch)[0]
print(result.markdown)
Licença: o que você precisa saber
O código é Apache 2.0 — completamente aberto. Os pesos do modelo usam uma licença OpenRAIL-M modificada: grátis para pesquisa, uso pessoal, e startups com menos de $2M em financiamento ou receita. Acima desse limite, você precisa de uma licença comercial. Se você está construindo um produto que compete diretamente com a API hospedada do Datalab, os pesos abertos não são uma opção independentemente do tamanho da sua empresa.
Quando usá-lo
Chandra brilha em documentos onde o layout importa: relatórios anuais, formulários governamentais, faturas, papers acadêmicos com equações, documentos históricos, qualquer coisa com tabelas que ocupem múltiplas colunas. Para PDFs simples com apenas texto, Marker é mais rápido e leve. Para documentos enterprise estruturados, Chandra é a ferramenta.
O suporte multilíngue também vale destacar para a região — Chandra 2 cobre 90 idiomas com melhorias significativas em scripts do Sul Asiático. O desempenho em português é sólido em todo o benchmark.
Você está construindo pipelines de document ingestion ou RAG? Que tipo de documentos são os que mais custam processar para você hoje? Conte-nos nos comentários.
Recursos:
