Freigeben über


Integrieren eines OpenAI-Bots in Chat

In diesem Artikel wird die Integration eines openAI-Bots für Unterhaltungen in einen Azure Communication Services-Chat veranschaulicht. Der OpenAI-Chat-Bot verwendet Microsoft Bot Framework , das in den semantischen Kernel integriert ist. Der OpenAI-Bot ruft Antworten aus einer internen Wissensbasis ab und fasst sie zusammen, um Benutzerfragen in natürlicher Sprache zu beantworten.

Diagramm der Azure OpenAI-Architektur.

Schritt 1: Bereitstellen eines Basismodells mit Azure AI Foundry

  1. Folgen Sie im Azure AI Foundry-Portal dem Artikel Projekt erstellen, um ein neues Projekt zu erstellen. Wenn Sie dazu aufgefordert werden, erstellen Sie einen neuen Hub, und akzeptieren Sie alle Standardeinstellungen.

  2. Öffnen Sie Ihr Projekt, wechseln Sie zu den enthaltenen Funktionen, wählen Sie Azure OpenAI-Dienst aus, und speichern Sie sowohl den API-Schlüssel als auch die Dienstendpunkt-URL.

    Screenshot der Übersichtsseite des Azure AI Foundry-Portals.

  3. Navigieren Sie im linken Menü zu "Meine Objekte" → Modelle + Endpunkte. Klicken Sie dann auf +Modell bereitstellen , und wählen Sie "Basismodell bereitstellen" aus.

    Screenshot der Seite

  4. Wählen Sie "gpt-4o " aus, und klicken Sie auf "Bestätigen".

    Screenshot des Dialogfelds

  5. Geben Sie einen Bereitstellungsnamen Ihrer Wahl ein, und klicken Sie dann auf "Verbinden" und "Bereitstellen".

    Screenshot des Dialogfelds

  6. Kehren Sie nach Abschluss der Bereitstellung zu Models + Endpunkten zurück, um zu überprüfen, ob Ihr Modell ausgeführt wird. In diesem Beispiel ist das bereitgestellte Modell gpt-4o.

    Screenshot der Ressource

Schritt 2: Erstellen einer Web App-Ressource

  1. Klicken Sie im Azure-Portal auf Ressource erstellen. Geben Sie in das Suchfeld web app ein. Wählen Sie die Kachel Web-App aus.

    Screenshot: Erstellen einer Web-App-Ressource im Azure-Portal.

  2. Wählen Sie unter Web-App erstellen Details für die App aus, oder geben Sie sie ein, einschließlich der Region, in der Sie die App bereitstellen möchten.

    Screenshot der Seite

  3. Wählen Sie Überprüfen und erstellen aus, um die Bereitstellung und die Bereitstellungsdetails zu überprüfen. Wählen Sie dann Erstellen aus.

  4. Wenn die Web-App-Ressource erstellt wird, kopieren Sie die hostname-URL, die in den Ressourcendetails angezeigt wird. Die URL ist Teil des Endpunkts, den Sie für die Web-App erstellen.

    Screenshot der Seite

Schritt 3: Erstellen einer Azure Bot Service-Ressource

  1. Klicken Sie im Azure-Portal auf Ressource erstellen. Geben Sie im Suchfeld bot ein. Wählen Sie die Azure Bot-Kachel aus.

    Screenshot der Azure-Bot-Kachel mit Details, die zum Erstellen eines Azure-Bot-Diensts erforderlich sind.

  2. Wählen Sie unter "Erstellen eines Azure Bots" "Multi Tenant" als App-Typ und "Neue Microsoft App-ID erstellen" als Erstellungstyp aus.

  3. Wählen Sie Überprüfen und erstellen aus, um die Bereitstellung und die Bereitstellungsdetails zu überprüfen. Wählen Sie dann Erstellen aus.

  4. Rufen Sie die Bot-App-ID ab, und erstellen Sie das Kennwort. Notieren Sie diese Werte, die für spätere Konfigurationen verwendet werden sollen.

Schritt 4: Erstellen eines Messaging-Endpunkts für den Bot

Azure Bot Service erwartet normalerweise, dass der Bot Application Web App Controller einen Endpunkt in der Form /api/messages verfügbar macht. Der Endpunkt verarbeitet alle Nachrichten, die an den Bot gesendet werden. Erstellen Sie als Nächstes in der Botressource einen Web-App-Messagingendpunkt:

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Bot-Ressource. Wählen Sie im Ressourcenmenü die Option "Konfiguration" aus.

  2. Fügen Sie in "Configuration" für den Messaging-Endpunkt die Hostnamen-URL der Web-App ein, die Sie im vorherigen Abschnitt kopiert haben. Fügen Sie der URL /api/messages an.

  3. Wählen Sie Anwenden.

Screenshot: Erstellen eines Bot-Messagingendpunkts mithilfe des Web-App-Hostnamens.

Schritt 5: Erstellen einer Azure Communication Service-Ressource

  1. Wählen Sie im Azure-Portal die Option "Ressource erstellen" aus. Geben Sie im Suchfeld Kommunikationsdienste ein. Wählen Sie die Kachel "Kommunikationsdienste " aus.

    Screenshot der Kachel

  2. In Erstellen Sie einen Azure-Kommunikationsdienst können Sie das Abonnement, die Ressourcengruppe, den Namen der Kommunikationsdienstressource und die mit der Ressource verbundene geografische Lage angeben.

  3. Wählen Sie Überprüfen und erstellen aus, um die Bereitstellung und die Bereitstellungsdetails zu überprüfen. Wählen Sie dann Erstellen aus.

  4. Navigieren Sie zur Ressource. Wählen Sie Einstellungen - Identitäten & BenutzerzugriffstokenChat, und klicken Sie dann auf Generieren. Speichern Sie das Identitäts- und Benutzerzugriffstoken für die zukünftige Verwendung.

    Screenshot, der zeigt, wie Sie eine Kommunikationsdienste-Benutzer-ID und ein Zugriffstoken erstellen

Schritt 6: Aktivieren des Kommunikationsdienste-Chatkanals

Wenn Sie über eine Communication Services-Ressource verfügen, können Sie einen Communication Services-Kanal in der Botressource einrichten. Dieser Prozess generiert eine Bot Azure Communication Services-Benutzer-ID für den Bot.

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Bot-Ressource. Wählen Sie im Ressourcenmenü die Option Kanäle aus. Wählen Sie in der Liste der verfügbaren Kanäle "Kommunikationsdienste – Chat" aus.

    Screenshot: Öffnen des Communication Services-Chatkanals.

  2. Wählen Sie Verbinden aus, um eine Liste der Communication Services-Ressourcen anzuzeigen, die in Ihrem Abonnement verfügbar sind.

    Screenshot: Herstellen der Verbindung einer Communication Services-Ressource mit dem Bot.

  3. Wählen Sie im Bereich Neue Verbindung die Communication Services-Chatressource und dann Anwenden aus.

    Screenshot: Speichern der ausgewählten Communication Services-Ressource zum Erstellen einer neuen Communication Services-Benutzer-ID.

  4. Wenn die Ressourcendetails überprüft werden, wird eine Bot Azure Communication Services-Benutzer-ID in der Spalte "Bot Azure Communication Services ID " angezeigt. Speichern Sie die ID für die spätere Verwendung.

    Screenshot der neuen Azure Communication Services-Benutzer-ID, die dem Bot zugewiesen wurde.

Schritt 7: Bereitstellen der Web-App

  1. Öffnen Sie den ChatBot Ordner im Beispiel-Repository in Visual Studio Code (VS Code). Stellen Sie sicher, dass Sie VS Code verwenden, da sie die Microsoft Entra-ID in der Codebereitstellung unterstützt.

  2. Ersetzen Sie die Platzhalter im Beispiel-Repository durch tatsächliche Werte:

    1. Füllen Sie in der SemanticKernelService.cs Datei die Werte für Variablen modelId, endpointund apiKey.
    2. Füllen Sie in der appsettings.json Datei die Werte der Variablen MicrosoftAppId und MicrosoftAppPassword aus, indem Sie die bot app id und die bot password, die Sie in Schritt 3 dokumentiert haben, verwenden.
  3. Installieren Sie die Azure App Service-Erweiterung in VS Code.

    Screenshot, der zeigt, wie Die App-Diensterweiterung installiert wird.

  4. Melden Sie sich bei Ihrem Azure-Konto in VS Code an. Um auf den Anmeldebereich zuzugreifen, klicken Sie auf das Azure-Symbol auf der Aktivitätsleiste auf der Seite des Fensters.

  5. Installieren Sie die Azure App Service-Erweiterung in VS Code.

    Screenshot, der zeigt, wie Sie sich bei Ihrem Azure-Konto in VS Code anmelden.

  6. Erstellen Sie das Projekt, indem Sie den folgenden Befehl im Stammverzeichnis des Projekts "ChatBot" ausführen.

    dotnet publish -c Release -o ./bin/Publish
    

Mit diesem Befehl werden die Ordner bin und obj generiert.

  1. Um die Web App bereitzustellen, klicken Sie mit der rechten Maustaste auf den neuen /bin/Publish Ordner, und wählen Sie "In Web App bereitstellen" aus.

    Screenshot, der zeigt, wie Sie den Ordner für die Bereitstellung auswählen.

  2. Wählen Sie die Azure App Service-Web-App aus, für die Sie die Anwendung bereitstellen möchten. Bestätigen Sie die Bereitstellung.

    Screenshot, der zeigt, wie Die Web-App in Azure bereitgestellt wird.

Schritt 8: Ausführen der Demo

  1. Führen Sie die Schritte vor "Abrufen eines Chatthreadclients" in "Chat zu Ihrer App hinzufügen " aus, um eine Chat-App zu erstellen und einen Thread zu starten.

    Wichtige Hinweise:

    • Sie haben bereits die Azure Communication Service-Ressource im Portal erstellt, sodass Sie das <Azure Communication Services endpoint>, <Access_ID>und <Access_Token> in Ihrem Code direkt verwenden können.
    • Beim Erstellen eines Threads müssen Sie ein weiteres ChatParticipant-Objekt mithilfe der Bot Azure Communication Services User ID erstellen, die in Schritt 6: Aktivieren des Communication Services-Chatkanals erstellt wurde, um <Access_ID> als den Botbenutzer darzustellen.
    • Speichern Sie Thread Id für die spätere Verwendung.
  2. Öffnen Sie die Zusammengesetzte UI-Bibliothek: Azure Communication Services Chat Thread UI – Vorhandenem Chatthread beitreten.

  3. Geben Sie die erforderlichen Informationen an, um einem vorhandenen Chatthread beizutreten.

    • Anzeigename: Sie können den gewünschten Namen auswählen.
    • Benutzer-ID für den Benutzer: die in Schritt <Access_ID> gespeicherte .
    • Gültiges Token für den Benutzer: das <Access_Token> in Schritt 8.1 gespeicherte Token.
    • Azure Communication Services-Endpunkt: der in Schritt <Azure Communication Services endpoint> gespeicherte .
    • Vorhandener Thread: der Thread Id in Schritt 8.1 gespeicherte Thread.
  4. Stellen Sie die folgenden Fragen in Folge:

    • Fragen 1: Meine Benutzer-ID ist 110. Ich habe vor einigen Tagen einen Laptop gekauft. Könnten Sie helfen, die Lieferung nachzuverfolgen?
    • Frage 2: Ich habe eine Rückgabe für meine Power Bank angefordert. Irgendwelche Updates?
    • Frage 3: Ich habe Bluetooth Earphones vor 2 Tagen gekauft, aber sie wurden noch nicht ausgeliefert. Warum?

OpenAI ruft die Daten ab, die für die Semantik der Frage relevant sind, und stellt eine Antwort basierend auf verfügbaren Daten bereit.

Handelsmarken

Dieses Projekt kann Marken oder Logos für Projekte, Produkte oder Dienstleistungen enthalten. Die autorisierte Verwendung von Microsoft-Marken oder Logos unterliegt den Microsoft Markenrichtlinien

Die Verwendung von Microsoft-Marken oder Logos in geänderten Versionen dieses Projekts darf keine Verwirrung oder den Eindruck einer Microsoft-Förderung verursachen.

Jede Verwendung von Marken oder Logos Dritter unterliegt den Richtlinien dieses Dritten.