LlamaIndex
LlamaIndex est un framework open source qui charge, indexe et récupère des données privées pour les LLM, alimentant des pipelines RAG et des agents documentaires.
LlamaIndex est un framework open source qui connecte les grands modèles de langage (LLM) à des données privées : il charge des documents, des bases de données et des API, indexe leur contenu et récupère les passages dont un modèle a besoin pour répondre à une question. La plupart des applications qui l’utilisent reposent sur la génération augmentée par récupération (RAG), par exemple des assistants qui répondent à partir des manuels, contrats ou tickets d’une entreprise, et des agents d’IA qui lisent des documents et agissent sur leur contenu. Jerry Liu a publié le projet sous le nom GPT Index en novembre 2022, puis l’a renommé LlamaIndex en février 2023. Le framework LlamaIndex est disponible en Python et TypeScript, et son entreprise propose également LlamaParse, un service hébergé qui convertit les PDF complexes, les tableaux et les diapositives en texte facile à indexer.
Fonctionnement de LlamaIndex#
Une application LlamaIndex comporte deux phases. L’ingestion s’exécute une fois à chaque mise à jour des données : les connecteurs de LlamaHub chargent les fichiers et les services sous forme d’objets Document, un analyseur de nœuds les divise en segments appelés Nodes, puis un modèle d’embedding convertit chaque Node en vecteur, son embedding, qui est stocké dans un index. L’interrogation s’exécute pour chaque question : un système de récupération trouve les Nodes les plus proches de la question, des postprocesseurs tels qu’un réordonnanceur les réorganisent ou les filtrent, puis un synthétiseur de réponses place les éléments retenus dans la fenêtre de contexte du LLM avec pour instruction de répondre à partir de ceux-ci.
Le VectorStoreIndex est celui utilisé par défaut ; il stocke les embeddings en mémoire ou dans une base de données vectorielle externe. D’autres index envoient chaque segment au modèle pour en obtenir un résumé, construisent un graphe de connaissances d’entités et de relations pour les requêtes de type GraphRAG, ou font correspondre des mots-clés. Un moteur de requête répond à une question unique, un moteur de chat conserve une conversation, et Workflows, la couche d’orchestration événementielle de LlamaIndex, relie la récupération, les outils et plusieurs agents dans des systèmes de RAG agentique qui déterminent quoi rechercher et à quel moment.
Indexer les images selon leur contenu#
La récupération fonctionne sur tout contenu exprimable sous forme de texte. L’exécution de Ultralytics YOLO26 sur une collection de photos transforme chaque image en une description consultable : Results.verbose() renvoie sous forme de chaîne courte le nombre de détections par classe d’un résultat en mode prédiction ; cette chaîne devient un Document dont les métadonnées conservent l’URL de l’image. Un modèle d’embedding Hugging Face local permet ensuite d’utiliser l’index sans clé API :
from llama_index.core import Document, Settings, VectorStoreIndex
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from ultralytics import YOLO
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")
model = YOLO("yolo26n.pt")
# Describe each image by its detections; the URL stays in metadata and out of the embedding
docs = []
for url in ["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]:
results = model(url)
text = f"A photo containing {results[0].verbose()}"
docs.append(Document(text=text, metadata={"image": url}, excluded_embed_metadata_keys=["image"]))
# Index the descriptions, then retrieve the image that best matches a question
index = VectorStoreIndex.from_documents(docs)
retriever = index.as_retriever(similarity_top_k=1)
nodes = retriever.retrieve("Which photo shows a bus?")
print(nodes[0].node.metadata["image"], round(nodes[0].score, 3))Le système de récupération renvoie l’image du bus accompagnée de son score de similarité cosinus, trouvée grâce à la description du détecteur plutôt qu’au nom du fichier. L’ajout d’un synthétiseur de réponses permet de répondre en langage naturel aux questions sur la collection ; c’est le principe des systèmes de RAG multimodale qui associent la vision par ordinateur à la recherche dans des documents.
LlamaIndex et les outils connexes#
- LangChain : Framework général pour les applications LLM et les agents, doté d’un vaste ensemble d’intégrations. Les deux projets couvrent désormais la récupération et les agents ; LlamaIndex approfondit davantage l’ingestion, l’analyse et les types d’index, et les équipes utilisent souvent ses systèmes de récupération dans des agents LangChain ou LangGraph.
- Bases de données vectorielles : Stockent des vecteurs et effectuent une recherche vectorielle. LlamaIndex se situe au-dessus d’elles et détermine comment les documents sont analysés, segmentés, convertis en embeddings, récupérés et transmis au modèle ; il prend en charge des dizaines de magasins vectoriels comme systèmes back-end.
- Recherche sémantique : L’étape de récupération à elle seule. LlamaIndex ajoute la génération ; les résultats prennent donc la forme d’une réponse accompagnée des Nodes sources à citer.










