Warum ein LLM-Aufruf keine App ist: Wo LangChain in einem RAG-Pipeline-System Platz findet.
Erfahren Sie, was LangChain tatsächlich leistet, indem Sie eine Dokumenten-Frage-Antwort-App vom Hochladen eines PDFs bis zur fundierten Antwort nachverfolgen, und erkennen Sie, wann ein anderes Framework besser geeignet ist.
Eine große Sprachmodell anzurufen ist einfach: Man sendet einen Prompt und erhält Text zurück. Etwas Nützliches auf dieser Anfrage aufzubauen, ist hingegen nicht einfach. Eine echte Anwendung muss Dokumente verarbeiten, die relevanten Abschnitte finden, das Gespräch verfolgen, Prompts zusammenstellen und all das über eine Benutzeroberfläche präsentieren – wobei das Modell nur ein Teil dieser Komponenten ist. Dieser Artikel erklärt, was LangChain ist, indem er genau diese umgebenden Mechanismen anhand eines Dokumentelesers als Beispiel darstellt. Danach sollten Sie in der Lage sein, jede Phase eines Abrufpipelines zu beschreiben, zu benennen, welche Aufgaben ein Framework wie LangChain von Ihnen übernimmt, und zu beurteilen, ob es oder eine seiner Alternativen für Ihr Projekt geeignet ist.
Was LangChain ist, in einem Absatz
LangChain ist ein Open-Source-Framework zur Erstellung von Anwendungen auf Basis von LLMs. Anstelle eines Modells stellt es modulare Bausteine sowie umfassende Werkzeuge für alle Komponenten bereit, die ein Modell umgeben: Prompt-Vorlagen, Ausgabeparser, Dokumentlader, Suchfunktionen, Speichermöglichkeiten, Tools sowie die Verbindungsmechanismen dazwischen. Es funktioniert mit den wichtigsten Modellanbietern, integriert sich in ein umfangreiches Sortiment an Tools von Drittanbietern, ist kostenlos nutzbar und befindet sich in aktiver Entwicklung. Typische Anwendungen, die Teams damit entwickeln, sind Chatbots, Frage-Antwort-Systeme, retrieval-augmented Generation (RAG) sowie autonome Agenten.
Der entscheidende Denkansatz ist, dass LangChain nicht das LLM selbst ist. Es handelt sich um die Schicht, die es dem LLM ermöglicht, mit Ihren Daten, Ihren Anfragen und Ihren Nutzern zusammenzuarbeiten. Wenn Sie nur eine einzige Anfrage senden und die Antwort ausgeben, benötigen Sie es nicht. Sobald Ihre Anwendung mehrere Schritte umfasst, müssen Sie die dafür notwendigen Strukturen selbst erstellen – etwas, was LangChain bereits bereitstellt.
Ein Überblick über das Thema
Es hilft, zunächst das gesamte Bild zu erkennen, bevor man ins Detail geht. Das Erlernen von LangChain lässt sich in der Regel in drei Bereiche einteilen, wobei jeder Bereich auf dem vorherigen aufbaut.
Grundlagen
Das sind die Komponenten, mit denen jede LangChain-Anwendung arbeitet:
- das allgemeine Komponentenmodell
- Modelle, also die Wrapper um Chat- und Completion-APIs
- Anfragen sowie Vorlagen für Anfragen
- Die Auswertung der Ergebnisse, sodass freie Texte in strukturierte Daten umgewandelt werden
Retrieval-augmented Generation
RAG ist die Methode, mit der ein Modell aus eigenen Dokumenten antworten kann. Die relevanten Komponenten sind:
- Dokumentlader
- Textteiler
- Embeddings
- Vektorlagern
- Auswertungsmechanismen zur Dokumentensuche
- Die Kombination all dieser Komponenten zu einer funktionsfähigen RAG-Anwendung
Agenten
Agenten ermöglichen es dem Modell, selbst zu entscheiden, welche Aktionen ausgeführt werden sollen. Die relevanten Themen sind:
- Werkzeuge und Toolkits
- Aufruf von Werkzeugen
- Erstellung eines Agenten, der diese Werkzeuge nutzt
Der Rest dieses Artikels konzentriert sich auf die ersten beiden Bereiche, da sie erklären, warum das Framework überhaupt existiert.
Das Problem, das LangChain löst
Ein produktionsreifes LLM-System setzt sich selten aus einer einzigen Anfrage zusammen. Schauen Sie sich an, was bereits ein einfacher Assistent bewältigen muss:
- Dokumente einlesen
- Semantische Suche durchführen
- Embeddings erzeugen und speichern
- Retrieval-augmented Generation anwenden
- Kontext sowie Gesprächszustand verwalten
- Eine oder mehrere LLM-Aufrufe koordinieren
- Eine Chat-Schnittstelle bereitstellen
Jeder dieser Aspekte ist für sich allein handhabbar. Wenn man sie manuell miteinander verbindet, entsteht ein Gewirr aus benutzerdefiniertem Code, wobei Änderungen am Modell, am Vektorlager oder an der Prompt-Formatierung das Anfassen mehrerer Dateien erfordern. Der Wert von LangChain liegt darin, jedem Aspekt eine standardisierte Schnittstelle sowie eine Reihe wiederverwendbarer Abstraktionen zu bieten, sodass die Komponenten problemlos in einen Pipeline-Flow integriert werden können und unabhängig voneinander ausgetauscht werden können.
Ein konkretes Beispiel: ein KI-Buchleser
Betrachten Sie eine Anwendung, in der Benutzer Bücher oder PDFs hochladen, sie in einem integrierten Leser lesen und einen Assistenten nach Informationen zu dem Gelesenen fragen. Stellen Sie sich ein Lehrbuch zur maschinellen Lerntheorie vor: Ein Student könnte nach dem Kompromiss zwischen Bias und Varianz, der Struktur einer bestimmten CNN-Architektur, der Funktionsweise der Backpropagation, dem Wirkprinzip von Attention-Mechanismen oder dem geeigneten Optimierungsalgorithmus für ein Problem fragen.
Der Assistent kann nur gut antworten, wenn er die richtigen Seiten sieht. Diese eine Anforderung führt zu einer ganzen Kette von Aufgaben: Das hochgeladene Datei wird geladen, die zum Fragestellung relevanten Abschnitte gefunden, der Chatverlauf bleibt kohärent, ein Prompt wird erstellt, der die Frage mit diesen Abschnitten verbindet, und dieser Prompt wird an das Modell gesendet.
In dieser Anwendung würde LangChain für Folgendes sorgen:
- Das Laden und Auswerten der hochgeladenen Dokumente
- Die Verbindung der Chat-Schnittstelle zum LLM
Dies ist die klarste Veranschaulichung dafür, warum ein alleiniges LLM keine Anwendung darstellt. Das Modell liefert die sprachlichen Fähigkeiten; alles, was dazu beiträgt, eine Antwort zu diesem bestimmten Buch zu liefern, stammt von den zugehörigen Komponenten.
Semantische Suche: Texte nach Bedeutung finden
Der Kern des Buchlesers besteht darin, die richtigen Abschnitte aus einer großen Sammlung herauszusuchen. Die Schlüsselwortsuche hat hier Schwierigkeiten, da die Fragen eines Schülers selten dieselben Wörter wie das Lehrbuch verwenden. Die semantische Suche löst dieses Problem mit Embeddings – numerischen Vektoren, die Textteile mit ähnlicher Bedeutung in einem hochdimensionalen Raum nahe beieinander platzieren. Die Suche bedeutet dann, die gespeicherten Vektoren zu finden, die dem Vektor der Frage am nächsten liegen.
Ein einfaches Beispiel
Nehmen wir an, die Abfrage lautet „Was ist die Hauptstadt Frankreichs?“ Ein semantisches Suchsystem sucht nicht nach Dokumenten, die lediglich Wörter mit der Frage teilen. Es sucht vielmehr nach dem Abschnitt, dessen Bedeutung am nächsten kommt – also einem Paragraphen über Paris – anstatt nach Abschnitten über Berlin oder Madrid, obwohl diese ebenfalls europäische Hauptstädte behandeln und aufgrund gemeinsamer Wörter möglicherweise hohe Punktzahlen erzielen könnten.
Das ist der praktische Unterschied. Ein Schlüsselwort-Engine ordnet nach überlappenden Begriffen; eine semantische Engine ordnet nach der Ähnlichkeit der Bedeutungen. In der Praxis kombinieren viele Produktionsysteme beides, denn genaue Begriffe wie Produktnummern oder Fehlermeldungen profitieren weiterhin von der Schlüsselwortabgleich-Methodik.
Warum das für LLM-Anwendungen wichtig ist
Modelle liefern deutlich bessere Antworten, wenn ihnen relevanter Kontext zur Verfügung steht. Eine gute Dokumentensuche führt daher direkt zu:
- besserer Dokumentenauswahl
LangChain implementiert die Vektorsuche nicht selbst. Es integriert die dafür benötigten Komponenten: Embedding-Modelle, Vektordatenbanken, Suchmechanismen sowie Ähnlichkeitssuche – alles über konsistente Schnittstellen zugänglich.
Von der Frage zur fundierten Antwort in sechs Schritten
Sobald Dokumente suchbar sind, folgt das Beantworten einer Frage einer vorhersehbaren Abfolge:
- Der Benutzer stellt die Frage. Die Frage kommt in natürlicher Sprache herein.
- Die Frage wird eingebettet. Sie wird in einen Vektor umgewandelt, damit sie nach Bedeutung und nicht nach exakten Worten verglichen werden kann.
- Relevanter Text wird abgerufen. Das System holt die Abschnitte oder Seiten, deren Vektoren am nächsten liegen.
- Die Eingabe wird zusammengestellt. Die abgerufenen Abschnitte sowie die ursprüngliche Frage werden zu einem Prompt für das Modell kombiniert.
- Das Modell verarbeitet ihn. Der vollständige Prompt, inklusive Kontext und Frage, wird an das LLM gesendet.
- Eine fundierte Antwort kommt zurück. Da das Modell auf dem bereitgestellten Text statt nur auf dem Gedächtnis schließt, ist die Antwort genauer und lässt sich leichter auf ihre Quelle zurückverfolgen.
Jeder Pfeil in dieser Liste stellt eine Übertragung zwischen Komponenten dar, und genau das ist es, was LangChain dazu dient zu verwalten. Es vereinfacht den Abrufprozess, verknüpft die Prompt-Schritte miteinander, kümmert sich um das Gedächtnis, injiziert Kontext in die Prompts und koordiniert die Aufrufe an das Modell. Dieser sechsstufige Ablauf bildet den Kern jedes RAG-Systems. Wenn Sie einen tieferen Einblick in den Abrufprozess selbst gewinnen möchten, behandelt unsere Erklärung dazu, wie RAG aktuelles Wissen auf Anfrage abruft dieses Thema ausführlicher.
Die vollständige RAG-Architektur
Die oben genannten sechs Schritte setzen voraus, dass die Dokumente bereits indiziert sind. Ein vollständiges System verfügt über zwei Pipelines: Einen, der die Dokumente im Voraus vorbereitet, und einen, der Anfragen auf Anfrage beantwortet.
Dokumente für die Suche vorbereiten
Bevor jemand eine Frage stellen kann, muss jedes Dokument in etwas Umwandelt werden, das suchbar ist:
- Upload. Das PDF wird beispielsweise in einem AWS S3-Bucket gespeichert.
- Load. Ein Dokumentenlader liest die Datei und extrahiert ihren Text in den Verarbeitungspfad.
- Split. Ein Textteiler unterteilt den Text in kleinere Abschnitte oder Seiten. Das ist wichtig, weil das Einbetten eines ganzen Buches als ein einziger Vektor alle Themen miteinander vermischen würde und Modelle nur begrenzte Kontextfenster haben.
- Embed. Jeder Abschnitt wird durch ein Embedding-Modell geleitet und zu einem Vektor.
- Store. Die Vektoren zusammen mit dem von ihnen dargestellten Text werden in einer Vektordatenbank gespeichert.
Zum Ende dieser Phase ist das Dokument bereit, abgefragt zu werden. In der Regel wird dies einmal pro Upload durchgeführt, nicht bei jeder Frage.
Antwort auf eine Anfrage
Sobald eine Frage eintrifft, wird folgender Prozess ausgeführt:
- Einbetten der Anfrage. Die Frage wird mithilfe desselben Embedding-Modells in einen Vektor umgewandelt, sodass sie im selben Raum wie die gespeicherten Fragmente liegt.
- Suche. Eine Ähnlichkeitssuche findet die Fragmente, die der Frage am nächsten sind.
- Ausgabe des Kontexts. Diese Fragmente werden aus der Vektordatenbank abgerufen.
- Aufbau des Prompts. Der abgerufte Text sowie die Frage des Benutzers werden zu einem Systemprompt kombiniert.
- Aufruf des Modells. Der fertige Prompt wird an die LLM-API gesendet.
- Antwort geben. Das Modell gibt eine Antwort zurück, die auf dem abgerufenen Material beruht.
Ein Detail, das Anfänger in Verwirrung stürzt: Die Abfragen und Dokumente müssen mit demselben Modell eingebettet werden. Vektoren aus zwei verschiedenen Embedding-Modellen sind nicht vergleichbar, und ihr stillschweigendes Mischen verschlechtert die Qualität der Suche.
Was man sonst selbst schreiben würde
Sohne Framework müsste ein Team, das dies entwickelt, die Prompt-Verwaltung, die Suchlogik, die Kontexteinbindung, mehrstufige Abläufe, das Speichern von Informationen, die Integration von Tools sowie die Orchestrierung aller Komponenten selbst umsetzen. Keines dieser Elemente ist konzeptionell schwierig, doch sie summieren sich auf und führen dazu, dass der Code stark an ein bestimmtes Modell und eine Datenbank gebunden wird. LangChains wiederverwendbare Abstraktionen für all diese Aspekte ermöglichen ein schnelleres Aufbauen sowie spätere Änderungen der Komponenten mit weniger Umprogrammierung.
Was das Framework bietet
Vier Vorteile tauchen immer wieder auf.
Ketten als Kompositionsmodell
Eine Kette aus Schritten – wie ein Prompt-Template, ein Modellaufruf und ein Ausgabeparser – bildet einen einzigen Workflow, den Sie ausführen, testen und wiederverwenden können. In aktuellen Versionen wird dies durch Runnables und LCEL realisiert, die es ermöglichen, Komponenten miteinander zu verbinden.
Modellunabhängiger Code
Weil LangChain die wichtigsten Anbieter von LLMs über eine gemeinsame Schnittstelle unterstützt, ist Ihre Anwendung nicht an einen bestimmten Anbieter gebunden. Der Wechsel auf ein anderes Modell erfolgt durch eine Konfigurationsänderung statt durch einen Neuschreibvorgang, was sowohl für die Kostenkontrolle als auch zum Ausprobieren neuer Modelle nützlich ist.
Ein umfangreiches Ökosystem
Das Framework kommt mit einer großen Anzahl von Komponenten und Integrationen oder ist damit verbunden: Lader für viele Dateitypen, Vektorlagersysteme, Embedding-Anbieter und -Tools. Vieles von dem, was Sie benötigen, existiert vermutlich bereits als Integration.
Gedächtnis und Zustand
Unterhaltungsanwendungen müssen sich daran erinnern, was zuvor gesagt wurde. LangChain bietet Möglichkeiten, den Konversationskontext, das Gedächtnis sowie den Zustand über mehrere Interaktionen hinweg zu verwalten. Der empfohlene Ansatz hat sich im Laufe der Versionen geändert; neuere Richtlinien legen den Schwerpunkt auf LangGraph für Zustandsbasierte Workflows – prüfen Sie daher die aktuelle Dokumentation für Ihre Version.
Was Sie damit bauen können
Zu den gängigen Anwendungsarten gehören:
- Unterhaltungsbots, bei denen Nutzer in natürlicher Sprache mit einer KI kommunizieren.
- Wissensassistenten, die Menschen dabei helfen, Informationen in ihren eigenen Dokumenten oder Wissensbasen zu finden und zu verstehen.
- KI-Agenten, die mehrstufige Aufgaben bearbeiten und entscheiden, welche Tools dabei verwendet werden sollen.
- Workflow-Automatisierung, bei der eine LLM nur ein Schritt in einem größeren automatisierten Prozess ist.
Wann man eine Alternative in Betracht ziehen sollte
LangChain ist nur eine von mehreren Optionen, und jede Alternative legt den Schwerpunkt auf etwas anderes:
- LlamaIndex konzentriert sich stark darauf, LLMs mit externen Daten zu verbinden und Daten- sowie RAG-Anwendungen zu erstellen.
- Haystack richtet sich auf Suchfunktionen, Fragebeantwortung, RAG und agierende Anwendungen.
- Semantic Kernel ist ein Open-Source-SDK von Microsoft, das KI-Modelle in bestehende Software integriert und mehrstufige KI-Arbeitsabläufe koordiniert.
- DSPy betrachtet LLM-Systeme als Programme, die optimiert werden sollen, anstatt von Ihnen zu verlangen, jeden Prompt manuell zu erstellen.
- AutoGen ist für Anwendungen konzipiert, in denen mehrere Agenten zusammenarbeiten und miteinander kommunizieren.
- CrewAI dient dazu, Teams von Agenten zu koordinieren, die gemeinsam an Aufgaben arbeiten.
- PydanticAI ist ein Python-Framework für Produktivanwendungen sowie Agenten, die strukturierte, typsichere Ausgaben liefern.
Eine grobe Faustregel: Wenn Ihre Anwendung hauptsächlich aus dem Abrufen eigener Daten besteht, lohnt es sich, LlamaIndex oder Haystack miteinander zu vergleichen. Wenn Ihnen typisierte Ausgaben am wichtigsten sind, schauen Sie sich PydanticAI an. Wenn die Zusammenarbeit mehrerer Agenten das zentrale Konzept ist, eignen sich AutoGen oder CrewAI dafür. LangChain’s Stärke liegt in seiner Breite, was es zu einer sinnvollen Standardwahl macht, wenn Sie noch nicht sicher sind, welche Form Ihre Anwendung annehmen wird. Für einen direkten Vergleich der beiden gängigsten Optionen sehen Sie sich unseren Vergleich von LangChain und LlamaIndex an.
Auch ist es wichtig zu wissen, wann man auf kein Framework zurückgreifen sollte. Eine Funktion mit einziger Anfrage oder ein kleiner Script mit einem einzigen Modellaufruf und einer manuell verfassten Anfrage sind oft klarer ohne eine Abstraktionsschicht. Frameworks lohnen sich, wenn die Anzahl der Schritte sowie die austauschbaren Komponenten zunimmt.
Die Bausteine, die man als Nächstes lernen sollte
Sobald das Gesamtbild klar ist, ist der natürliche nächste Schritt die Betrachtung der einzelnen Komponenten, aus denen jede LangChain-Anwendung zusammengesetzt ist:
- Modelle, die Schnittstellen zum Kommunizieren mit verschiedenen KI-Modellen.
- Anfragen, die bestimmen, wie ein Modell auf seine Eingabe reagiert.
- Ketten, die Komponenten zu Workflows verbinden.
- Indizes, die Anwendungen mit externem Wissen verbinden. Neuere Dokumentationen beschreiben diesen Bereich in der Regel im Zusammenhang mit Ladeverfahren, Vektorlagern und Abrufmechanismen.
Durch das Verständnis der jeweiligen Verantwortlichkeiten wird es viel einfacher, LangChain-Code zu lesen und festzulegen, welche Komponenten Ihre eigene Anwendung tatsächlich benötigt.
Haupterkenntnisse
- Ein LLM ist nur ein Bestandteil einer Anwendung; das Laden von Daten, die Abfrage, die Erstellung von Prompts, das Gedächtnis sowie die Benutzeroberfläche bilden alles Weitere – und genau dabei hilft LangChain Ihnen.
- Semantische Suche ordnet Texte anhand ihrer Bedeutung mithilfe von Embeddings, weshalb sie für eine Frage nach der Hauptstadt Frankreichs den Absatz über Paris findet.
- Ein RAG-System besteht aus zwei Pipelines: einem Offline-Pipeline, der Dokumente lädt, teilt, einbettet und speichert, sowie einem Online-Pipeline, der die Abfrage einbettet, Kontext abruft, den Prompt erstellt und das Modell aufruft.
- Setzen Sie Abfragen und Dokumente immer mit demselben Modell ein, andernfalls verschlechtert sich die Qualität der Informationsabrufung erheblich.
- Die Hauptvorteile von LangChain sind die komponentenbasierte Strukturierung, Unabhängigkeit von Anbietern, ein umfangreiches Integrationsecosystem sowie Tools für Zustands- und Speichermanagement.
- Alternative wie LlamaIndex, Haystack, Semantic Kernel, DSPy, AutoGen, CrewAI und PydanticAI legen jeweils den Schwerpunkt auf unterschiedliche Aspekte, und für sehr einfache Anwendungen kann überhaupt kein Framework erforderlich sein.
Zusätzliche Literatur
- Mapping RAG: Pipeline-Stufen, Kernkomponenten und das Variantenlandschaf — Erfahren Sie, wie Retrieval-augmented Generation von Anfang bis Ende funktioniert, welche Komponenten ein RAG-System benötigt und wie sich die vielen verschiedenen RAG-Varianten in einem Überblick darstellen lassen.
- RAG erklärt: Wie AI-Systeme frisches Wissen auf Anfrage abrufen — Lernen Sie, wie Retrieval-Augmented Generation funktioniert – von der Aufteilung in Blöcke und dem Erstellen von Embeddings bis hin zur Vektorsuche – damit KI-Modelle Fragen beantworten können, ohne neu trainiert zu werden.