Auf dieser Seite werden einige Anwendungsfälle für die Entwicklung von LLM-basierten Anwendungen mit LlamaIndex in Kombination mit AlloyDB Omni beschrieben. Links zu Notebooks auf GitHub sind verfügbar, damit Sie Ansätze untersuchen oder Ihre Anwendung entwickeln können.
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 über Anfragen 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 die Entwicklung von Wissensassistenten-Anwendungen 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 Abfragemethoden, die die Geschwindigkeit und Relevanz des Informationszugriffs verbessern, sowie eine robuste Metadatenverarbeitung für eine differenzierte Filterung.
Weitere Informationen zum LlamaIndex-Framework finden Sie in der LlamaIndex-Produktdokumentation.
LlamaIndex-Komponenten
AlloyDB Omni bietet die folgenden LlamaIndex-Schnittstellen:
- Vektorspeicher
- Dokumentenspeicher
- Index Stores
- Chat-Stores
- Document Reader
Vektorspeicher
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. Durch die Kombination der Indexierungs- und Abfragefunktionen von LlamaIndex mit der hohen Leistung und Zuverlässigkeit von AlloyDB Omni können Sie effizientere und skalierbarere LLM-basierte Anwendungen erstellen.
LlamaIndex zerlegt ein Dokument – DOC, Text und PDFs – in Dokumentkomponenten, die als Knoten bezeichnet werden. Der VectorStore kann nur die Einbettungsvektoren der aufgenommenen Knoteninhalte und den Text der Knoten enthalten. Ein Knoten enthält Textinhalte, Vektoreinbettungen und Metadaten. Sie können Filter auf diese Metadatenfelder anwenden, um den Abruf von Knoten auf diejenigen 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 Klasse „AlloyDBVectorStore“ speichern
Im AlloyDB Omni-Notebook für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:
- Erstellen Sie ein
AlloyDBEngine
, um mitAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - Initialisieren Sie eine Tabelle zum Speichern von Vektoreinbettungen.
- Erstellen Sie eine Instanz der Einbettungsklasse mit einem beliebigen LlamaIndex-Einbettungsmodell.
- Standard-
AlloyDBVectorStore
-Vektorspeicher initialisieren - Erstellen Sie einen Index aus dem Vektorspeicher und fragen Sie ihn mit VectorStoreIndex ab.
- 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 LlamaIndex Document Stores-Integration verwaltet die strukturierte Speicherung und den Abruf von Dokumenten und optimiert die dokumentzentrierten Funktionen von LlamaIndex. Im Dokumentenspeicher werden die Inhalte gespeichert, die mit den Vektoren im Vektorspeicher zusammenhängen.
Weitere Informationen finden Sie in der Produktdokumentation zu LlamaIndex Document Stores.
Index Stores 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 nur für die Knotenmetadaten. Für Aktualisierungen von Knotenmetadaten ist keine Neuindexierung (Leseeinbettungsgenerierung) des gesamten Knotens oder aller Knoten in einem Dokument erforderlich.
Weitere Informationen finden Sie unter LlamaIndex Index Stores.
Dokumente und Indexe speichern
Im AlloyDB Omni-Notebook für Document Stores wird gezeigt, wie Sie mit AlloyDB Omni Dokumente und Indexe mit den Klassen AlloyDBDocumentStore
und AlloyDBIndexStore
speichern. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie ein
AlloyDBEngine
, um mitAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - Erstellen Sie Tabellen für DocumentStore und 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-Stores
In Chat Stores werden der Unterhaltungsverlauf und der Kontext für chatbasierte Anwendungen gespeichert, um personalisierte Interaktionen zu ermöglichen. Chat Stores bieten ein zentrales Repository, in dem Chatnachrichten in 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 sie vorherige Eingaben nicht beibehalten, sofern diese nicht jedes Mal explizit angegeben werden. Wenn Sie einen Chat-Speicher 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 das effiziente Speichern und Abrufen von Gesprächskontext, was personalisierte und kontextbezogene Interaktionen in Chatanwendungen 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
Das AlloyDB Omni-Notebook für Chat Stores zeigt, wie Sie AlloyDB for PostgreSQL
verwenden, um den Chatverlauf mit der Klasse AlloyDBChatStore
zu speichern. Sie lernen, wie Sie Folgendes tun:
- Erstellen Sie ein
AlloyDBEngine
, um mitAlloyDBEngine.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
AlloyDBChatStore
ohne Speicherkontext. - Verwenden Sie
AlloyDBChatStore
mit einem Speicherkontext. - Chat Engine erstellen und verwenden
Document Reader
Document Reader ruft Daten aus AlloyDB Omni effizient 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 Textabschnitt und die zugehörigen Metadaten gespeichert werden. Mit Document Readers können Sie Dokumente laden, die Sie in Document Stores 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 Document Reader wird gezeigt, wie Sie mit AlloyDB Omni Daten als Dokumente mithilfe der Klasse AlloyDBReader
abrufen. In diesem Abschnitt lernen Sie Folgendes:
- Erstellen Sie ein
AlloyDBEngine
, um mitAlloyDBEngine.from_connection_string()
eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen. - Erstellen Sie
AlloyDBReader
. - Laden Sie Dokumente mit dem Argument
table_name
. - Dokumente mit einer SQL-Abfrage laden.
- Seiteninhaltsformat festlegen
- Laden Sie die Dokumente.
Nächste Schritte
- LLM-gestützte Anwendungen mit LangChain erstellen
- AlloyDB Omni und ein lokales KI-Modell in Kubernetes bereitstellen