Startseite topics LangChain Was ist LangChain?
Entdecken sie watsonx.ai
Eine Illustration einer Kette aus Zahlen und Buchstaben
Was ist LangChain?

LangChain ist ein Open Source-Orchestrierungs-Framework für die Entwicklung von Anwendungen mit großen Sprachmodellen (LLMs). Die Tools und APIs von LangChain sind sowohl in Python- als auch Javascript-basierten Bibliotheken verfügbar und vereinfachen die Erstellung von LLM-basierten Anwendungen wie Chatbots und virtuellen Agenten.

LangChain dient als generische Schnittstelle für fast jedes LLM und bietet eine zentrale Entwicklungsumgebung, um LLM-Anwendungen zu erstellen und sie in externe Datenquellen und Software-Workflows zu integrieren. Der modulbasierte Ansatz von LangChain ermöglicht es Entwicklern und Data Scientists, verschiedene Eingabeaufforderungen und sogar verschiedene Foundation Models dynamisch zu vergleichen, ohne dass Code neu geschrieben werden muss. Diese modulare Umgebung ermöglicht auch Programme, die mehrere LLMs verwenden, z. B. eine Anwendung, die ein LLM zum Interpretieren von Benutzerabfragen und ein anderes LLM zum Verfassen einer Antwort verwendet. 

Im Oktober 2022 von Harrison Chase ins Leben gerufen, erlebte LangChain einen kometenhaften Aufstieg: Im Juni 2023 war es das am schnellsten wachsende Open Source-Projekt auf Github.1 Zeitgleich mit dem bedeutenden Start von OpenAIs ChatGPT im darauffolgenden Monat hat LangChain eine wichtige Rolle dabei gespielt, generative KI im Zuge ihrer großen Popularität für Enthusiasten zugänglicher zu machen. 

LangChain kann die meisten Anwendungsfälle für LLMs und die Verarbeitung natürlicher Sprache (NLP) erleichtern, wie Chatbots, intelligente Suche, Frage-Antwort-Dienste, Zusammenfassungsdienste oder sogar virtuelle Agenten, die zur Robotic Process Automation fähig sind.

Integrationen mit LLMs

LLMs sind keine eigenständigen Anwendungen: Sie sind vortrainierte statistische Modelle, die mit einer Anwendung (und in einigen Fällen bestimmten Datenquellen) kombiniert werden müssen, um ihren Zweck zu erfüllen. 

Chat-GPT ist beispielsweise kein LLM: Es ist eine Chatbot-Anwendung, die je nach gewählter Version das Sprachmodell GPT-3.5 oder GPT-4 verwendet. Während das GPT-Modell die Eingaben des Benutzers interpretiert und eine Antwort in natürlicher Sprache verfasst, ist es die Anwendung, die (unter anderem) eine Schnittstelle für den Benutzer zum Tippen und Lesen sowie ein UX-Design bereitstellt, das die Chatbot-Erfahrung bestimmt. Selbst auf Unternehmensebene ist Chat-GPT nicht die einzige Anwendung, die das GPT-Modell verwendet: Microsoft nutzt GPT-4, um Bing Chat zu unterstützen. 

Darüber hinaus sind Foundation Models (wie die, die LLMs unterstützen) zwar mit riesigen Datensätzen vortrainiert, aber nicht allwissend. Wenn eine bestimmte Aufgabe den Zugang zu spezifischen Kontextinformationen erfordert, wie z. B. interne Dokumentation oder Fachwissen, müssen LLMs mit diesen externen Datenquellen verbunden sein. Selbst wenn Sie nur wollen, dass Ihr Modell das aktuelle Geschehen in Echtzeit wiedergibt, benötigt es externe Informationen: Die internen Daten eines Modells sind nur über den Zeitraum aktuell, in dem es trainiert wurde. 

Wenn eine bestimmte generative KI-Aufgabe beispielsweise Zugriff auf externe Software-Workflows erfordert – wenn Sie beispielsweise möchten, dass Ihr virtueller Agent in Slack integriert wird –, benötigen Sie eine Möglichkeit, das LLM mit der API für diese Software zu integrieren. 

Während diese Integrationen im Allgemeinen mit vollständig manuellem Code erreicht werden können, vereinfachen Orchestrierungs-Frameworks wie LangChain und die IBM Watsonx-Plattform den Prozess erheblich. Sie machen es auch viel einfacher, mit verschiedenen LLMs zu experimentieren und Ergebnisse zu vergleichen, da verschiedene Modelle mit minimalen Änderungen am Code ein- und ausgetauscht werden können.  

Open Source @ IBM

Von Blockchain über Container und KI bis hin zu Betriebssystemen und allem, was dazwischen liegt - unsere Entwickler erstellen neue Open Source-Projekte und stellen ihnen Code, Dokumente und unterstützende Materialien zur Verfügung, damit Sie sich an der Innovation beteiligen können.

Ähnliche Inhalte

Newsletter von IBM abonnieren

Wie funktioniert LangChain?

Der Kern von LangChain ist eine Entwicklungsumgebung, die die Programmierung von LLM-Anwendungen durch Abstraktion vereinfacht: die Vereinfachung des Codes durch die Darstellung eines oder mehrerer komplexer Prozesse als benannte Komponente, die alle zugehörigen Schritte kapselt.

Abstraktionen sind ein übliches Element des Alltags und der Sprache. Mit „π“ können wir zum Beispiel das Verhältnis der Länge des Kreisumfangs zu dem seines Durchmessers darstellen, ohne seine unendlichen Ziffern ausschreiben zu müssen. Ein Thermostat ermöglicht es uns, die Temperatur in unserem Haus zu regeln, ohne dass wir die komplexen Schaltkreise verstehen müssen, die damit verbunden sind – wir müssen nur wissen, wie unterschiedliche Thermostateinstellungen zu unterschiedlichen Temperaturen führen.

LangChain ist im Wesentlichen eine Bibliothek mit Abstraktionen für Python und Javascript, die allgemeine Schritte und Konzepte darstellt, die für die Arbeit mit Sprachmodellen erforderlich sind. Diese modularen Komponenten – wie Funktionen und Objektklassen – dienen als Bausteine generativer KI-Programme. Sie können miteinander „verkettet“ werden, um Anwendungen zu erstellen, wodurch der Umfang des Codes und der für die Ausführung komplexer NLP-Aufgaben erforderlichen Feinkenntnisse minimiert wird. Obwohl der abstrakte Ansatz von LangChain das Ausmaß einschränkt, in dem ein erfahrener Programmierer eine Anwendung detailliert anpassen kann, ermöglicht er es Spezialisten und Neulingen gleichermaßen, schnell zu experimentieren und Prototypen zu erstellen.

Importieren von Sprachmodellen

Fast jedes LLM kann in LangChain verwendet werden. Das Importieren von Sprachmodellen in LangChain ist einfach, vorausgesetzt, Sie haben einen API-Schlüssel. Die Klasse LLM ist so konzipiert, dass sie eine Standardschnittstelle für alle Modelle bietet.

Bei den meisten LLM-Anbietern müssen Sie ein Konto erstellen, um einen API-Schlüssel zu erhalten. Einige dieser APIs – insbesondere diejenigen für proprietäre Closed-Source-Modelle, wie sie von OpenAI oder Anthropic angeboten werden – können mit Kosten verbunden sein.

Viele Open Source-Modelle, wie BLOOM von BigScience, LLaMa von Meta AI und Flan-T5 von Google, können über Hugging Face (Link befindet sich außerhalb von ibm.com) abgerufen werden. IBM watsonx bietet durch seine Partnerschaft mit Hugging Face auch eine kuratierte Suite von Open-Source-Modellen an. Wenn Sie ein Konto bei einem der Dienste erstellen, können Sie einen API-Schlüssel für jedes der von diesem Anbieter angebotenen Modelle generieren.

LangChain ist nicht auf sofort einsatzfähige Foundation Models beschränkt: Die CustomLLM-Klasse  (Link befindet sich außerhalb von ibm.com) ermöglicht benutzerdefinierte LLM-Wrapper. Ebenso können Sie die IBM watsonx-APIs und Python-SDK verwenden, die eine LangChain-Integration enthalten, um Anwendungen in LangChain mit Modellen zu erstellen, die Sie bereits trainiert oder für Ihre spezifischen Anforderungen optimiert haben, indem Sie die WatsonxLLM-Klasse (und die spezifische Projekt-ID des Modells) verwenden.

Entdecken Sie die Demo: Verwenden Sie watsonx und LangChain, um eine Reihe von Aufrufen an ein Sprachmodell durchzuführen
Prompt-Vorlagen

Prompts sind die Anweisungen, die einem LLM gegeben werden. Die „Kunst“, Prompts zu verfassen, die dem LLM den nötigen Kontext bieten, um Eingaben zu interpretieren und Ausgaben so zu strukturieren, wie es für Sie am nützlichsten ist, wird oft als Prompt Engineering bezeichnet. 

Die PromptTemplate-Klasse in LangChain formalisiert die Zusammensetzung von Eingaben ohne manuellen Hartcode-Kontext und Abfragen. Wichtige Elemente einer Eingabe werden ebenso wie formelle Klassen wie input_variables eingegeben. Eine Prompt-Vorlage kann also Kontext, Anweisungen (wie „keine Fachbegriffe verwenden“), eine Reihe von Beispielen zur Anleitung der Antworten (im so genannten „Few-Shot-Prompting“), ein bestimmtes Ausgabeformat oder eine standardisierte Frage enthalten und wiedergeben.  Sie können eine effektiv strukturierte Prompt-Vorlage speichern und benennen und sie nach Bedarf einfach wiederverwenden.

Obwohl diese Elemente alle manuell kodiert werden können, ermöglichen PromptTemplate-Module eine reibungslose Integration mit anderen LangChain-Funktionen, wie den gleichnamigen Ketten.

Sehen Sie sich das Video an: Prompt Engineering und Prompt Tuning
Ketten

Wie der Name schon sagt, sind Ketten der Kern der Workflows von LangChain. Sie kombinieren LLMs mit anderen Komponenten und erstellen Anwendungen, indem sie eine Abfolge von Funktionen ausführen. 

Die grundlegendste Kette ist LLMChain. Sie ruft einfach ein Modell auf und fordert eine Vorlage für dieses Modell auf. Stellen Sie sich beispielsweise vor, Sie haben einen Prompt als „ExamplePrompt“ gespeichert und möchten ihn für Flan-T5 ausführen. Sie können LLMChain von langchain.chains importieren, dann chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt) definieren. Um die Kette für einen bestimmten Eingang auszuführen, rufen Sie einfach chain_example.run("input") auf.

Um die Ausgabe einer Funktion als Eingabe für die nächste Funktion zu verwenden, können Sie SimpleSequentialChain verwenden. Für jede Funktion können je nach Bedarf unterschiedliche Eingabeaufforderungen, unterschiedliche Werkzeuge, unterschiedliche Parameter oder sogar unterschiedliche Modelle verwendet werden. 

Indexe

Um bestimmte Aufgaben zu erfüllen, benötigen LLMs Zugriff auf bestimmte externe Datenquellen, die nicht in ihrem Trainingsdatensatz enthalten sind, wie z. B. interne Dokumente, E-Mails oder Datensätze. LangChain bezeichnet solche externe Dokumentation zusammenfassend als „Indexe“.

Dokumenten-Lader 
LangChain bietet eine Vielzahl von Dokumentenladern für Anwendungen von Drittanbietern (Link befindet sich außerhalb von ibm.com). Dies ermöglicht das einfache Importieren von Daten aus Quellen wie Dateispeicherdiensten (wie Dropbox, Google Drive und Microsoft OneDrive), Webinhalten (wie YouTube, PubMed oder spezifische URLs), Kollaborationstools (wie Airtable, Trello, Figma und Notion), Datenbanken (wie Pandas, MongoDB und Microsoft) usw. 

Vektordatenbanken 
Im Gegensatz zu „herkömmlichen“ strukturierten Datenbanken stellen Vektordatenbanken Datenpunkte dar, indem sie sie in Vektoreinbettungen umwandeln: numerische Darstellungen in Form von Vektoren mit einer festen Anzahl von Dimensionen, die häufig verwandte Datenpunkte mithilfe unüberwachter Lernmethoden gruppieren. Dies ermöglicht Abfragen mit geringer Latenz, selbst für große Datensätze, was die Effizienz erheblich steigert. Vektor-Einbettungen speichern auch die Metadaten der einzelnen Vektoren, was die Suchmöglichkeiten weiter verbessert.

LangChain bietet Integrationen für über 25 verschiedene Einbettungsmethoden sowie für über 50 verschiedene Vektorspeicher (sowohl in der Cloud gehostet als auch lokal). 

Textteiler 
Um die Geschwindigkeit zu erhöhen und den Rechenaufwand zu reduzieren, ist es oft ratsam, große Textdokumente in kleinere Teile aufzuteilen. Die TextSplitter von LangChain teilen Text in kleine, semantisch bedeutsame Abschnitte auf, die dann mit Methoden und Parametern Ihrer Wahl kombiniert werden können.

Abruf 
Sobald externe Wissensquellen angeschlossen sind, muss das Modell in der Lage sein, relevante Informationen schnell abzurufen und zu integrieren, wenn sie benötigt werden. Wie watsonx bietet LangChain Retrieval Augmented Generation (RAG): Die Retriever-Module akzeptieren eine Zeichenfolgenabfrage als Eingabe und geben eine Liste der Dokument-Ausgaben zurück.

Hauptspeicher

LLMs haben standardmäßig keine langfristige Erinnerung an frühere Unterhaltungen (es sei denn, der Chatverlauf wird als Eingabe für eine Abfrage verwendet). LangChain löst dieses Problem mit einfachen Hilfsprogrammen zum Hinzufügen von Speicherplatz zu einem System, mit Optionen, die von der Speicherung der Gesamtheit aller Unterhaltungen über die Speicherung einer Zusammenfassung der bisherigen Unterhaltungen bis hin zur Speicherung der letzten n Unterhaltungen reichen.

Agenten

LangChain-Agenten können ein bestimmtes Sprachmodell als „Argumentationsmaschine“ verwenden, um zu bestimmen, welche Maßnahmen ergriffen werden sollen. Bei der Erstellung einer Kette für einen Agenten werden u. a. folgende Daten eingegeben:

  • eine Liste der verfügbaren Tools, die genutzt werden können.
  • Benutzereingabe (wie Eingaben und Abfragen).
  • alle relevanten zuvor ausgeführten Schritte.
Erfahren Sie mehr über Agenten in LangChain
Tools

Trotz ihrer vielgepriesenen Leistungsfähigkeit und Vielseitigkeit weisen LLMs wichtige Einschränkungen auf: nämlich einen Mangel an aktuellen Informationen, einen Mangel an fachspezifischem Fachwissen und allgemeine Schwierigkeiten mit Mathematik. 

LangChain-Tools (Link befindet sich außerhalb von ibm.com) sind eine Reihe von Funktionen, die es LangChain-Agenten ermöglichen, mit realen Informationen zu interagieren, um die von ihnen bereitgestellten Dienste zu erweitern oder zu verbessern. Beispiele für bekannte LangChain-Tools sind:

  • Wolfram Alpha: Bietet Zugriff auf leistungsstarke Rechen- und Datenvisualisierungsfunktionen und ermöglicht anspruchsvolle mathematische Funktionen.

  • Google-Suche: Bietet Zugriff auf die Google-Suche und versorgt Anwendungen und Agenten mit Echtzeitinformationen.

  • OpenWeatherMap: ruft Wetterinformationen ab.

  • Wikipedia: bietet effizienten Zugriff auf Informationen aus Wikipedia-Artikeln.

LangSmith

LangSmith wurde im Herbst 2023 veröffentlicht und soll die Lücke zwischen den zugänglichen Prototyping-Funktionen, die LangChain bekannt gemacht haben, und der Erstellung von LLM-Anwendungen in Produktionsqualität schließen.

LangSmith bietet Tools zum Überwachen, Bewerten und Debuggen von Anwendungen, einschließlich der Möglichkeit, alle Modellaufrufe automatisch zu verfolgen, um Fehler zu erkennen und die Leistung unter verschiedenen Modellkonfigurationen zu testen. Diese Transparenz zielt darauf ab, robustere und kosteneffizientere Anwendungen zu ermöglichen.

Erste Schritte mit LangChain

LangChain ist Open Source und kann kostenlos verwendet werden: Quellcode ist für den Download auf Github verfügbar (Link befindet sich außerhalb von ibm.com). 

LangChain kann auch mit einem einfachen Pip-Befehl auf Python installiert werden: pip install langchain.  Um alle LangChain-Abhängigkeiten zu installieren (statt nur diejenigen, die Sie finden), können Sie den Befehl pip install langchain[all] ausführen.

Viele Schritt-für-Schritt-Anleitungen sind sowohl im größeren LangChain-Community-Ökosystem als auch in der offiziellen Dokumentation unter docs.langchain.com verfügbar (Link befindet sich außerhalb von ibm.com).

Anwendungsfälle von LangChain

Anwendungen, die mit LangChain erstellt wurden, bieten einen großen Nutzen für eine Vielzahl von Anwendungsfällen, von einfachen Aufgaben zur Beantwortung von Fragen und zur Texterstellung bis hin zu komplexeren Lösungen, die ein LLM als „Argumentationsmaschine“ verwenden.

  • Chatbots: Chatbots gehören zu den intuitivsten Verwendungen von LLMs. LangChain kann verwendet werden, um den richtigen Kontext für den spezifischen Einsatz eines Chatbots bereitzustellen und Chatbots mit ihren eigenen APIs in bestehende Kommunikationskanäle und Workflows zu integrieren.
  • Zusammenfassungen: Sprachmodelle können mit der Zusammenfassung vieler Textarten beauftragt werden, von der Aufschlüsselung komplexer akademischer Artikel und Abschriften bis hin zur Zusammenfassung eingehender E-Mails.
  • Beantwortung von Fragen: Mithilfe spezifischer Dokumente oder spezialisierter Wissensdatenbanken (wie Wolfram, arXiv oder PubMed) können LLMs relevante Informationen aus dem Speicher abrufen und hilfreiche Antworten formulieren. Bei entsprechender Feinabstimmung oder entsprechender Anregung können einige LLMs viele Fragen auch ohne externe Informationen beantworten.
  • Datenerweiterung: LLMs können verwendet werden, um synthetische Daten zur Verwendung in maschinellem Lernen zu generieren. Beispielsweise kann ein LLM trainiert werden, um zusätzliche Datenproben zu generieren, die den Datenpunkten in einem Trainingsdatensatz sehr ähnlich sind.
  • Virtuelle Agenten: Die Agentenmodule von LangChain sind in die richtigen Workflows integriert und können mithilfe eines LLM autonom die nächsten Schritte festlegen und mithilfe von Robotic Process Automation (RPA) Maßnahmen ergreifen.
Weiterführende Lösungen
watsonx.ai

Trainieren, prüfen, optimieren und implementieren Sie generative KI, Foundation Models und maschinelles Lernen problemlos und erstellen Sie KI-Anwendungen in einem Bruchteil der Zeit und zu einem Bruchteil der Daten.

watsonx.ai erkunden

KI-Beratungsleistungen

Stellen Sie sich die Art und Weise, wie Sie mit KI arbeiten, neu vor: Unser vielfältiges, globales Team von mehr als 20.000 KI-Experten kann Ihnen dabei helfen, KI und Automatisierung in Ihrem Unternehmen schnell und sicher zu entwerfen und zu skalieren, indem es mit unserer eigenen IBM watsonx-Technologie und einem offenen Ökosystem von Partnern arbeitet, um jedes KI-Modell in jeder Cloud bereitzustellen, geleitet von Ethik und Vertrauen.

Entdecken Sie unsere IBM KI-Beratungsleistungen

watsonx.data

Mit watsonx.data, dem branchenweit einzigen offenen, hybriden und kontrollierten Datenspeicher, skalieren Sie Analyse- und KI-Workloads für alle Ihre Daten – und das überall.

watsonx.data erkunden
LangChain-Ressourcen

Tools, Tipps und Beispielcode zum Erstellen von Anwendungen mit LangChain und watsonx.

Tipps zum Schreiben von Prompts für Foundation Models

Teilweise Kunst, teils Wissenschaft, Prompt Engineering ist der Prozess, bei dem Prompt-Text so erstellt wird, dass er für ein bestimmtes Modell und bestimmte Parameter am besten funktioniert. Mit diesen Tipps können Sie die meisten textgenerierenden Foundation Models erfolgreich aufrufen.

Verwenden von watsonx und LangChain zum Aufrufen eines Sprachmodells

Dieses Notebook enthält die Schritte und den Code zur Demonstration der einfachen sequenziellen Kette mithilfe der Langchain-Integration mit watsonx-Modellen. Eine gewisse Vertrautheit mit Python ist hilfreich.

Anleitung für Anfänger in Python

Wir stellen die grundlegenden Konzepte vor, die Sie kennen sollten, um mit dieser unkomplizierten Programmiersprache zu beginnen, von der Ausführung algebraischer Berechnungen bis zur Generierung grafischer Ausgaben aus Ihren Daten.

Machen Sie den nächsten Schritt

Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelles Lernen mit Leichtigkeit und erstellen Sie KI-Anwendungen in einem Bruchteil der Zeit und mit einem Bruchteil der Daten mit IBM watsonx.ai, einem Unternehmensstudio der nächsten Generation für KI-Entwickler.

Kostenlosen Test starten Buchen Sie eine Live-Demo
Fußnoten

1 The fastest-growing open-source startups in Q2 2023 (Link befindet sich außerhalb von ibm.com), Runa Capital, 2023