Heim  >  Artikel  >  Web-Frontend  >  Erstellen einer RAG-App mit LlamaIndex.ts und Azure OpenAI: Erste Schritte!

Erstellen einer RAG-App mit LlamaIndex.ts und Azure OpenAI: Erste Schritte!

WBOY
WBOYOriginal
2024-09-10 18:30:30602Durchsuche

Da KI weiterhin die Art und Weise prägt, wie wir arbeiten und mit Technologie interagieren, suchen viele Unternehmen nach Möglichkeiten, ihre eigenen Daten in intelligenten Anwendungen zu nutzen. Wenn Sie Tools wie ChatGPT oder Azure OpenAI verwendet haben, wissen Sie bereits, wie generative KI Prozesse verbessern und Benutzererlebnisse verbessern kann. Für wirklich individuelle und relevante Antworten müssen Ihre Anwendungen jedoch Ihre proprietären Daten integrieren.

Hier kommt Retrieval-Augmented Generation (RAG) ins Spiel und bietet einen strukturierten Ansatz zur Integration des Datenabrufs mit KI-gestützten Antworten. Mit Frameworks wie LlamaIndex können Sie diese Funktion ganz einfach in Ihre Lösungen integrieren und so das volle Potenzial Ihrer Geschäftsdaten ausschöpfen.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Möchten Sie die App schnell ausführen und erkunden? Klicken Sie hier.

Was ist RAG – Retrieval-Augmented Generation?

Retrieval-Augmented Generation (RAG) ist ein neuronales Netzwerk-Framework, das die KI-Textgenerierung durch die Einbindung einer Retrieval-Komponente verbessert, um auf relevante Informationen zuzugreifen und Ihre eigenen Daten zu integrieren. Es besteht aus zwei Hauptteilen:

  • Retriever: Ein dichtes Retriever-Modell (z. B. basierend auf BERT), das einen großen Dokumentenkorpus durchsucht, um relevante Passagen oder Informationen zu einer bestimmten Abfrage zu finden.
  • Generator: Ein Sequenz-zu-Sequenz-Modell (z. B. basierend auf BART oder T5), das die Abfrage und den abgerufenen Text als Eingabe verwendet und eine kohärente, kontextuell angereicherte Antwort generiert.

Der Retriever findet relevante Dokumente und der Generator verwendet sie, um genauere und informativere Antworten zu erstellen. Diese Kombination ermöglicht es dem RAG-Modell, externes Wissen effektiv zu nutzen und so die Qualität und Relevanz des generierten Textes zu verbessern.

Wie implementiert LlamaIndex RAG?

Um ein RAG-System mit LlamaIndex zu implementieren, befolgen Sie diese allgemeinen Schritte:

Datenaufnahme:

  • Laden Sie Ihre Dokumente mit einem Dokumentladeprogramm wie SimpleDirectoryReader in LlamaIndex.ts, das beim Importieren von Daten aus verschiedenen Quellen wie PDFs, APIs oder SQL-Datenbanken hilft.
  • Teilen Sie große Dokumente mit dem SentenceSplitter in kleinere, überschaubare Teile auf.

Indexerstellung:

  • Erstellen Sie mit VectorStoreIndex einen Vektorindex dieser Dokumentblöcke, der eine effiziente Ähnlichkeitssuche basierend auf Einbettungen ermöglicht.
  • Optional können Sie bei komplexen Datensätzen rekursive Abruftechniken verwenden, um hierarchisch strukturierte Daten zu verwalten und relevante Abschnitte basierend auf Benutzerabfragen abzurufen.

Einrichtung der Abfrage-Engine:

  • Konvertieren Sie den Vektorindex in eine Abfrage-Engine, indem Sie asQueryEngine mit Parametern wie ähnlichkeitTopK verwenden, um zu definieren, wie viele Top-Dokumente abgerufen werden sollen.
  • Für erweiterte Setups erstellen Sie ein System mit mehreren Agenten, bei dem jeder Agent für bestimmte Dokumente verantwortlich ist und ein Agent der obersten Ebene den gesamten Abrufprozess koordiniert.

Abruf und Generierung:

  • Implementieren Sie die RAG-Pipeline, indem Sie eine Zielfunktion definieren, die relevante Dokumentblöcke basierend auf Benutzerabfragen abruft.
  • Verwenden Sie die RetrieverQueryEngine, um den eigentlichen Abruf und die Abfrageverarbeitung durchzuführen, mit optionalen Nachbearbeitungsschritten wie der Neuordnung der abgerufenen Dokumente mithilfe von Tools wie CohereRerank.

Als praktisches Beispiel haben wir eine Beispielanwendung bereitgestellt, um eine vollständige RAG-Implementierung mit Azure OpenAI zu demonstrieren.

Praktische RAG-Beispielanwendung

Wir konzentrieren uns nun auf die Erstellung einer RAG-Anwendung mit LlamaIndex.ts (der TypeScipt-Implementierung von LlamaIndex) und Azure OpenAI und stellen diese als serverlose Web-Apps auf Azure Container Apps bereit.

Anforderungen zum Ausführen des Beispiels

  • Azure Developer CLI (azd): Ein Befehlszeilentool zur einfachen Bereitstellung Ihrer gesamten App, einschließlich Backend, Frontend und Datenbanken.
  • Azure-Konto: Sie benötigen ein Azure-Konto, um die Anwendung bereitzustellen. Holen Sie sich ein kostenloses Azure-Konto mit etwas Guthaben, um loszulegen.

Das Getting Started-Projekt finden Sie auf GitHub. Wir empfehlen Ihnen, diese Vorlage zu teilen, damit Sie sie bei Bedarf frei bearbeiten können:

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Architektur auf hohem Niveau

Die Projektanwendung „Erste Schritte“ basiert auf der folgenden Architektur:

  • Azure OpenAI: Der KI-Anbieter, der die Anfragen des Benutzers verarbeitet.
  • LlamaIndex.ts: Das Framework, das dabei hilft, Inhalte (PDFs) aufzunehmen, zu transformieren und zu vektorisieren und einen Suchindex zu erstellen.
  • Azure Container Apps: Die Containerumgebung, in der die serverlose Anwendung gehostet wird.
  • Azure Managed Identity: Gewährleistet erstklassige Sicherheit und macht die Handhabung von Anmeldeinformationen und API-Schlüsseln überflüssig.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Weitere Informationen zu den bereitgestellten Ressourcen finden Sie im Infra-Ordner, der in allen unseren Beispielen verfügbar ist.

Beispiel-Benutzer-Workflows

Die Beispielanwendung enthält Logik für zwei Workflows:

  1. Datenaufnahme: Daten werden abgerufen, vektorisiert und Suchindizes erstellt. Wenn Sie weitere Dateien wie PDFs oder Word-Dateien hinzufügen möchten, sollten Sie diese hier hinzufügen.

      npm run generate
    
  2. Bereitstellung von Eingabeaufforderungsanfragen: Die App empfängt Benutzereingabeaufforderungen, sendet sie an Azure OpenAI und erweitert diese Eingabeaufforderungen mithilfe des Vektorindex als Retriever.

Ausführen der Probe

Bevor Sie das Beispiel ausführen, stellen Sie sicher, dass Sie die erforderlichen Azure-Ressourcen bereitgestellt haben.

Um die GitHub-Vorlage im GitHub-Codespace auszuführen, klicken Sie einfach auf
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Melden Sie sich in Ihrer Codespaces-Instanz von Ihrem Terminal aus bei Ihrem Azure-Konto an:

azd auth login

Bereitstellen, Verpacken und Bereitstellen der Beispielanwendung in Azure mit einem einzigen Befehl:

azd up

Um die Anwendung lokal auszuführen und auszuprobieren, installieren Sie die npm-Abhängigkeiten und führen Sie die App aus:

npm install
npm run dev

Die App wird auf Port 3000 in Ihrer Codespaces-Instanz oder unter http://localhost:3000 in Ihrem Browser ausgeführt.

Abschluss

Diese Anleitung zeigt, wie man eine serverlose RAG-Anwendung (Retrieval-Augmented Generation) mit LlamaIndex.ts und Azure OpenAI erstellt, die auf Microsoft Azure bereitgestellt wird. Wenn Sie diesem Leitfaden folgen, können Sie die Infrastruktur von Azure und die Funktionen von LlamaIndex nutzen, um leistungsstarke KI-Anwendungen zu erstellen, die kontextuell angereicherte Antworten basierend auf Ihren Daten bereitstellen.

Wir sind gespannt, was Sie mit dieser Einstiegsanwendung erstellen. Fühlen Sie sich frei, es zu forken und das GitHub-Repository zu liken, um die neuesten Updates und Funktionen zu erhalten.

Das obige ist der detaillierte Inhalt vonErstellen einer RAG-App mit LlamaIndex.ts und Azure OpenAI: Erste Schritte!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn