LLM-gestützte Anwendungen mit LangChain erstellen

Auf dieser Seite wird erläutert, wie Sie LLM-basierte Anwendungen mit LangChain erstellen. Die Übersichten auf dieser Seite verweisen zu den Verfahrensanleitungen in GitHub.

Was ist LangChain?

LangChain ist ein LLM-Orchestrierungs-Framework, mit dem Entwickler generative KI-Anwendungen oder RAG-Workflows (Retrieval Augmented Generation) erstellen können. Es bietet die Struktur, die Tools und die Komponenten, um komplexe LLM-Workflows zu optimieren.

Weitere Informationen zu LangChain finden Sie auf der Seite Google LangChain. Weitere Informationen zum LangChain-Framework finden Sie in der Produktdokumentation LangChain.

LangChain-Komponenten für Spanner

Spanner bietet die folgenden LangChain-Schnittstellen:

LangChain-Schnellstart für Spanner

Vektorspeicher für Spanner

Mit dem Vektorspeicher werden Dokumente und Metadaten aus einer Vektordatenbank abgerufen und gespeichert. Der Vektorspeicher bietet einer Anwendung die Möglichkeit, semantische Suchen durchzuführen, die die Bedeutung einer Nutzerabfrage interpretieren. Diese Art der Suche wird als Vektorsuche bezeichnet und kann Themen finden, die konzeptionell der Abfrage entsprechen. Zum Zeitpunkt der Abfrage ruft der Vektorspeicher die Einbettungsvektoren ab, die der Einbettung der Suchanfrage am ähnlichsten sind. In LangChain übernimmt ein Vektorspeicher das Speichern eingebetteter Daten und das Ausführen der Vektorsuche für Sie.

Verwenden Sie die Klasse SpannerVectorStore, um mit dem Vektorspeicher in Spanner zu arbeiten.

Weitere Informationen finden Sie in der Produktdokumentation zu LangChain Vector Stores.

Anleitung zum Verfahren für den Vektorspeicher

In der Spanner-Anleitung für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:

  • Integrationspaket und LangChain installieren
  • Tabelle für den Vektorspeicher initialisieren
  • Einbettungsdienst mit VertexAIEmbeddings einrichten
  • SpannerVectorStore initialisieren
  • Dokumente hinzufügen und löschen
  • Nach ähnlichen Dokumenten suchen
  • Benutzerdefinierten Vektorspeicher erstellen, um eine Verbindung zu einer vorhandenen Spanner-Datenbank mit einer Tabelle mit Vektoreinbettungen herzustellen

Dokument-Loader für Spanner

Der Dokument-Loader speichert, lädt und löscht LangChain-Document-Objekte. Beispielsweise können Sie Daten zur Verarbeitung in Einbettungen laden und entweder im Vektorspeicher speichern oder sie als Tool verwenden, um spezifischen Kontext für Ketten bereitzustellen.

Verwenden Sie die Klasse SpannerLoader, um Dokumente aus Spanner zu laden. Verwenden Sie die Klasse SpannerDocumentSaver, um Dokumente zu speichern und zu löschen.

Weitere Informationen finden Sie unter LangChain-Dokument-Loader.

Anleitung zum Laden von Dokumenten

In der Spanner-Anleitung für das Laden von Dokumenten erfahren Sie, wie Sie Folgendes tun:

  • Integrationspaket und LangChain installieren
  • Dokumente aus einer Tabelle laden
  • Filter zum Loader hinzufügen
  • Verbindung und Authentifizierung anpassen
  • Dokumenterstellung durch Angabe von Kundeninhalten und Metadaten anpassen
  • SpannerDocumentSaver zum Speichern und Löschen von Dokumenten verwenden und anpassen

Verlauf der Chatnachrichten für Spanner

Frage-und-Antwort-Anwendungen erfordern einen Verlauf der in der Unterhaltung gesprochenen Dinge, um der Anwendung Kontext zur Beantwortung weiterer Fragen des Nutzers zu bieten. Die LangChain-Klasse ChatMessageHistory ermöglicht der Anwendung, Nachrichten in einer Datenbank zu speichern und bei Bedarf zur Formulierung weiterer Antworten abzurufen. Eine Nachricht kann eine Frage, eine Antwort, eine Aussage, eine Begrüßung oder andere Texte sein, die der Nutzer oder die Anwendung während der Unterhaltung gibt. ChatMessageHistory speichert jede Nachricht und verkettet Nachrichten für jede Unterhaltung.

Spanner erweitert diese Klasse mit SpannerChatMessageHistory.

Anleitung zum Verfahren für den Chat-Nachrichtenverlauf

Im Spanner-Leitfaden für den Verlauf von Chatnachrichten erfahren Sie, wie Sie Folgendes tun können:

  • LangChain installieren und bei Google Cloudauthentifizieren
  • Tabelle initialisieren
  • Initialisieren Sie die SpannerChatMessageHistory-Klasse, um Nachrichten hinzuzufügen und zu löschen.
  • Client zum Anpassen der Verbindung und Authentifizierung verwenden
  • SpannerChatMessageHistory-Sitzung löschen

Graph-Speicher für Spanner

Mit dem Graphspeicher werden Knoten und Kanten aus einer Graphdatenbank abgerufen und gespeichert. Mit dem Graph Store können Anwendungen Folgendes tun:

  • Knoten und Kanten in ein Diagramm einfügen
  • Durchläufe und Analysen für einen Graphen durchführen
  • Schema eines Graphen ansehen

Sie können den Graph Store auch mit der Graph-QA-Chain verwenden, um eine Anwendung zu erstellen, die mit einem Graphen interagieren kann.

Wenn Sie den Graphspeicher mit Spanner Graph verwenden möchten, verwenden Sie die Klasse SpannerGraphStore, um Knoten und Kanten zu speichern, die aus Dokumenten extrahiert werden. SpannerGraphStore unterstützt die Graph Query Language (GQL).

Anleitung zum Verfahren für den Grafikspeicher

In der Spanner-Anleitung für Graph Store erfahren Sie, wie Sie Folgendes tun:

  • Integrationspaket und LangChain installieren
  • Diagramme aus verschiedenen Datenquellen erstellen
  • SpannerGraphStore mit einer vorhandenen Spanner Graph-Datenbank initialisieren
  • Knoten und Kanten in Spanner Graph einfügen
  • Traversal mit einer GQL-Abfrage durchführen
  • Ergebnisse von Diagrammabfragen visualisieren
  • Grafik bereinigen

Graph-QA-Kette für Spanner

Die Graph-QA-Kette für Spanner verwendet einen Spanner-Graphen, um Fragen zu beantworten. Der Workflow für die Beantwortung einer Frage mit dem Graph-QA-Tool sieht so aus:

  1. Bei Graph QA wird ein LangChain-LLM verwendet, um eine Frage in natürlicher Sprache in eine GQL-Abfrage zu übersetzen.
  2. Spanner Graph verwendet die Graph Store-Schnittstelle, um die GQL-Abfrage auszuführen.
  3. Die GQL-Abfrageergebnisse werden an das LLM zurückgesendet.
  4. Das LLM generiert und gibt die Antwort auf die Frage zurück.

Leitfaden für die Qualitätssicherung von Grafiken

In der Spanner-Anleitung für Graph-QA wird gezeigt, wie Sie mit Spanner und Graph-QA eine Frage beantworten können. Dazu wird Folgendes erläutert:

  • Mit LLMGraphTransformer einen Graphen aus unstrukturierten Textblöcken erstellen
  • Speichern Sie den Graphen mit der Klasse SpannerGraphStore in Spanner Graph.
  • Initialisieren Sie eine SpannerGraphQAChain-Instanz.
  • Eine Antwort auf eine Frage in natürlicher Sprache mithilfe des Grafikspeichers in Spanner Graph generieren