Auf dieser Seite werden einige Anwendungsfälle für das Erstellen von LLM-gestützten Anwendungen mit LlamaIndex in Kombination mit AlloyDB for PostgreSQL beschrieben. Links zu Notebooks auf GitHub helfen Ihnen, Ansätze zu erkunden oder Ihnen Ihre Anwendung zu entwickeln.
LlamaIndex ist ein Framework für die Orchestrierung generativer KI, mit dem Sie Datenquellen mit Large Language Models (LLMs) verbinden und einbinden können. Mit LlamaIndex können Sie Anwendungen erstellen, die mit Abfragen in natürlicher Sprache auf Informationen aus privaten oder domänenspezifischen Daten zugreifen und diese abfragen.
LlamaIndex fungiert als Brücke zwischen benutzerdefinierten Daten und LLMs und erleichtert so die Entwicklung von Anwendungen für Wissensassistenten mit RAG-Funktionen (Retrieval-Augmented Generation).
LlamaIndex eignet sich gut für dokumentenzentrierte Anwendungen, da es die strukturierte Dokumentenverwaltung in den Vordergrund stellt, 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 eine differenzierte Filterung.
Weitere Informationen zum LlamaIndex-Framework finden Sie in der Produktdokumentation zu LlamaIndex.
LlamaIndex-Komponenten
AlloyDB bietet die folgenden LlamaIndex-Schnittstellen:
- Vektorspeicher
- Dokumentenspeicher
- Indexspeicher
- Chatspeicher
- Dokumentenleser
Informationen zur Verwendung von LlamaIndex mit dem Schnellstart für AlloyDB.
Vektorspeicher
Mit dieser LlamaIndex-Integration können Sie die robuste und skalierbare Natur von AlloyDB 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-gestützte Anwendungen erstellen.
LlamaIndex zerlegt ein Dokument (z. B. DOC, Text und PDFs) in Dokument komponenten, die als Knoten bezeichnet werden. Der VectorStore kann nur die Einbettungsvektoren der aufgenommenen Knoteninhalte und den Text der Knoten enthalten. Ein Knoten ist ein erstklassiges Konzept und enthält Textinhalte, Vektor Einbettungen und Metadaten. Sie können Filter auf diese Metadatenfelder anwenden, um den Abruf von Knoten auf diejenigen zu beschränken, die bestimmten Metadatenkriterien entsprechen.
Verwenden Sie die
AlloyDBVectorStore Klasse, um mit Vektorspeichern in
AlloyDB zu arbeiten.
Weitere Informationen finden Sie unter LlamaIndex
Vector Stores.
Vektoreinbettungen mit der Klasse AlloyDBVectorStore speichern
Im AlloyDB Notebook für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:
- Tabelle zum Speichern von Vektoreinbettungen initialisieren
- Erstellen Sie eine Einbettungsklasseninstanz mit einem beliebigen Llama Index-Einbettungsmodell.
- Standard-Vektorspeicher
AlloyDBVectorStoreinitialisieren - Index aus dem Vektorspeicher mit VectorStoreIndex erstellen und abfragen
- Benutzerdefinierten Vektorspeicher erstellen, um Metadaten effektiv zu speichern und zu filtern
- ANN-Index hinzufügen, um die Suchlatenz zu verbessern
Dokumenten- und Indexspeicher
Die LlamaIndex-Integration für Dokumentenspeicher verwaltet die strukturierte Speicherung und den Abruf von Dokumenten und ist für die dokumentenzentrierten Funktionen von LlamaIndex optimiert. Im Dokumenten speicher 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 den Datenabruf zu ermöglichen, z. B. Zusammenfassungs-, Keyword- und Baumindex.Index in LlamaIndex ist ein einfacher Speicher, der nur die Metadaten des Knotens
enthält. Für Aktualisierungen der Knotenmetadaten ist keine Neuindexierung (d. h. keine neue Einbettung
Erstellung) des vollständigen Knotens oder aller Knoten in einem Dokument erforderlich.
Weitere Informationen finden Sie unter LlamaIndex Index Stores.
Dokumente und Indexe speichern
Im AlloyDB
Notebook für Dokumentenspeicher wird beschrieben, wie Sie mit AlloyDB Dokumente und Indexe mit den
AlloyDBDocumentStore und AlloyDBIndexStore Klassen speichern.
Sie lernen Folgendes:
AlloyDBEnginemitAlloyDBEngine.from_instance()erstellen- Tabellen für DocumentStore und IndexStore erstellen
- Standard-
AlloyDBDocumentStoreinitialisieren AlloyDBIndexStoreeinrichten- Dokumente zu
Docstorehinzufügen - Dokumentenspeicher mit mehreren Indexen verwenden
- Vorhandene Indexe laden
Chatspeicher
Chatspeicher verwalten den Unterhaltungsverlauf und den Kontext für chatbasierte Anwendungen und ermöglichen so personalisierte Interaktionen. Chatspeicher bieten ein zentrales Repository, in dem Chatnachrichten in einer Unterhaltung gespeichert und abgerufen werden. So kann das LLM den Kontext beibehalten und relevantere Antworten basierend auf dem laufenden Dialog geben.
Large Language Models sind standardmäßig zustandslos. Das bedeutet, dass sie frühere Eingaben nicht beibehalten, es sei denn, diese Eingaben werden jedes Mal explizit bereitgestellt. Wenn Sie einen Chatspeicher verwenden, können Sie den Kontext der Unterhaltung beibehalten. So kann das Modell im Laufe der Zeit relevantere und kohärentere Antworten generieren.
Das Speichermodul in LlamaIndex ermöglicht die effiziente Speicherung und den Abruf des
Unterhaltungskontexts und ermöglicht so personalisiertere und kontextbezogenere
Interaktionen in Chatanwendungen. Sie können das Speichermodul in
LlamaIndex mit einem ChatStore
und einem ChatMemoryBuffer einbinden.
Weitere Informationen finden Sie unter LlamaIndex
Chat Stores.
Chatverlauf speichern
Im AlloyDB
Notebook für Chatspeicher wird beschrieben, wie Sie mit AlloyDB for
PostgreSQL den Chatverlauf mit der AlloyDBChatStore
Klasse speichern. Sie lernen Folgendes:
AlloyDBEnginemitAlloyDBEngine.from_instance()erstellen- Standard-
AlloyDBChatStoreinitialisieren ChatMemoryBuffererstellen- LLM-Klasseninstanz erstellen
AlloyDBChatStoreohne Speicherkontext verwendenAlloyDBChatStoremit Speicherkontext verwenden- Chat-Engine erstellen und verwenden
Dokumentenleser
Der Dokumentenleser ruft Daten aus
AlloyDB
ab und wandelt sie effizient in LlamaIndex-kompatible
Formate für die Indexierung um. Die Dokumentenleser-Schnittstelle bietet Methoden zum Laden
von Daten aus einer Quelle als Documents. Document
ist eine Klasse, in der ein Textabschnitt und zugehörige Metadaten gespeichert werden. Mit Dokumentenlesern 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 Dokumentenleser wird beschrieben, wie Sie mit AlloyDB Daten mit der
AlloyDBReader Klasse als Dokumente abrufen. Sie lernen Folgendes:
AlloyDBEnginemitAlloyDBEngine.from_instance()erstellenAlloyDBReadererstellen- Dokumente mit dem Argument
table_nameladen - Dokumente mit einer SQL-Abfrage laden
- Format für Seiteninhalte festlegen
- Dokumente laden