LLM-gestützte Anwendungen mit LlamaIndex erstellen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite werden einige Anwendungsfälle für die Erstellung von LLM-basierten Anwendungen mit LlamaIndex beschrieben, das in AlloyDB Omni eingebunden ist. Links zu Notebooks auf GitHub werden bereitgestellt, um Ihnen die Erkundung von Ansätzen oder die Entwicklung Ihrer Anwendung zu erleichtern.

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 Abfragen in natürlicher Sprache auf Informationen aus privaten oder domainspezifischen Daten zugreifen und diese abfragen.

LlamaIndex fungiert als Brücke zwischen benutzerdefinierten Daten und LLMs und erleichtert die Entwicklung von Knowledge Assistant-Anwendungen mit RAG-Funktionen (Retrieval-Augmented Generation).

LlamaIndex eignet sich gut für dokumentzentrierte Anwendungen, da es den Schwerpunkt auf die strukturierte Dokumentverwaltung legt, 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 LlamaIndex-Produktdokumentation.

LlamaIndex-Komponenten

AlloyDB Omni bietet die folgenden LlamaIndex-Schnittstellen:

  • Vektorspeicher
  • Dokumentenspeicher
  • Index Stores
  • Chat-Stores
  • Dokumentenleser

Informationen zur Verwendung von LlamaIndex mit der Kurzanleitung für AlloyDB Omni

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-gestützte Anwendungen erstellen.

LlamaIndex unterteilt ein Dokument (DOC, TXT 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 Knotenabruf 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-Vektorspeicher.

Vektoreinbettungen mit der Klasse „AlloyDBVectorStore“ speichern

Im AlloyDB Omni-Notebook für Vektorspeicher erfahren Sie, wie Sie Folgendes tun:

  • Erstellen Sie einen AlloyDBEngine, um über AlloyDBEngine.from_connection_string() eine Verbindung zu Ihrer AlloyDB Omni-Instanz herzustellen.
  • Tabelle zum Speichern von Vektoreinbettungen initialisieren
  • Erstellen Sie eine Einbettungsklasseninstanz mit einem beliebigen LlamaIndex-Einbettungsmodell.
  • Standard-AlloyDBVectorStore-Vektorspeicher initialisieren
  • Erstellen Sie mit VectorStoreIndex einen Index aus dem Vektorspeicher und fragen Sie ihn 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-Integration für Dokumentenspeicher verwaltet die strukturierte Speicherung und den Abruf von Dokumenten und optimiert die dokumentenzentrierten Funktionen von LlamaIndex. Im Document Store werden die Inhalte gespeichert, die sich auf die Vektoren im Vector Store beziehen.

Weitere Informationen finden Sie in der Produktdokumentation zu LlamaIndex Document Stores.

Indexspeicher erleichtern die Verwaltung von Indexen, um schnelle Abfragen und Datenabrufe zu ermöglichen, z. B. Zusammenfassungs-, Keyword- und Baumindexe. Index in LlamaIndex ist ein einfacher Speicher nur für die Knotenmetadaten. Für Aktualisierungen von Knotenmetadaten ist keine Neuindexierung (Einbettungsgenerierung) des gesamten Knotens oder aller Knoten in einem Dokument erforderlich.

Weitere Informationen finden Sie unter LlamaIndex-Indexspeicher.

Dokumente und Indexe speichern

Im AlloyDB Omni-Notebook für Dokumentenspeicher wird gezeigt, wie Sie mit AlloyDB Omni Dokumente und Indexe mithilfe der Klassen AlloyDBDocumentStore und AlloyDBIndexStore speichern. Sie lernen, wie Sie Folgendes tun:

  • Erstellen Sie einen AlloyDBEngine, um über AlloyDBEngine.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 dem Docstore Dokumente hinzu.
  • Dokumentspeicher mit mehreren Indexen verwenden.
  • Vorhandene Indexe laden.

Chat-Stores

Chat Stores speichern den Unterhaltungsverlauf und den Kontext für chatbasierte Anwendungen und ermöglichen so personalisierte Interaktionen. Chat Stores bieten ein zentrales Repository, in dem Chatnachrichten innerhalb einer Unterhaltung gespeichert und abgerufen werden. So kann das LLM den Kontext beibehalten und relevantere Antworten basierend auf dem laufenden Dialog liefern.

Large Language Models sind standardmäßig zustandslos. Das bedeutet, dass sie vorherige Eingaben nicht speichern, es sei denn, diese Eingaben werden jedes Mal explizit angegeben. Durch die Verwendung eines Chat-Speichers können Sie den Kontext der Unterhaltung beibehalten, sodass das Modell im Laufe der Zeit relevantere und kohärentere Antworten generieren kann.

Das Memory-Modul in LlamaIndex ermöglicht das effiziente Speichern und Abrufen von Unterhaltungskontexten, was personalisiertere und kontextbezogenere Interaktionen in Chatanwendungen ermöglicht. Sie können das Memory-Modul in LlamaIndex mit einem ChatStore und einem ChatMemoryBuffer integrieren. Weitere Informationen finden Sie unter LlamaIndex-Chatspeicher.

Chatverlauf speichern

Im AlloyDB Omni-Notebook für Chat Stores wird gezeigt, wie Sie mit AlloyDB Omni den Chatverlauf mithilfe der Klasse AlloyDBChatStore speichern. Sie lernen, wie Sie Folgendes tun:

  • Erstellen Sie einen AlloyDBEngine, um über AlloyDBEngine.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

Dokumentenleser

Der Dokumentenleser ruft Daten aus AlloyDB Omni effizient ab und wandelt sie in LlamaIndex-kompatible Formate für die Indexierung um. Die Document Reader-Schnittstelle bietet Methoden zum Laden von Daten aus einer Quelle als Documents.

Document ist eine Klasse, in der ein Text und die zugehörigen Metadaten gespeichert werden. Mit Dokumentenlesern können Sie Dokumente laden, die Sie in Dokumentenspeichern speichern oder zum Erstellen von Indexen verwenden möchten.

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. Sie lernen, wie Sie Folgendes tun:

  • Erstellen Sie einen AlloyDBEngine, um über AlloyDBEngine.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.
  • Legen Sie das Format für den Seiteninhalt fest.
  • Laden Sie die Dokumente.

Nächste Schritte

- [AlloyDB Omni installieren](/alloydb/omni/linux/current/docs/deploy-vm)