LLM-gestützte Anwendungen mit LlamaIndex erstellen

Auf dieser Seite werden einige Anwendungsfälle für das Erstellen von LLM-gestützten Anwendungen mit LlamaIndex, das in Cloud SQL for PostgreSQL eingebunden ist, 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 die Entwicklung von Anwendungen für Wissensassistenten mit Retrieval-Augmented Generation (RAG).

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 Metadatenverarbeitung für eine differenzierte Filterung.

Weitere Informationen zum LlamaIndex-Framework finden Sie in der Produktdokumentation zu LlamaIndex.

LlamaIndex-Komponenten

Cloud SQL for PostgreSQL bietet die folgenden LlamaIndex-Schnittstellen:

  • Vektorspeicher
  • Dokumentenspeicher
  • Indexspeicher
  • Chatspeicher
  • Dokumentenleser

Informationen zur Verwendung von LlamaIndex finden Sie in der Kurzanleitung für Cloud SQL for PostgreSQL.

Vektorspeicher

Mit dieser LlamaIndex-Einbindung können Sie die Robustheit und Skalierbarkeit von Cloud SQL for PostgreSQL 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 Cloud SQL for PostgreSQL können Sie effizientere und skalierbarere LLM-gestützte Anwendungen erstellen.

LlamaIndex unterteilt ein Dokument (z. B. DOC, Text und PDF) 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 Konzept erster Klasse 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 PostgresVectorStore Klasse, um mit Vektorspeichern in Cloud SQL for PostgreSQL zu arbeiten. Weitere Informationen finden Sie unter LlamaIndex Vector Stores.

Vektoreinbettungen mit der Klasse „PostgresVectorStore“ speichern

In der Cloud SQL for PostgreSQL-Anleitung für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:

  • Eine Tabelle zum Speichern von Vektoreinbettungen initialisieren
  • Eine Einbettungsklasseninstanz mit einem beliebigen Llama Index-Einbettungsmodell erstellen
  • Einen Standard-Vektorspeicher PostgresVectorStore initialisieren
  • Mit VectorStoreIndex einen Index aus dem Vektorspeicher erstellen und abfragen
  • Einen benutzerdefinierten Vektorspeicher erstellen, um Metadaten effektiv zu speichern und zu filtern
  • Einen ANN-Index hinzufügen, um die Suchlatenz zu verbessern

Dokumenten- und Indexspeicher

Die LlamaIndex-Einbindung 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 Baumindexe. Index in LlamaIndex ist ein einfacher Speicher nur für die Metadaten des Knotens. Für Aktualisierungen von 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 Cloud SQL for PostgreSQL Notebook für Dokumentenspeicher wird gezeigt, wie Sie mit Cloud SQL for PostgreSQL Dokumente und Indexe mit den PostgresDocumentStore und PostgresIndexStore Klassen speichern. Sie erfahren, wie Sie Folgendes tun:

  • Eine PostgresEngine mit PostgresEngine.from_instance() erstellen
  • Tabellen für den Dokumentenspeicher und den Indexspeicher erstellen
  • Einen Standard-PostgresDocumentStore initialisieren
  • Einen IndexStore für PostgreSQL einrichten
  • Dokumente zum Docstore hinzufü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 auf der Grundlage des laufenden Dialogs 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, sodass das Modell im Laufe der Zeit relevantere und kohärentere Antworten generieren kann.

Das Speichermodul in LlamaIndex ermöglicht die effiziente Speicherung und den Abruf von Unterhaltungskontext 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.

Chatprotokoll speichern

Im Cloud SQL for PostgreSQL Notebook für Chatspeicher wird gezeigt, wie Sie mit Cloud SQL for PostgreSQL das Chatprotokoll mit der PostgresChatStore Klasse speichern. Sie erfahren, wie Sie Folgendes tun:

  • Eine PostgresEngine mit PostgresEngine.from_instance() erstellen
  • Einen Standard-PostgresChatStore. initialisieren
  • Einen ChatMemoryBuffer erstellen
  • Eine LLM-Klasseninstanz erstellen
  • Den PostgresChatStore ohne Speicherkontext verwenden
  • Den PostgresChatStore mit Speicherkontext verwenden
  • Die Chat Engine erstellen und verwenden

Dokumentenleser

Der Dokumentenleser ruft Daten aus Cloud SQL for PostgreSQL effizient ab und wandelt sie 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 Cloud SQL for PostgreSQL Notebook für Dokumentenleser wird gezeigt, wie Sie mit Cloud SQL for PostgreSQL Daten mit der PostgresReader Klasse als Dokumente abrufen. Sie erfahren, wie Sie Folgendes tun:

  • Eine PostgresEngine mit PostgresEngine.from_instance() erstellen
  • PostgresReader erstellen
  • Dokumente mit dem Argument table_name laden
  • Dokumente mit einer SQL-Abfrage laden
  • Das Format des Seiteninhalts festlegen
  • Die Dokumente laden

Nächste Schritte