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 Workflows für Large Language Models (LLM) zu optimieren. Weitere Informationen zu LLMs, ihren Anwendungsfällen und den von Google angebotenen Modellen und Diensten finden Sie in der Übersicht über LLM-Konzepte und ‑Dienste in Google Cloud.
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 AlloyDB
Mehr über die Verwendung von LangChain mit der LangChain-Kurzanleitung für AlloyDB erfahren. In dieser Kurzanleitung wird eine Anwendung erstellt, die auf ein Netflix-Film-Dataset zugreift, damit Nutzer mit Filmdaten interagieren können.
Vektorspeicher für AlloyDB
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 AlloyDBVectorStore
, um mit dem Vektorspeicher in AlloyDB zu arbeiten.
Weitere Informationen finden Sie in der Produktdokumentation zu LangChain-Vektorspeichern.
Anleitung zum Verfahren für den Vektorspeicher
In der AlloyDB-Anleitung für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:
- Integrationspaket und LangChain installieren
- Erstellen Sie ein
AlloyDBEngine
-Objekt und konfigurieren Sie einen Verbindungspool zu Ihrer AlloyDB-Datenbank. - Tabelle für den Vektorspeicher initialisieren
- Einbettungsservice mit
VertexAIEmbeddings
einrichten AlloyDBVectorStore
initialisieren- Dokumente hinzufügen und löschen
- Nach ähnlichen Dokumenten suchen
- Vektorindex hinzufügen, um die Suchleistung zu verbessern
- Benutzerdefinierten Vektorspeicher erstellen, um eine Verbindung zu einer vorhandenen AlloyDB for PostgreSQL-Datenbank mit einer Tabelle mit Vektor-Embeddings herzustellen
Dokument-Ladeprogramm für AlloyDB
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 AlloyDBLoader
, um Dokumente aus AlloyDB zu laden. AlloyDBLoader
gibt eine Liste von Dokumenten aus einer Tabelle zurück, wobei die erste Spalte für den Seiteninhalt und alle anderen Spalten für Metadaten verwendet werden. Die Standardtabelle enthält die erste Spalte als Seiteninhalt und die zweite Spalte als JSON-Metadaten. Jede Zeile wird zu einem Dokument. Eine Anleitung zum Anpassen dieser Einstellungen finden Sie im Ablaufleitfaden.
Verwenden Sie die Klasse AlloyDBSaver
, um Dokumente zu speichern und zu löschen.
Weitere Informationen finden Sie unter LangChain-Dokument-Loader.
Anleitung zum Laden von Dokumenten
In der AlloyDB-Anleitung für das Laden von Dokumenten werden die folgenden Aufgaben erläutert:
- 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
AlloyDBSaver
zum Speichern und Löschen von Dokumenten verwenden und anpassen
Chatnachrichtenverlauf für AlloyDB
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.
AlloyDB erweitert diese Klasse mit AlloyDBChatMessageHistory
.
Anleitung zum Verfahren für den Chat-Nachrichtenverlauf
Im AlloyDB-Leitfaden für den Verlauf von Chatnachrichten erfahren Sie, wie Sie Folgendes tun können:
- Integrationspaket und LangChain installieren
- Erstellen Sie ein
AlloyDBEngine
-Objekt und konfigurieren Sie einen Verbindungspool zu Ihrer AlloyDB-Datenbank. - Tabelle initialisieren
- Initialisieren Sie die
AlloyDBChatMessageHistory
-Klasse, um Nachrichten hinzuzufügen und zu löschen. - Kette für den Nachrichtenverlauf mit der LangChain Expression Language (LCEL) erstellen