LlamaParse - Analyse de Document pour RAG
LlamaParse est un service d’analyse de document de l’équipe LlamaIndex, construit spécifiquement pour les pipelines LLM et RAG. Son focus est le cas difficile : les PDF avec des mises en page complexes, des tableaux multi-colonnes, des figures et des graphiques intégrés que les extracteurs de texte génériques aplatissent en texte inutilisable. Il produit un Markdown propre qui préserve la structure, et sa fonctionnalité distinctive est les instructions d’analyse en langage naturel — vous décrivez comment le document est disposé et ce qu’il faut en faire, plutôt que de configurer les règles d’extraction.
LlamaParse est un service hébergé avec un niveau gratuit (clé API requise). Pour l’analyse entièrement locale, voir Docling ou Marker.
Installation
| Méthode | Commande |
|---|
| pip | pip install llama-parse |
| Avec LlamaIndex | pip install llama-index llama-parse |
| Clé API | export LLAMA_CLOUD_API_KEY="llx-..." |
| Vérifier | python -c "from llama_parse import LlamaParse; print('ok')" |
Analyse de Base
from llama_parse import LlamaParse
parser = LlamaParse(result_type="markdown")
documents = parser.load_data("./report.pdf")
print(documents[0].text)
| Paramètre | Objectif |
|---|
result_type | "markdown" (préservation de structure) ou "text" |
num_workers | Traitement parallèle des pages |
verbose | Sortie de progression |
language | Indication de la langue du document |
parsing_instruction | Guidance en langage naturel (ci-dessous) |
Instructions d’Analyse (le différenciateur)
parser = LlamaParse(
result_type="markdown",
parsing_instruction="""
Ceci est un rapport financier. Préserver tous les tableaux en tant que tableaux Markdown.
Pour chaque graphique, écrire une description d'un paragraphe de la tendance qu'il montre.
Ignorer les en-têtes et pieds de page.
""",
)
Vous décrivez le document et le traitement souhaité en langage naturel plutôt que d’écrire du code d’extraction — utile pour les mises en page spécifiques au domaine (factures, articles scientifiques, contrats légaux) où les analyseurs génériques font 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éthode | Utilisation |
|---|
load_data(path) | Fichier unique, synchrone |
aload_data([paths]) | Async, plusieurs fichiers |
get_json_result(path) | JSON structuré avec métadonnées de page |
get_images(...) | Extraire les images intégrées |
Entrées Supportées
| Format | Note |
|---|
| PDF | Cible principale, y compris numérisé (OCR) |
| DOCX / PPTX / XLSX | Formats Office |
| HTML | Documents web |
| Images | PNG/JPEG via OCR |
Câblage dans 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")
# Le chunking conscient de Markdown maintient les tableaux et les sections intacts
node_parser = MarkdownElementNodeParser()
nodes = node_parser.get_nodes_from_documents(docs)
index = VectorStoreIndex(nodes)
L’appairage de la sortie Markdown avec un analyseur de nœud conscient de Markdown est le point : les tableaux survivent l’analyse et le chunking, c’est où la plupart des pipelines RAG perdent les faits tabulaires.
Traiter les Tableaux Bien
| Technique | Pourquoi |
|---|
result_type="markdown" | Les tableaux deviennent des grilles Markdown |
| Instruction d’analyse pour les tableaux | Forcer un traitement de tableau cohérent |
MarkdownElementNodeParser | Garder un tableau dans un chunk |
| Sérialisation ligne-par-phrase | Rendre les lignes individuelles récupérables |
Coût & Notes Pratiques
| Considération | Détail |
|---|
| Service hébergé | Les documents sont envoyés à LlamaCloud |
| Niveau gratuit | Pages limitées par jour |
| Mise en cache | Re-analyser le même fichier peut réutiliser les résultats |
| Confidentialité | Pour les documents sensibles, préférer les analyseurs locaux |
LlamaParse vs Analyseurs Locaux
| Aspect | LlamaParse | Docling | Marker |
|---|
| Hébergement | Service cloud | Local | Local |
| Tableaux complexes | Très fort | Fort | Bon |
| Instructions personnalisées | Langage naturel | Config | Config |
| Confidentialité | Les données quittent votre machine | Entièrement local | Entièrement local |
| Meilleur pour | Mises en page difficiles, résultats rapides | Ingestion RAG auto-hébergée | Conversion en masse locale |
Pour les corpus sensibles à la confidentialité, utilisez Docling ; pour la conversion en masse locale, utilisez Marker.
Ressources