Ir al contenido

LlamaParse - Parsing de documentos para RAG

LlamaParse - Parsing de documentos para RAG

LlamaParse es un servicio de parsing de documentos del equipo de LlamaIndex, construido específicamente para pipelines de LLM y RAG. Su enfoque es el caso difícil: PDFs con tablas complejas, layouts multi-columna, figuras y charts embebidos que los extractores de texto genéricos aplanan en texto inutilizable. Produce Markdown limpio que preserva estructura, y su característica distintiva es instrucciones de parsing en lenguaje natural — describes cómo se layout el documento y qué hacer con él, en lugar de configurar reglas de extracción.

LlamaParse es un servicio hospedado con un tier gratuito (API key requerida). Para parsing completamente local ver Docling o Marker.

Instalación

MétodoComando
pippip install llama-parse
Con LlamaIndexpip install llama-index llama-parse
API keyexport 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" (preservador de estructura) o "text"
num_workersProcesamiento de página paralelo
verboseSalida de progreso
languagePista de lenguaje del documento
parsing_instructionGuía en lenguaje natural (abajo)

Instrucciones de parsing (el diferenciador)

parser = LlamaParse(
    result_type="markdown",
    parsing_instruction="""
    Este es un reporte financiero. Preserva todas las tablas como tablas Markdown.
    Para cada chart, escribe un párrafo de una línea describiendo la tendencia que muestra.
    Ignora encabezados y pies de página.
    """,
)

Describes el documento y el manejo deseado en lenguaje plano en lugar de escribir código de extracción — útil para layouts específicos del dominio (facturas, papers científicos, contratos legales) donde los parsers genéricos funcionan pobremente.

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étodoUsar
load_data(path)Archivo único, síncrono
aload_data([paths])Async, múltiples archivos
get_json_result(path)JSON estructurado con metadata de página
get_images(...)Extraer imágenes embebidas

Entradas soportadas

FormatoNota
PDFObjetivo primario, incluyendo escaneados (OCR)
DOCX / PPTX / XLSXFormatos Office
HTMLDocumentos web
ImagesPNG/JPEG vía OCR

Cableando a un pipeline 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 consciente de Markdown mantiene tablas y secciones intactas
node_parser = MarkdownElementNodeParser()
nodes = node_parser.get_nodes_from_documents(docs)

index = VectorStoreIndex(nodes)

Emparejar salida Markdown con un node parser consciente de Markdown es el punto: las tablas sobreviven el parsing y chunking, que es donde la mayoría de pipelines RAG pierden hechos tabulares.

Manejando tablas bien

TécnicaPor qué
result_type="markdown"Las tablas se convierten en grillas Markdown
Instrucción de parsing para tablasForzar manejo consistente de tabla
MarkdownElementNodeParserMantiene una tabla en un chunk
Serialización row-per-sentenceHace filas individuales recuperables

Costo & notas prácticas

ConsideraciónDetalle
Servicio hospedadoLos documentos se envían a LlamaCloud
Tier gratuitoPáginas limitadas por día
CachingRe-parsear el mismo archivo puede reusar resultados
PrivacidadPara documentos sensibles, prefiere parsers locales

LlamaParse vs parsers locales

AspectoLlamaParseDoclingMarker
HostingServicio en cloudLocalLocal
Tablas complejasMuy fuerteFuerteBueno
Instrucciones personalizadasLenguaje naturalConfigConfig
PrivacidadLos datos dejan tu máquinaCompletamente localCompletamente local
Mejor paraLayouts difíciles, resultados rápidosIngesta RAG self-hostedConversión bulk local

Para corpus sensibles a privacidad usa Docling; para conversión bulk local usa Marker.

Recursos