Erste Schritte mit dem Chat mithilfe Ihres eigenen Datenbeispiels für Java
In diesem Artikel erfahren Sie, wie Sie den Chat mit Ihrem Datenbeispiel für Javabereitstellen und ausführen. In diesem Beispiel wird eine Chat-App mit Java, Azure OpenAI Service und Retrieval Augmented Generation (RAG) in Azure AI Search implementiert, um Antworten auf Mitarbeitervorteile in einem fiktiven Unternehmen zu erhalten. Die App wird mit PDF-Dateien wie dem Mitarbeiterhandbuch, einem Leistungsdokument und einer Liste von Unternehmensrollen und Erwartungen versehen.
In diesem Artikel führen Sie die folgenden Aufgaben aus:
- Stellen Sie eine Chat-App in Azure bereit.
- Erhalten Sie Antworten über Mitarbeiterleistungen.
- Ändern Sie einstellungen, um das Verhalten von Antworten zu ändern.
Nachdem Sie diesen Artikel abgeschlossen haben, können Sie mit dem Ändern des neuen Projekts mit Ihrem benutzerdefinierten Code beginnen.
Dieser Artikel ist Teil einer Sammlung von Artikeln, die Ihnen zeigen, wie Sie eine Chat-App mit Azure OpenAI Service und Azure AI Search erstellen. Weitere Artikel in der Sammlung sind:
Anmerkung
In diesem Artikel werden eine oder mehrere KI-App-Vorlagen als Grundlage für die Beispiele und Anleitungen im Artikel verwendet. KI-App-Vorlagen bieten Ihnen gut gepflegte, einfach zu implementierende Referenzimplementierungen, die helfen, einen qualitativ hochwertigen Ausgangspunkt für Ihre KI-Apps zu gewährleisten.
Architekturübersicht
Eine einfache Architektur der Chat-App wird im folgenden Diagramm gezeigt:
Zu den wichtigsten Komponenten der Architektur gehören:
- Eine Webanwendung zum Hosten der interaktiven Chaterfahrung.
- Eine Azure AI Search-Ressource, um Antworten aus Ihren eigenen Daten zu erhalten.
- Ein Azure OpenAI-Dienst, der Folgendes bereitstellt:
- Schlüsselwörter, um die Suche über Ihre eigenen Daten zu verbessern.
- Antworten aus dem OpenAI-Modell.
- Einbettungen aus dem ada-Modell
Kosten
Die meisten Ressourcen in dieser Architektur verwenden einen Basic- oder Verbrauchspreistarif. Die Verbrauchspreise basieren auf der Nutzung, was bedeutet, dass Sie nur für ihre Nutzung bezahlen. Um diesen Artikel vollständig zu lesen, fällt eine Gebühr an, die jedoch minimal ist. Wenn Sie mit dem Artikel fertig sind, können Sie die Ressourcen löschen, um das Entstehen von Gebühren zu beenden.
Weitere Informationen zu den Kosten im Beispielrepository finden Sie hier.
Voraussetzungen
Ein Entwicklungscontainer Umgebung ist mit allen Abhängigkeiten verfügbar, die zum Abschließen dieses Artikels erforderlich sind. Sie können den Entwicklungscontainer in GitHub Codespaces (in einem Browser) oder lokal mit Visual Studio Code ausführen.
Um diesen Artikel zu verwenden, benötigen Sie die folgenden Voraussetzungen:
- Ein Azure-Abonnement – Kostenlos erstellen.
- Azure-Kontoberechtigungen – Ihr Azure-Konto muss über
Microsoft.Authorization/roleAssignments/write
Berechtigungen verfügen, z. B. Benutzerzugriffsadministrator oder Besitzer-. - Ein GitHub-Konto.
Offene Entwicklungsumgebung
Beginnen Sie jetzt mit einer Entwicklungsumgebung, in der alle Abhängigkeiten installiert sind, um diesen Artikel abzuschließen.
GitHub Codespaces führt einen von GitHub verwalteten Entwicklungscontainer mit Visual Studio Code für das Web als Benutzeroberfläche aus. Verwenden Sie für die einfachste Entwicklungsumgebung GitHub Codespaces, damit Sie die richtigen Entwicklertools und Abhängigkeiten vorinstalliert haben, um diesen Artikel abzuschließen.
Wichtig
Alle GitHub-Konten können Codespaces für bis zu 60 Stunden kostenlos jeden Monat mit zwei Kerninstanzen verwenden. Weitere Informationen finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.
Klicken Sie mit der rechten Maustaste auf die folgende Schaltfläche, und wählen Sie Link in neuen Fenstern öffnen aus, um sowohl die Entwicklungsumgebung als auch die Dokumentation gleichzeitig zur Verfügung zu haben.
Überprüfen Sie auf der Seite Codespace erstellen die Codespace-Konfigurationseinstellungen, und wählen Sie dann Codespace erstellen aus.
Warten Sie, bis der Codespace gestartet wird. Dieser Startvorgang kann einige Minuten dauern.
Melden Sie sich am unteren Bildschirmrand am Terminal mit der Azure Developer CLI bei Azure an.
azd auth login
Kopieren Sie den Code vom Terminal, und fügen Sie ihn dann in einen Browser ein. Befolgen Sie die Anweisungen zum Authentifizieren mit Ihrem Azure-Konto.
Die verbleibenden Aufgaben in diesem Artikel finden im Kontext dieses Entwicklungscontainers statt.
Bereitstellen und Ausführen
Das Beispiel-Repository enthält alle Code- und Konfigurationsdateien, die Sie zum Bereitstellen einer Chat-App in Azure benötigen. Die folgenden Schritte führen Sie durch den Prozess der Bereitstellung des Beispiels in Azure.
Bereitstellen einer Chat-App in Azure
Wichtig
Azure-Ressourcen, die in diesem Abschnitt erstellt wurden, verursachen sofortige Kosten, hauptsächlich aus der Azure AI Search-Ressource. Diese Ressourcen können Kosten verursachen, selbst wenn Sie den Befehl unterbrechen, bevor er vollständig ausgeführt wird.
Stellen Sie die Azure-Ressourcen bereit, und stellen Sie den Quellcode bereit, indem Sie den folgenden Befehl ausführen:
azd up
Wenn Sie aufgefordert werden, einen Umgebungsnamen einzugeben, halten Sie ihn kurz und klein, z. B.
myenv
. Er wird als Teil des Ressourcengruppennamens verwendet.Wenn Sie dazu aufgefordert werden, wählen Sie ein Abonnement aus, in dem die Ressourcen erstellt werden sollen.
Wenn Sie aufgefordert werden, einen Ort zum ersten Mal auszuwählen, wählen Sie einen Ort in Ihrer Nähe aus. Dieser Speicherort wird für die meisten Ressourcen einschließlich Hosting verwendet.
Wenn Sie zur Eingabe eines Speicherorts für das OpenAI-Modell aufgefordert werden, wählen Sie einen Speicherort aus, der sich in Ihrer Nähe befindet. Wenn derselbe Speicherort wie Ihr erster Speicherort verfügbar ist, wählen Sie diesen Speicherort aus.
Warten Sie, bis die App bereitgestellt wird, was 5 bis 10 Minuten dauern kann.
Nachdem die Anwendung erfolgreich bereitgestellt wurde, wird eine URL im Terminal angezeigt.
Wählen Sie diese URL mit der Bezeichnung
Deploying service web
aus, um die Chatanwendung in einem Browser zu öffnen.
Verwenden der Chat-App zum Abrufen von Antworten aus PDF-Dateien
Die Chat-App wird vorab mit Informationen zu den Leistungen für Mitarbeiter aus PDF-Dateien befüllt. Sie können die Chat-App verwenden, um Fragen zu den Vorteilen zu stellen. Die folgenden Schritte führen Sie durch den Prozess der Verwendung der Chat-App.
Wählen Sie aus oder geben Sie im Browser ein: Was ist in meinem Northwind Health Plus-Plan enthalten, das nicht im Standardplan enthalten ist? im Chat-Textfeld.
Wählen Sie in der Antwort eine der Zitate aus.
Verwenden Sie die Registerkarten im rechten Bereich, um nachzuvollziehen, wie die Antwort generiert wurde.
Tab Beschreibung Gedankenprozess Skript der Interaktionen im Chat. Unterstützende Inhalte Enthält die Informationen zur Beantwortung Ihrer Frage und des Quellmaterials. Zitat Zeigt die PDF-Seite an, die das Zitat enthält. Wenn Sie fertig sind, wählen Sie die ausgewählte Registerkarte erneut aus, um den Bereich zu schließen.
Verwenden von Chat-App-Einstellungen zum Ändern des Verhaltens von Antworten
Das OpenAI-Modell und die Einstellungen, die für die Interaktion mit dem Modell verwendet werden, bestimmen die Intelligenz der Chat-App.
Einstellung | Beschreibung |
---|---|
Außerkraftsetzen der Eingabeaufforderungsvorlage | Eingabeaufforderung, die zum Generieren der Antwort verwendet wird. |
Diese Anzahl an Suchergebnissen abrufen | Die Anzahl der Suchergebnisse, die zum Generieren der Antwort verwendet werden. Sie können diese Quellen sehen, die im Gedankenprozess und den Registerkarten mit Unterstützendem Inhalt zum Zitat zurückgegeben werden. |
Kategorie ausschließen | Kategorie von Dokumenten, die aus den Suchergebnissen ausgeschlossen sind. |
Verwenden des semantischen Rankers für den Abruf | Feature von Azure AI Search, das maschinelles Lernen verwendet, um die Relevanz von Suchergebnissen zu verbessern. |
Verwenden von Abfragekontextzusammenfassungen anstelle von ganzen Dokumenten | Wenn sowohl Use semantic ranker als auch Use query-contextual summaries überprüft werden, verwendet die LLM Beschriftungen, die aus Schlüsselabschnitten extrahiert wurden, anstelle aller Passagen in den höchsten bewerteten Dokumenten. |
Vorschlagen von Nachverfolgungsfragen | Lassen Sie die Chat-App Nachverfolgungsfragen basierend auf der Antwort vorschlagen. |
Abrufmodus | Vectors + Text bedeutet, dass die Suchergebnisse auf dem Text der Dokumente und den Einbettungen der Dokumente basieren. Vectors bedeutet, dass die Suchergebnisse auf den Einbettungen der Dokumente basieren. Text bedeutet, dass die Suchergebnisse auf dem Text der Dokumente basieren. |
Chatabschlussantworten streamen | Streamen Sie die Antwort statt zu warten, bis die vollständige Antwort für eine Reaktion verfügbar ist. |
Die folgenden Schritte führen Sie durch den Prozess der Änderung der Einstellungen.
Wählen Sie im Browser die Registerkarte Entwicklereinstellungen aus.
Aktivieren Sie das Kontrollkästchen "Nachverfolgungsfragen vorschlagen", und stellen Sie die gleiche Frage erneut.
What is my deductible?
Der Chat gibt vorgeschlagene Nachverfolgungsfragen wie die folgenden zurück:
1. What is the cost sharing for out-of-network services? 2. Are preventive care services subject to the deductible? 3. How does the prescription drug deductible work?
Deaktivieren Sie auf der Registerkarte Einstellungen die Option Semantischen Ranker zum Abrufen verwenden.
Stellen Sie die gleiche Frage erneut?
What is my deductible?
Was ist der Unterschied in den Antworten?
Die Antwort, die den semantischen Rangierer verwendet hat, lieferte beispielsweise eine einzige Antwort:
The deductible for the Northwind Health Plus plan is $2,000 per year
.Die Antwort ohne semantische Rangfolge hat eine Antwort zurückgegeben, die mehr Arbeit erforderte, um die Antwort zu erhalten:
Based on the information provided, it is unclear what your specific deductible is. The Northwind Health Plus plan has different deductible amounts for in-network and out-of-network services, and there is also a separate prescription drug deductible. I would recommend checking with your provider or referring to the specific benefits details for your plan to determine your deductible amount
.
Bereinigen von Ressourcen
Bereinigen von Azure-Ressourcen
Die in diesem Artikel erstellten Azure-Ressourcen werden Ihrem Azure-Abonnement in Rechnung gestellt. Wenn Sie nicht erwarten, dass diese Ressourcen in Zukunft benötigt werden, löschen Sie sie, um mehr Gebühren zu vermeiden. Verwenden Sie den folgenden Befehl, um die Azure-Ressourcen zu löschen und den Quellcode zu entfernen:
azd down --purge
Aufräumen von GitHub-Codespaces
Durch das Löschen der GitHub Codespaces-Umgebung wird sichergestellt, dass Sie die Anzahl der kostenlosen Berechtigungsstunden pro Kern maximieren können, die Sie für Ihr Konto erhalten.
Wichtig
Weitere Informationen zu den Berechtigungen Ihres GitHub-Kontos finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.
Melden Sie sich beim GitHub Codespaces-Dashboardan.
Suchen Sie Ihre derzeit ausgeführten Codespaces, die aus dem GitHub-Repository Azure-Samples/azure-search-openai-demo-java stammen.
Öffnen Sie das Kontextmenü für den Codespace, und wählen Sie dann Löschenaus.
Wie wird die Frage beantwortet?
Die App ist in zwei Apps getrennt:
- Eine Front-End-JavaScript-Anwendung mit dem React-Framework mit dem Vite-Buildtool.
- Eine Back-End-Java-Anwendung beantwortet die Frage.
Das Back-End /chat
-API führt die Schritte zum Abrufen der Antwort durch:
- Erstellen von RAG-Optionen: Erstellen Sie eine Reihe von Optionen, die zum Generieren einer Antwort verwendet werden.
- Erstellen Sie einen Ansatz mit RAG-Optionen: Verwenden Sie eine Kombination aus abrufbasierten und generativen Modellen, um einen Ansatz zum Generieren einer präzisen und natürlich klingenden Antwort zu erstellen.
- Führen Sie den Ansatz mit RAG-Optionen und früheren Unterhaltungen aus: Verwenden Sie den Ansatz und die RAG-Optionen, um eine Antwort basierend auf der vorherigen Unterhaltung zu generieren. Die Antwort enthält Informationen dazu, welche Dokumente zum Generieren der Antwort verwendet wurden.
Hilfe anfordern
Dieses Beispiel-Repository bietet Informationen zur Problembehandlung. Wenn Ihr Problem nicht behoben wurde, melden Sie es unter den Issues des Repositorys.
Nächste Schritte
- Abrufen des Quellcodes für das in diesem Artikel verwendete Beispiel
- Erstellen einer Chat-App mit Azure OpenAI Best Practice-Lösungsarchitektur
- Zugriffssteuerung in generativen KI-Apps mit Azure AI Search
- Erstellen einer unternehmensbereiten OpenAI-Lösung mit Azure API Management
- Leistungsstarke Vektorsuche mit hybriden Abruf- und Ranking-Fähigkeiten
- Weitere End-to-End-Vorlagen für Azure AI