Auf dieser Seite werden einige Anwendungsfälle für die Erstellung von LLM-basierten Anwendungen mit LlamaIndex beschrieben, der in AlloyDB Omni eingebunden ist. Die Links zu den Notebooks auf GitHub sollen Ihnen dabei helfen, Ansätze zu untersuchen oder Ihre Anwendung zu entwickeln.
LlamaIndex ist ein Orchestrierungs-Framework für generative KI, 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 (RAG)-Funktionen.
LlamaIndex eignet sich gut für dokumentorientierte Anwendungen, da der Schwerpunkt auf der strukturierten Dokumentenverwaltung liegt, was die Indexierung und das Abrufen 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 Omni 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 Omni.
Vector Store
Mit dieser LlamaIndex-Integration können Sie die robuste und skalierbare Natur von AlloyDB Omni nutzen, um Ihre LlamaIndex-Daten zu speichern und zu verwalten. Wenn Sie die Indexierungs- und Abfragefunktionen von LlamaIndex mit der hohen Leistung und Zuverlässigkeit von AlloyDB Omni kombinieren, können Sie effizientere und skalierbarere LLM-basierte Anwendungen entwickeln.
LlamaIndex gliedert ein Dokument – Word-, 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 enthält Textinhalte, Vektor-Embeddings und Metadaten. Sie können Filter auf diese Metadatenfelder anwenden, um die Abrufung von Knoten auf solche zu beschränken, die den angegebenen Metadatenkriterien entsprechen.
Verwenden Sie die Klasse AlloyDBVectorStore
, um mit Vektorspeichern in AlloyDB Omni zu arbeiten. Weitere Informationen finden Sie unter LlamaIndex Vector Stores.
Vektoreinbettungen mit der AlloyDBVectorStore-Klasse speichern
Im AlloyDB Omni-Notebook für den Vektorspeicher erfahren Sie, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
, um überAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - Tabelle zum Speichern von Vektoreinbettungen initialisieren
- Erstellen Sie eine Instanz der Einbettungsklasse mit einem beliebigen Llama-Index-Embeddings-Modell.
- Standard-
AlloyDBVectorStore
-Vektorspeicher initialisieren - Erstellen und abfragen Sie einen Index aus dem Vektorspeicher mithilfe von VectorStoreIndex.
- Erstellen Sie einen benutzerdefinierten Vektorspeicher, um Metadaten zu speichern und zu filtern.
- Fügen Sie einen ANN-Index hinzu, um die Suchlatenz zu verbessern.
Dokument- und Indexspeicher
Die Integration von LlamaIndex Document Stores 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 von Knotenmetadaten erfordern kein erneutes Indexieren (d. h. keine erneute Generierung des Symbols) des gesamten Knotens oder aller Knoten in einem Dokument.
Weitere Informationen finden Sie unter LlamaIndex-Indexspeicher.
Dokumente und Indexe speichern
Im AlloyDB Omni-Notebook für Dokumentenspeicher erfahren Sie, wie Sie mit AlloyDB Omni Dokumente und Indexe mithilfe der Klassen AlloyDBDocumentStore
und AlloyDBIndexStore
speichern. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
, um überAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - 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 bieten ein zentrales Repository, in dem 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 gespeichert 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 das effiziente Speichern und Abrufen 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 Omni-Notebook für Chat-Shops wird gezeigt, wie Sie mit AlloyDB for PostgreSQL
den Chatverlauf mithilfe der Klasse AlloyDBChatStore
speichern. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
, um überAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - 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
Der Document Reader ruft Daten effizient aus AlloyDB Omni 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 Omni-Notebook für den Dokumentenlesemodus wird gezeigt, wie Sie mit AlloyDB Omni Daten mithilfe der Klasse AlloyDBReader
als Dokumente abrufen. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie eine
AlloyDBEngine
, um überAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - 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.
Nächste Schritte
- LLM-gestützte Anwendungen mit LangChain erstellen
- Weitere Informationen zum Bereitstellen von AlloyDB Omni und einem lokalen KI-Modell in Kubernetes