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 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 AlloyDBVectorStore initialisieren
  • 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:

  • AlloyDBEngine mit AlloyDBEngine.from_instance() erstellen
  • Tabellen für DocumentStore und IndexStore erstellen
  • Standard-AlloyDBDocumentStore initialisieren
  • AlloyDBIndexStore einrichten
  • Dokumente zu 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 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:

  • AlloyDBEngine mit AlloyDBEngine.from_instance() erstellen
  • Standard-AlloyDBChatStore initialisieren
  • ChatMemoryBuffer erstellen
  • LLM-Klasseninstanz erstellen
  • AlloyDBChatStore ohne Speicherkontext verwenden
  • AlloyDBChatStore mit 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:

  • AlloyDBEngine mit AlloyDBEngine.from_instance() erstellen
  • AlloyDBReader erstellen
  • Dokumente mit dem Argument table_name laden
  • Dokumente mit einer SQL-Abfrage laden
  • Format für Seiteninhalte festlegen
  • Dokumente laden

Nächste Schritte