Erste Schritte mit dem Chat und eigenen Daten für Python

In diesem Artikel erfahren Sie, wie Sie den Chat mit Ihren eigenen Daten für Python bereitstellen und ausführen. In diesem Beispiel wird eine Chat-App unter Verwendung von Python, Azure OpenAI Service und Retrieval Augmented Generation (RAG) in Azure KI-Suche implementiert, um Antworten zu Mitarbeiterleistungen in einem fiktiven Unternehmen zu erhalten. In der App stehen verschiedene PDF-Dateien zur Verfügung – unter anderem das Mitarbeiterhandbuch, ein Dokument zu Leistungen und eine Liste der Rollen und Erwartungen des Unternehmens.

Indem Sie die Anweisungen in diesem Artikel befolgen, werden Sie:

  • Eine Chat-App in Azure bereitstellen.
  • Antworten auf zu den Mitarbeitervergünstigungen erhalten.
  • Einstellungen ändern, um das Verhalten auf Antworten zu ändern.

Nachdem Sie dieses Verfahren abgeschlossen haben, können Sie mit dem Ändern des neuen Projekts mit Ihrem benutzerdefinierten Code beginnen.

Dieser Artikel ist Teil einer Sammlung von Artikeln, in denen gezeigt wird, wie Sie eine Chat-App unter Verwendung von Azure OpenAI Service und Azure KI-Suche erstellen.

Weitere Artikel in der Sammlung sind:

Hinweis

In diesem Artikel wird mindestens eine KI-App-Vorlage als Grundlage für die Beispiele und Anleitungen im Artikel verwendet. KI-App-Vorlagen bieten Ihnen gut gepflegte, einfach bereitzustellende Referenzimplementierungen, die helfen, einen qualitativ hochwertigen Ausgangspunkt für Ihre KI-Apps zu gewährleisten.

Übersicht über die Architektur

Eine einfache Architektur der Chat-App wird im folgenden Diagramm gezeigt:

Abbildung der Architektur vom Client bis zur Back-End-App

Zu den wichtigsten Komponenten der Architektur gehören:

  • Eine Webanwendung zum Hosten der interaktiven Chaterfahrung.
  • Eine Azure KI-Suche-Ressource, um Antworten aus Ihren eigenen Daten zu erhalten.
  • Ein Azure OpenAI-Dienst, der Folgendes bereitstellt:
    • Schlüsselwörter, um die Suche in Ihren 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 abzuschließen, gibt es eine Gebühr, aber sie ist gering. Wenn Sie mit dem Artikel fertig sind, können Sie die Ressourcen löschen, damit keine weiteren Gebühren mehr anfallen.

Weitere Informationen zu den Kosten im Beispielrepository finden Sie hier.

Voraussetzungen

Eine Entwicklungscontainerumgebung 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.

Für diesen Artikel benötigen Sie Folgendes:

  • Azure-Abonnement: Kostenloses Azure-Konto
  • Azure-Kontoberechtigungen: Ihr Azure-Konto muss über Microsoft.Authorization/roleAssignments/write-Berechtigungen verfügen, z. B. Benutzerzugriffsadministrator oder Besitzer.
  • Zugriff auf Azure OpenAI im gewünschten Azure-Abonnement gewährt. Derzeit wird der Zugriff auf diesen Dienst nur auf Antrag gewährt. Sie können den Zugriff auf Azure OpenAI beantragen, indem Sie das Formular unter https://aka.ms/oai/access ausfüllen. Öffnen Sie ein Problem in diesem Repository, um uns bei einem Problem zu kontaktieren.
  • GitHub -Konto

Öffnen Sie die 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 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 pro Monat mit zwei Kerninstanzen kostenlos verwenden. Weitere Informationen finden Sie im Artikel zu monatlich enthaltener Speicherkapazität und Kernstunden in GitHub Codespaces.

  1. Starten Sie den Prozess, um einen neuen GitHub Codespace im Branch main des GitHub-Repositorys Azure-Samples/azure-search-openai-demo zu erstellen.

  2. Klicken Sie mit der rechten Maustaste auf die folgende Schaltfläche, und wählen Sie den Link in neuen Fenstern öffnen aus, damit sowohl die Entwicklungsumgebung als auch die Dokumentation gleichzeitig verfügbar sind.

    In GitHub Codespaces öffnen

  3. Überprüfen Sie auf der Seite Codespace erstellen die Codespace-Konfigurationseinstellungen, und wählen Sie dann Neuen Codespace erstellen aus.

    Screenshot: Bestätigungsbildschirm vor dem Erstellen eines neuen Codespace.

  4. Warten Sie den Start des Codespaces ab. Dieser Startvorgang kann einige Minuten dauern.

  5. Melden Sie sich am unteren Bildschirmrand am Terminal mit der Azure Developer CLI bei Azure an.

    azd auth login
    
  6. 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.

  7. 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

In diesem Abschnitt erstellte Azure-Ressourcen verursachen sofortige Kosten, in erster Linie durch die Azure KI-Suche-Ressource. Diese Ressourcen können Kosten verursachen, selbst wenn Sie den Befehl unterbrechen, bevor er vollständig ausgeführt wird.

  1. Führen Sie den folgenden Azure Developer CLI-Befehl aus, um die Azure-Ressourcen bereitzustellen und den Quellcode bereitzustellen:

    azd up
    
  2. Wenn Sie dazu aufgefordert werden, einen Umgebungsnamen einzugeben, halten Sie ihn kurz, und verwenden Sie nur Kleinbuchstaben. Beispiel: myenv. Er wird als Teil des Ressourcengruppennamens verwendet.

  3. Wenn Sie dazu aufgefordert werden, wählen Sie ein Abonnement aus, in dem die Ressourcen erstellt werden sollen.

  4. 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.

  5. Wenn Sie zur Eingabe eines Standorts für das OpenAI-Modell oder für die Document Intelligence-Ressource aufgefordert werden, wählen Sie den Standort aus, der Ihnen am nächsten ist. Wenn derselbe Speicherort wie Ihr erster Speicherort verfügbar ist, wählen Sie diesen Speicherort aus.

  6. Warten Sie nach der Bereitstellung der App fünf bis zehn Minuten, bevor Sie fortfahren.

  7. Nachdem die Anwendung erfolgreich bereitgestellt wurde, wird eine URL im Terminal angezeigt.

    Screenshot: Bereitgestellte App, wie am Ende des AZD-CLI-Prozesses „azd up“ gemeldet

  8. Wählen Sie diese URL aus, die als (✓) Done: Deploying service webapp beschriftet ist, um die Chatanwendung in einem Browser zu öffnen.

    Screenshot der Chat-App im Browser mit mehreren Vorschlägen für Chateingaben und dem Chattextfeld, um eine Frage einzugeben

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 Leistungen zu stellen. Die folgenden Schritte führen Sie durch den Prozess der Verwendung der Chat-App. Ihre Antworten können variieren, wenn die zugrunde liegenden Modelle aktualisiert werden.

  1. Wählen Sie im Browser im Chattextfeld die Option Was passiert bei einer Leistungsüberprüfung? aus, oder geben Sie den entsprechenden Text ein.

    Screenshot der ersten Antwort der Chat-App

  2. Wählen Sie in der Antwort ein Zitat aus.

    Screenshot der ersten Antwort der Chat-App mit hervorgehobenem Zitat in einem roten Feld

  3. Verwenden Sie die Registerkarten im rechten Bereich, um nachzuvollziehen, wie die Antwort generiert wurde.

    Tab Beschreibung
    Gedankenprozess Dies ist ein Skript der Interaktionen im Chat. Sie können die Systemaufforderung (content) und Ihre Benutzerfrage (content) anzeigen.
    Unterstützender Inhalt Dazu gehören die Informationen zur Beantwortung Ihrer Frage und des Quellmaterials. Die Anzahl der Quellenmaterialzitate wird in den Entwicklereinstellungen angegeben. Der Standardwert ist 3.
    Quellenangaben Dadurch wird die Originalseite angezeigt, die das Zitat enthält.
  4. 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

Die Intelligenz des Chats wird durch das OpenAI-Modell und die Einstellungen bestimmt, die für die Interaktion mit dem Modell verwendet werden.

Screenshot der Chat-Entwicklereinstellungen

Einstellung Beschreibung
Außerkraftsetzen der Eingabeaufforderungsvorlage Setzt den Prompt außer Kraft, der verwendet wurde, um die Antwort basierend auf der Frage und den Suchergebnissen zu generieren.
Temperature Legt die Temperatur der Anforderung an das LLM fest, das die Antwort generiert. Höhere Temperaturen führen zu kreativeren Antworten, diese sind jedoch ggf. weniger fundiert.
Seed Legt einen Startwert fest, um die Reproduzierbarkeit der Antworten des Modells zu verbessern. Der Startwert kann eine beliebige Ganzzahl sein.
Mindestsuchbewertung Legt eine Mindestbewertung für Suchergebnisse fest, die von Azure KI-Suche zurückgegeben werden. Der Bewertungsbereich hängt davon ab, ob Sie Hybrid (Standard), nur Vektoren oder nur Text verwenden.
Mindestbewertung für Neusortierung Legt eine Mindestbewertung für Suchergebnisse fest, die vom semantischen Neusortierer zurückgegeben werden. Der Bewertungsbereich liegt immer zwischen 0 und 4. Je höher die Bewertung, desto semantisch relevanter das Ergebnis für die Frage.
Abrufen dieser vielen Suchergebnisse Legt die Anzahl von Suchergebnissen fest, die von Azure KI-Suche abgerufen werden sollen. Mehr Ergebnisse können die Wahrscheinlichkeit erhöhen, die richtige Antwort zu finden. Sie können aber auch dazu führen, dass das Modell „den Faden verliert“. Diese Quellen werden auf den Registerkarten Denkprozess und Unterstützender Inhalt des Zitats zurückgegeben.
Kategorie ausschließen Gibt eine Kategorie an, die aus den Suchergebnissen ausgeschlossen werden soll. Im Standarddataset werden keine Kategorien verwendet.
Verwenden des semantischen Rankers für den Abruf Aktiviert das Feature Semantischer Sortierer von Azure KI-Suche. Dabei handelt es sich um ein Modell, das Suchergebnisse basierend auf der semantischen Ähnlichkeit mit der Abfrage des Benutzers neu sortiert.
Semantische Beschriftungen verwenden Sendet anstelle des vollständigen Suchergebnisses semantische Beschriftungen an das LLM. Eine semantische Beschriftung wird während der semantischen Sortierung aus einem Suchergebnis extrahiert.
Vorschlagen von Anschlussfragen Fordert das LLM auf, Anschlussfragen vorzuschlagen, die auf der Abfrage des Benutzers basieren.
Abrufmodus Legt den Abrufmodus für die Azure KI-Suche-Abfrage fest. Vektoren und Text (Hybrid) verwendet eine Kombination aus Vektor- und Volltextsuche, Vektoren verwendet nur die Vektorsuche, und Text verwendet nur die Volltextsuche. Die Hybridoption ist im Allgemeinen am besten geeignet.
Chatabschlussantworten streamen Streamt die Antwort kontinuierlich an die Chatbenutzeroberfläche, sobald sie generiert wird.

Die folgenden Schritte führen Sie durch den Prozess der Änderung der Einstellungen.

  1. Wählen Sie im Browser die Registerkarte Entwicklereinstellungen aus.

  2. Aktivieren Sie das Kontrollkästchen Anschlussfragen vorschlagen und stellen Sie die gleiche Frage erneut.

    What happens in a performance review?
    

    Im Chat wurden vorgeschlagene Anschlussfragen zurückgegeben, beispielsweise:

    1. What is the frequency of performance reviews?
    2. How can employees prepare for a performance review?
    3. Can employees dispute the feedback received during the performance review?
    
  3. Deaktivieren Sie auf der Registerkarte Einstellungen die Option Semantischen Ranker zum Abrufen verwenden.

  4. Gleiche Frage erneut stellen?

    What happens in a performance review?
    
  5. Was ist der Unterschied in den Antworten?

    Mit semantischem Sortierer: Im Rahmen einer Leistungsüberprüfung bei Contoso Electronics haben Mitarbeiter die Möglichkeit, ihre Erfolge und Herausforderungen am Arbeitsplatz zu besprechen (1). Die Überprüfung liefert positives und konstruktives Feedback, um Mitarbeitern bei der Weiterentwicklung in ihren Rollen zu helfen (1). Der Mitarbeiter erhält eine schriftliche Zusammenfassung der Leistungsüberprüfung, die eine Bewertung seiner Leistung, Feedback sowie Ziele für das kommende Jahr enthält (1). Die Leistungsüberprüfung ist ein Dialog zwischen Führungskräften und Mitarbeitern (1).

    Ohne semantischen Sortierer: Im Rahmen einer Leistungsüberprüfung bei Contoso Electronics haben Mitarbeiter die Möglichkeit, ihre Erfolge und Herausforderungen am Arbeitsplatz zu besprechen (1). Positives und konstruktives Feedback wird bereitgestellt, um Mitarbeitern bei der Weiterentwicklung in ihren Rollen zu helfen. Eine schriftliche Zusammenfassung der Leistungsüberprüfung wird bereitgestellt, einschließlich einer Bewertung der Leistung, Feedback und Zielen für das kommende Jahr. Die Überprüfung ist ein Dialog zwischen Führungskräften und Mitarbeitern (1).

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 weitere Gebühren zu vermeiden.

Führen Sie den folgenden Azure Developer CLI-Befehl aus, um die Azure-Ressourcen zu löschen und den Quellcode zu entfernen:

azd down --purge --force

Die Schalter bieten:

  • purge: Gelöschte Ressourcen werden sofort endgültig gelöscht. Auf diese Weise können Sie das Azure OpenAI-TPM wiederverwenden.
  • force: Der Löschvorgang erfolgt im Hintergrund, ohne dass die Zustimmung des Benutzers erforderlich ist.

Bereinigen 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.

  1. Melden Sie sich beim GitHub Codespaces-Dashboard (https://github.com/codespaces) an.

  2. Suchen Sie Ihre derzeit ausgeführten Codespaces, die aus dem GitHub-Repository Azure-Samples/azure-search-openai-demo stammen.

    Screenshot aller ausgeführten Codespaces einschließlich status und Vorlagen.

  3. Öffnen Sie das Kontextmenü für den Codespace, und wählen Sie dann Löschen aus.

    Screenshot: Kontextmenü für einen Codespace mit hervorgehobener Löschoption.

Hilfe erhalten

Dieses Beispiel-Repository bietet Informationen zur Problembehandlung.

Wenn Ihr Problem nicht behoben ist, protokollieren Sie Ihr Problem bei den Problemen des Repositorys.

Nächste Schritte