LlamaIndex
LlamaIndex ist ein quelloffenes Framework, das private Daten für LLMs lädt, indiziert und abruft und so RAG-Pipelines und Dokumentenagenten ermöglicht.
LlamaIndex ist ein quelloffenes Framework, das große Sprachmodelle (LLMs) mit privaten Daten verbindet: Es lädt Dokumente, Datenbanken und APIs, indexiert deren Inhalte und ruft die Textpassagen ab, die ein Modell zur Beantwortung einer Frage benötigt. Die meisten damit entwickelten Anwendungen nutzen Retrieval-Augmented Generation (RAG), beispielsweise Assistenten, die Fragen anhand der Handbücher, Verträge oder Tickets eines Unternehmens beantworten, sowie KI-Agenten, die Dokumente lesen und Aktionen ausführen. Jerry Liu veröffentlichte das Projekt im November 2022 unter dem Namen GPT Index und benannte es im Februar 2023 in LlamaIndex um. Das LlamaIndex-Framework ist für Python und TypeScript verfügbar. Das zugehörige Unternehmen betreibt außerdem LlamaParse, einen gehosteten Dienst, der komplexe PDFs, Tabellen und Folien in gut indexierbaren Text umwandelt.
So funktioniert LlamaIndex#
Eine LlamaIndex-Anwendung hat zwei Phasen. Die Aufnahme wird bei jeder Datenaktualisierung einmal ausgeführt: Konnektoren von LlamaHub laden Dateien und Dienste als Document-Objekte. Ein Knotenparser teilt jedes Objekt in Abschnitte, sogenannte Nodes, auf. Ein Einbettungsmodell wandelt anschließend jeden Node in einen Vektor um, sein Embedding, der in einem Index gespeichert wird. Die Abfrage läuft für jede Frage: Ein Retriever findet die Nodes, die der Frage am nächsten liegen. Nachbearbeitungsschritte wie ein Reranker ordnen sie neu oder filtern sie. Ein Antwortgenerator fügt die übrigen Nodes mit Anweisungen, die Antwort daraus abzuleiten, in das Kontextfenster des LLM ein.
Der VectorStoreIndex ist die Standardeinstellung und speichert Embeddings im Arbeitsspeicher oder in einer externen Vektordatenbank. Andere Indizes senden jeden Abschnitt an das Modell, um Zusammenfassungen zu erstellen, bauen für Abfragen im Stil von GraphRAG einen Wissensgraphen aus Entitäten und Beziehungen auf oder gleichen Schlüsselwörter ab. Eine Abfrage-Engine beantwortet eine einzelne Frage, eine Chat-Engine führt ein Gespräch weiter. Workflows, die ereignisgesteuerte Orchestrierungsschicht von LlamaIndex, verbinden Abruf, Tools und mehrere Agenten zu agentischen RAG-Systemen, die entscheiden, wonach und wann gesucht wird.
Bilder nach ihrem Inhalt indexieren#
Der Abruf funktioniert mit allen Inhalten, die sich als Text darstellen lassen. Wenn du Ultralytics YOLO26 auf eine Fotosammlung anwendest, wird jedes Bild in eine durchsuchbare Beschreibung umgewandelt: Results.verbose() gibt die Anzahl der einzelnen Klassen eines Ergebnisses im Vorhersagemodus als kurze Zeichenfolge zurück. Daraus entsteht ein Document, dessen Metadaten die Bild-URL enthalten. Ein lokales Hugging Face-Einbettungsmodell ermöglicht es anschließend, den Index ohne API-Schlüssel zu nutzen:
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))Der Retriever gibt das Busbild zusammen mit seinem Wert für die Kosinusähnlichkeit zurück. Er findet das Bild anhand der Beschreibung des Detektors, nicht anhand des Dateinamens. Mit einem darüberliegenden Antwortgenerator lassen sich Fragen zur Sammlung in Fließtext beantworten – das Grundmuster hinter multimodalem RAG, das Bildverarbeitung mit der Suche in Dokumenten verbindet.
LlamaIndex und verwandte Tools#
- LangChain: Ein allgemeines Framework für LLM-Anwendungen und Agenten mit einer großen Auswahl an Integrationen. Beide Projekte decken inzwischen Abruf und Agenten ab. LlamaIndex bietet mehr Möglichkeiten bei der Datenaufnahme, beim Parsing und bei Indextypen. Teams nutzen seine Retriever häufig in LangChain- oder LangGraph-Agenten.
- Vektordatenbanken: Sie speichern Vektoren und ermöglichen die Vektorsuche. LlamaIndex arbeitet darüber und bestimmt, wie Dokumente geparst, in Abschnitte aufgeteilt, eingebettet, abgerufen und an das Modell übergeben werden. Als Backend unterstützt es Dutzende Vektorspeicher.
- Semantische Suche: Der Abrufschritt für sich allein. LlamaIndex ergänzt die Generierung, sodass die Ergebnisse als Antwort mit den zugehörigen Nodes als Quellenangabe zurückgegeben werden.










