„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Erstellen einer RAG-App mit LlamaIndex.ts und Azure OpenAI: Erste Schritte!

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

Veröffentlicht am 08.11.2024
Durchsuche:769

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 Dense-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 mithilfe von „asQueryEngine“ in eine Abfrage-Engine mit Parametern wie „similarityTopK“, um zu definieren, wie viele Top-Dokumente abgerufen werden sollen.
  • Für erweiterte Setups erstellen Sie ein Multi-Agenten-System, 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 Einstiegsprojekt finden Sie auf GitHub. Wir empfehlen Ihnen, diese Vorlage zu forken, 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 Abfragen 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.

Freigabeerklärung Dieser Artikel ist nachgedruckt unter: https://dev.to/azure/building-a-rag-app-app-llamaindexts @163.com Löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3