LLM-gestützte Anwendungen mit LlamaIndex erstellen

Wählen Sie eine Dokumentenversion aus:

Auf dieser Seite werden einige Anwendungsfälle für das Erstellen von LLM-gestützten Anwendungen mit LlamaIndex in Kombination mit AlloyDB Omni beschrieben. Links zu Notebooks auf GitHub helfen Ihnen, Ansätze zu erkunden oder 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 integrieren können. Mit LlamaIndex können Sie Anwendungen erstellen, die Informationen aus privaten oder domänenspezifischen Daten abrufen und abfragen, indem Sie Abfragen in natürlicher Sprache verwenden.

LlamaIndex fungiert als Brücke zwischen benutzerdefinierten Daten und LLMs und erleichtert so 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 Metadatenverwaltung für eine differenzierte Filterung.

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

LlamaIndex-Komponenten

AlloyDB Omni bietet die folgenden LlamaIndex-Schnittstellen:

  • Vektorspeicher
  • Dokumentenspeicher
  • Indexspeicher
  • Chatspeicher
  • Dokumentenleser

Informationen zur Verwendung von LlamaIndex finden Sie in der Kurzanleitung für AlloyDB Omni.

Vektorspeicher

Mit dieser LlamaIndex-Integration können Sie die Robustheit und Skalierbarkeit 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-gestützte Anwendungen erstellen.

LlamaIndex zerlegt ein Dokument (z. B. DOC, Text und PDF) 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 bestimmte Metadatenkriterien erfüllen.

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 eine AlloyDBEngine, um mit AlloyDBEngine.from_connection_string() eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen.
  • Initialisieren Sie eine Tabelle zum Speichern von Vektoreinbettungen.
  • Erstellen Sie eine Einbettungsklasseninstanz mit einem beliebigen LlamaIndex-Einbettungsmodell.
  • Initialisieren Sie einen Standard-Vektorspeicher AlloyDBVectorStore.
  • Erstellen und fragen Sie einen Index aus dem Vektorspeicher mit VectorStoreIndex ab.
  • Erstellen Sie einen benutzerdefinierten Vektorspeicher zum Speichern und Filtern von Metadaten.
  • Fügen Sie einen ANN-Index hinzu, 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 Dokumentenspeicher 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 Knotenmetadaten. Für Aktualisierungen der Knotenmetadaten ist keine Neuindexierung (d. h. keine Einbettungserstellung) 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 Omni-Notebook für Dokumentenspeicher erfahren Sie, wie Sie mit AlloyDB Omni Dokumente und Indexe mit den AlloyDBDocumentStore und AlloyDBIndexStore Klassen speichern. Sie lernen Folgendes:

  • Erstellen Sie eine AlloyDBEngine, um mit AlloyDBEngine.from_connection_string() eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen.
  • Erstellen Sie Tabellen für den Dokumentenspeicher und den Indexspeicher.
  • Initialisieren Sie einen Standard-AlloyDBDocumentStore.
  • Richten Sie einen AlloyDBIndexStore ein.
  • Fügen Sie dem Docstore Dokumente hinzu.
  • Verwenden Sie Dokumentenspeicher mit mehreren Indexen.
  • Laden Sie vorhandene Indexe.

Chatspeicher

In Chatspeichern werden der Unterhaltungsverlauf und der Kontext für chatbasierte Anwendungen gespeichert, um personalisierte Interaktionen zu ermöglichen. 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 angegeben. 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 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 integrieren. Weitere Informationen finden Sie unter LlamaIndex Chat Stores.

Chatprotokoll speichern

Im AlloyDB Omni-Notebook für Chatspeicher erfahren Sie, wie Sie AlloyDB for PostgreSQL verwenden, um das Chatprotokoll mit der Klasse AlloyDBChatStore zu speichern. Sie lernen Folgendes:

  • Erstellen Sie eine AlloyDBEngine, um mit AlloyDBEngine.from_connection_string() eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen.
  • Initialisieren Sie einen Standard-AlloyDBChatStore.
  • Erstellen Sie einen ChatMemoryBuffer.
  • Erstellen Sie eine LLM-Klasseninstanz.
  • Verwenden Sie AlloyDBChatStore ohne Speicherkontext.
  • Verwenden Sie AlloyDBChatStore mit einem Speicherkontext.
  • Erstellen und verwenden Sie die Chat-Engine.

Dokumentenleser

Der Dokumentenleser ruft Daten aus AlloyDB Omni 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 Omni-Notebook für Dokumentenleser erfahren Sie, wie Sie mit AlloyDB Omni Daten mit der Klasse AlloyDBReader als Dokumente abrufen. Sie lernen Folgendes:

  • Erstellen Sie eine AlloyDBEngine, um mit AlloyDBEngine.from_connection_string() eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen.
  • Erstellen Sie AlloyDBReader.
  • Laden Sie Dokumente mit dem Argument table_name.
  • Laden Sie Dokumente mit einer SQL-Abfrage.
  • Legen Sie das Format für Seiteninhalte fest.
  • Laden Sie die Dokumente.

Nächste Schritte