Pular para o conteúdo

LlamaParse - Cheatsheet de Parsing de Documento para RAG

LlamaParse - Cheatsheet de Parsing de Documento para RAG

LlamaParse é um serviço de parsing de documento da equipe LlamaIndex, construído especificamente para pipelines LLM e RAG. Seu foco é o caso difícil: PDFs com tabelas complexas, layouts multi-coluna, figuras e gráficos incorporados que extractores de texto genéricos achatam em texto inutilizável. Ele gera Markdown limpo que preserva estrutura, e sua característica distintiva é instruções de parsing em linguagem natural — você descreve como o documento é disposto e o que fazer com ele, em vez de configurar regras de extração.

LlamaParse é um serviço hospedado com um tier gratuito (chave de API necessária). Para parsing totalmente local veja Docling ou Marker.

Instalação

MétodoComando
pippip install llama-parse
Com LlamaIndexpip install llama-index llama-parse
Chave de APIexport LLAMA_CLOUD_API_KEY="llx-..."
Verificarpython -c "from llama_parse import LlamaParse; print('ok')"

Parsing Básico

from llama_parse import LlamaParse

parser = LlamaParse(result_type="markdown")
documents = parser.load_data("./report.pdf")
print(documents[0].text)
ParâmetroPropósito
result_type"markdown" (preserva estrutura) ou "text"
num_workersProcessamento paralelo de página
verboseSaída de progresso
languageDica de linguagem de documento
parsing_instructionOrientação em linguagem natural (abaixo)

Instruções de Parsing (o diferenciador)

parser = LlamaParse(
    result_type="markdown",
    parsing_instruction="""
    Este é um relatório financeiro. Preserve todas as tabelas como tabelas Markdown.
    Para cada gráfico, escreva uma descrição de um parágrafo da tendência que mostra.
    Ignore cabeçalhos e rodapés de página.
    """,
)

Você descreve o documento e o manuseio desejado em linguagem simples em vez de escrever código de extração — útil para layouts específicos de domínio (faturas, artigos científicos, contratos legais) onde parsers genéricos funcionam mal.

Async & Batch

import asyncio

async def parse_many(paths):
    parser = LlamaParse(result_type="markdown", num_workers=8)
    return await parser.aload_data(paths)

docs = asyncio.run(parse_many(["a.pdf", "b.pdf", "c.pdf"]))
MétodoUse
load_data(path)Arquivo único, síncrono
aload_data([paths])Async, múltiplos arquivos
get_json_result(path)JSON estruturado com metadados de página
get_images(...)Extrai imagens incorporadas

Entradas Suportadas

FormatoNota
PDFAlvo primário, inclusive scanned (OCR)
DOCX / PPTX / XLSXFormatos Office
HTMLDocumentos web
ImagensPNG/JPEG via OCR

Fiando em um Pipeline de RAG

from llama_parse import LlamaParse
from llama_index.core import VectorStoreIndex
from llama_index.core.node_parser import MarkdownElementNodeParser

docs = LlamaParse(result_type="markdown").load_data("./manual.pdf")

# Chunking ciente de Markdown mantém tabelas e seções intactas
node_parser = MarkdownElementNodeParser()
nodes = node_parser.get_nodes_from_documents(docs)

index = VectorStoreIndex(nodes)

Emparelhar saída Markdown com um node parser ciente de Markdown é o ponto: tabelas sobrevivem ao parsing e chunking, que é onde a maioria dos pipelines RAG perde fatos tabulares.

Tratando Bem Tabelas

TécnicaPor quê
result_type="markdown"Tabelas se tornam grids Markdown
Instrução de parsing para tabelasForce manuseio consistente de tabela
MarkdownElementNodeParserMantém uma tabela em um chunk
Serialização row-per-sentenceTorna linhas individuais recuperáveis

Custo & Notas Práticas

ConsideraçãoDetalhe
Serviço hospedadoDocumentos são enviados para LlamaCloud
Tier gratuitoPáginas limitadas por dia
CachingRe-parsing do mesmo arquivo pode reusar resultados
PrivacidadePara documentos sensíveis prefira parsers locais

LlamaParse vs Parsers Locais

AspectoLlamaParseDoclingMarker
HostingServiço em nuvemLocalLocal
Tabelas complexasMuito forteForteBom
Instruções customizadasLinguagem naturalConfigConfig
PrivacidadeDados deixam sua máquinaTotalmente localTotalmente local
Melhor paraLayouts difíceis, resultados rápidosRAG auto-hospedadoConversão bulk local

Para corpora sensíveis de privacidade use Docling; para conversão bulk local use Marker.

Recursos