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:
- Bei Graph QA wird ein LangChain-LLM verwendet, um eine Frage in natürlicher Sprache in eine GQL-Abfrage zu übersetzen.
- Spanner Graph verwendet die Graph Store-Schnittstelle, um die GQL-Abfrage auszuführen.
- Die GQL-Abfrageergebnisse werden an das LLM zurückgesendet.
- 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