Docling e LlamaParse: uma tabela válida ainda pode carregar o número errado
A comparação entre extração local e nuvem mostra por que schema, velocidade e correção semântica precisam de critérios de aceite separados.
Um tutorial do Real Python compara Docling e LlamaParse na extração de tabelas de um PDF financeiro de dez páginas.[11] O caso revela um erro especialmente útil para quem constrói ETL: uma descrição genérica no caminho de extração estruturada do LlamaParse retornou receita do segmento iPhone, não o total de vendas desejado.[11] A resposta podia ter a estrutura esperada e ainda responder à pergunta errada.
O que muda para quem desenvolve
O Docling processa localmente e oferece tabelas com origem por página, além de exportação para Markdown, JSON, HTML e DataFrames pandas.[11] Depois do cache dos modelos, pode operar offline, sem chave de API ou cobrança por documento.[11] No exemplo, o primeiro processamento exige baixar aproximadamente 500 a 600 MB de modelos.[11]
O LlamaParse usa um pipeline em nuvem; seu caminho Parse devolve conteúdo por página, enquanto Extract aceita um JSON Schema e produz campos estruturados.[11] Isso altera o contrato de integração, não apenas a instalação. Eu decidiria primeiro se preciso preservar uma tabela como tabela ou recuperar campos de negócio específicos.
Minha leitura é que a validação precisa ter duas camadas: estrutura e significado. Confirmar tipos, campos obrigatórios e formato numérico não demonstra que a coluna, a unidade e o período estão corretos. O exemplo da receita torna essa diferença concreta.
Como aplicar
Monte uma amostra pequena de documentos autorizados, com variedade de layout. Prepare manualmente uma referência contendo valor, rótulo, período, unidade e página de origem. Não use apenas os PDFs que o parser já lê bem.
Execute as duas ferramentas somente quando a classificação dos documentos permitir upload. Para material confidencial, minha escolha inicial seria uma avaliação local. Se a alternativa gerenciada entrar no teste, revise previamente finalidade, retenção e autorização de transferência.
Compare célula a célula nos campos críticos. Inclua tabelas sem bordas, cabeçalhos repetidos, totais e documentos escaneados. O tutorial discute limitações de identificação de regiões e ordem de leitura no Docling, especialmente em layouts densos.[11]
No caminho baseado em schema, escreva descrições que identifiquem exatamente a métrica. Depois, confira o resultado contra a página original. Defina o que gera revisão humana: divergência de total, unidade ausente, período ambíguo ou página sem evidência suficiente.
Meça tempo de preparação separadamente do processamento com modelos já em cache. Registre ainda o esforço necessário para normalizar cabeçalhos e conferir resultados. Um parser mais rápido pode não encerrar o fluxo mais cedo se exigir mais revisão.
Cuidados e limites
No teste apresentado, o Docling em CPU levou 82,4 segundos e o LlamaParse em nuvem, 29,8 segundos.[11] Esses números vêm de um único relatório e não estabelecem um vencedor para todo tipo de PDF.[11]
O serviço gerenciado exige enviar o documento ao provedor, enquanto a opção local mantém custo de hardware e operação.[11] Meu critério de escolha seria correção verificável dentro das restrições dos dados. “PDF virou JSON” é uma etapa do pipeline, não uma garantia de informação correta.
Fonte
[11] Fonte: Real Python