Auf dieser Seite werden einige Anwendungsfälle für die Erstellung von LLM-basierten Anwendungen mit LlamaIndex beschrieben, der in AlloyDB for PostgreSQL eingebunden ist. Links zu Notebooks auf GitHub sollen Ihnen helfen, Ansätze zu untersuchen oder Ihre Anwendung zu entwickeln.
LlamaIndex ist ein generatives KI-Orchestrierungs-Framework, mit dem Sie Datenquellen mit Large Language Models (LLMs) verbinden und integrieren können. Mit LlamaIndex können Sie Anwendungen erstellen, die mithilfe von Abfragen in natürlicher Sprache auf Informationen aus privaten oder domänenspezifischen Daten zugreifen und diese abfragen.
LlamaIndex dient als Brücke zwischen benutzerdefinierten Daten und LLMs und erleichtert die Entwicklung von Wissensassistentenanwendungen mit Retrieval-Augmented-Generation-Funktionen (RAG).
LlamaIndex eignet sich gut für dokumentorientierte Anwendungen, da der Schwerpunkt auf der strukturierten Dokumentenverwaltung liegt, was die Indexierung und den Abruf vereinfacht. Dieses Framework bietet optimierte Abfragemechanismen, die die Geschwindigkeit und Relevanz des Informationszugriffs verbessern, sowie eine robuste Metadatenverwaltung für differenziertes Filtern.
Weitere Informationen zum LlamaIndex-Framework finden Sie in der Produktdokumentation für LlamaIndex.
LlamaIndex-Komponenten
AlloyDB bietet die folgenden LlamaIndex-Schnittstellen:
- Vector Store
- Dokumentenspeicher
- Indexspeicher
- Chat-Shops
- Dokumentenlesegerät
Weitere Informationen zur Verwendung von LlamaIndex finden Sie in der Kurzanleitung für AlloyDB.
Vector Store
Mit dieser LlamaIndex-Integration können Sie die robuste und skalierbare AlloyDB-Umgebung nutzen, um Ihre LlamaIndex-Daten zu speichern und zu verwalten. Durch die Kombination der Indexierungs- und Abfragefunktionen von LlamaIndex mit der hohen Leistung und Zuverlässigkeit von AlloyDB können Sie effizientere und skalierbarere LLM-basierte Anwendungen entwickeln.
LlamaIndex gliedert ein Dokument – DOC-, Text- und PDF-Dateien – in Dokumentkomponenten auf, die als Knoten bezeichnet werden. Der VectorStore darf nur die Einbettungsvektoren der aufgenommenen Knoteninhalte und den Text der Knoten enthalten. Ein Knoten ist ein First-Class-Konzept und enthält Textinhalte, Vektor-Embeddings und Metadaten. Sie können Filter auf diese Metadatenfelder anwenden, um den Abruf von Knoten auf solche zu beschränken, die den angegebenen Metadatenkriterien entsprechen.
Verwenden Sie die Klasse AlloyDBVectorStore
, um mit Vektorspeichern in AlloyDB zu arbeiten.
Weitere Informationen finden Sie unter LlamaIndex Vector Stores.
Vektoreinbettungen mit der AlloyDBVectorStore-Klasse speichern
Im AlloyDB-Notebook für den Vektorspeicher erfahren Sie, wie Sie Folgendes tun:
- Tabelle zum Speichern von Vektoreinbettungen initialisieren
- Erstellen Sie eine Instanz der Einbettungsklasse mit einem beliebigen Llama-Index-Embeddings-Modell.
- Standard-
AlloyDBVectorStore
-Vektorspeicher initialisieren - Mit VectorStoreIndex können Sie einen Index aus dem Vektorspeicher erstellen und abfragen.
- Erstellen Sie einen benutzerdefinierten Vektorspeicher, um Metadaten effektiv zu speichern und zu filtern.
- Fügen Sie einen ANN-Index hinzu, um die Suchlatenz zu verbessern.
Dokument- und Indexspeicher
Die Integration von LlamaIndex-Dokumentspeichern verwaltet den Speicher und Abruf strukturierter Dokumente und optimiert sie für die dokumentorientierten Funktionen von LlamaIndex. Im Dokumentspeicher werden die Inhalte gespeichert, die sich auf die Vektoren im Vektorspeicher beziehen.
Weitere Informationen finden Sie in der Produktdokumentation zu LlamaIndex Document Stores.
Indexspeicher erleichtern die Verwaltung von Indexen, um schnelle Abfragen und Datenabrufe zu ermöglichen, z. B. Zusammenfassungs-, Keyword- und Baumindexe.Index
in LlamaIndex ist ein schlanker Speicher nur für die Knotenmetadaten. Aktualisierungen der Knotenmetadaten erfordern keine erneute Indexierung (d. h. keine erneute Generierung des Einbettungscodes) des gesamten Knotens oder aller Knoten in einem Dokument.
Weitere Informationen finden Sie unter LlamaIndex-Indexspeicher.
Dokumente und Indexe speichern
Im AlloyDB-Notebook für Dokumentenspeicher erfahren Sie, wie Sie mit AlloyDB Dokumente und Indexe mithilfe der Klassen AlloyDBDocumentStore
und AlloyDBIndexStore
speichern.
Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
mitAlloyDBEngine.from_instance()
. - Erstellen Sie Tabellen für den DocumentStore und den IndexStore.
- Standard-
AlloyDBDocumentStore
initialisieren - Richten Sie ein
AlloyDBIndexStore
ein. - Fügen Sie der
Docstore
Dokumente hinzu. - Verwenden Sie Dokumentenspeicher mit mehreren Indexen.
- Vorhandene Indexe laden
Chat-Shops
Chat-Shops verwalten den Unterhaltungsverlauf und den Kontext für chatbasierte Anwendungen und ermöglichen so personalisierte Interaktionen. Chat-Stores sind zentrale Repositories, in denen Chatnachrichten innerhalb einer Unterhaltung gespeichert und abgerufen werden. So kann das LLM den Kontext beibehalten und auf Grundlage des laufenden Dialogs relevantere Antworten geben.
Large Language Models sind standardmäßig zustandslos. Das bedeutet, dass vorherige Eingaben nicht beibehalten werden, es sei denn, sie werden jedes Mal explizit angegeben. Mit einem Chat-Speicher können Sie den Kontext der Unterhaltung erhalten, sodass das Modell im Laufe der Zeit relevantere und kohärentere Antworten generieren kann.
Das Speichermodul in LlamaIndex ermöglicht die effiziente Speicherung und Abfrage des Konversationskontexts, was personalisiertere und kontextbezogenere Interaktionen in Chat-Anwendungen ermöglicht. Sie können das Speichermodul in LlamaIndex mit einem ChatStore und einem ChatMemoryBuffer integrieren.
Weitere Informationen finden Sie unter LlamaIndex Chat Stores.
Chatprotokoll speichern
Im AlloyDB-Notebook für Chat-Stores wird gezeigt, wie Sie mit AlloyDB for
PostgreSQL
den Chatverlauf mit der Klasse AlloyDBChatStore
speichern. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie mit
AlloyDBEngine.from_instance()
einenAlloyDBEngine
. - Standard-
AlloyDBChatStore
initialisieren - Erstellen Sie einen
ChatMemoryBuffer
. - Erstellen Sie eine LLM-Klasseninstanz.
- Verwenden Sie das
AlloyDBChatStore
ohne Speicherkontext. - Verwenden Sie
AlloyDBChatStore
mit einem Speicherkontext. - Chat Engine erstellen und verwenden
Dokumentenlesegerät
Document Reader ruft Daten effizient aus AlloyDB ab und transformiert sie in LlamaIndex-kompatible Formate für die Indexierung. Die Document Reader-Schnittstelle bietet Methoden zum Laden von Daten aus einer Quelle als Documents
. Document
ist eine Klasse, in der ein Text und zugehörige Metadaten gespeichert werden. Mit Dokumentenlesegeräten können Sie Dokumente laden, die Sie in Dokumentenspeichern speichern oder zum Erstellen von Indexen verwenden möchten.
Weitere Informationen finden Sie unter LlamaIndex Document Reader.
Daten als Dokumente abrufen
Im AlloyDB-Notebook für den Dokumentenlesemodus wird gezeigt, wie Sie mit AlloyDB Daten mithilfe der Klasse AlloyDBReader
als Dokumente abrufen. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
mitAlloyDBEngine.from_instance()
. - Erstellen Sie
AlloyDBReader
. - Dokumente mit dem Argument
table_name
laden - Dokumente mit einer SQL-Abfrage laden.
- Legen Sie das Format für den Seiteninhalt fest.
- Laden Sie die Dokumente hoch.