Een OpenAI-bot integreren met chatten

In dit artikel wordt gedemonstreert hoe u een conversationele OpenAI-bot integreert met een Azure Communication Services-chat. De OpenAI-chatbot maakt gebruik van Microsoft Bot Framework geïntegreerd met Semantic Kernel. De OpenAI-bot haalt antwoorden op uit een interne knowledge base om vragen van gebruikers in natuurlijke taal te beantwoorden en samen te vatten.

Diagram van Azure OpenAI-architectuur.

Stap 1: Een basismodel implementeren met Microsoft Foundry

  1. Volg in de Foundry-portal het artikel Een project maken om een nieuw project te maken. Wanneer u hierom wordt gevraagd, maakt u een nieuwe hub en accepteert u alle standaardinstellingen.

  2. Open uw project, ga naar Opgenomen mogelijkheden, selecteer Azure OpenAI Service en sla zowel de API-sleutel als de URL van het service-eindpunt op.

    Schermopname van de overzichtspagina van de Foundry-portal.

  3. Navigeer in het menu aan de linkerkant naar Mijn assets → Modellen + eindpunten. Klik vervolgens op + Model implementeren en kies Basismodel implementeren.

    Schermopname van de pagina Implementaties van uw modellen en services beheren met de menuopdracht Basismodel implementeren geselecteerd.

  4. Selecteer gpt-4o en klik op Bevestigen.

    Schermopname van het dialoogvenster Een model selecteren waarin gpt-4o is geselecteerd.

  5. Voer een implementatienaam van uw keuze in en klik vervolgens op Verbinding maken en implementeren.

    Schermopname van het dialoogvenster Gpt-4o implementeren met gpt-4o als de naam van de implementatie.

  6. Zodra de implementatie is voltooid, keert u terug naar Modellen en eindpunten om te controleren of uw model wordt uitgevoerd. In dit voorbeeld is het geïmplementeerde model gpt-4o.

    Schermopname van de asset Modellen en eindpunten met gtp-4o als het geïmplementeerde model en gerelateerde implementatiegegevens.

Stap 2: Een web-app-resource maken

  1. Selecteer in het Azure-portaal een resource maken. Voer in het zoekvak de web-app in. Selecteer de Web App-tegel.

    Schermopname van het maken van een web-app-resource in Azure Portal.

  2. In Web-app maken, selecteer of voer details in voor de app, inclusief de regio waar u de app wilt implementeren.

    Schermopname van de pagina Web-app maken met projectdetails en exemplaardetails geselecteerd om een web-app-implementatie te maken.

  3. Selecteer Beoordelen en maken om de implementatie te valideren en de implementatiedetails te controleren. Selecteer vervolgens Maken.

  4. Wanneer de web-app-resource wordt gemaakt, kopieert u de hostnaam-URL die wordt weergegeven in de resourcedetails. De URL maakt deel uit van het eindpunt dat u voor de web-app maakt.

    Schermopname van de pagina My-First-Bot-WebApp met de EINDPUNT-URL van de web-app die u moet kopiëren voor toekomstig gebruik.

Stap 3: Een Azure Bot Service-resource maken

  1. Selecteer in het Azure-portaal een resource maken. Voer in het zoekvak bot in. Selecteer de tegel Azure Bot .

    Schermopname van de tegel Azure-bot met details die nodig zijn om een Azure-botservice te maken.

  2. Selecteer in Een Azure-bot makenMulti Tenant als het type app en Maak nieuwe Microsoft App ID als aanmaaktype.

  3. Selecteer Beoordelen en maken om de implementatie te valideren en de implementatiedetails te controleren. Selecteer vervolgens Maken.

  4. Haal de bot-app-id op en maak het wachtwoord. Noteer deze waarden die moeten worden gebruikt voor latere configuraties.

Stap 4: Een berichteindpunt voor de bot maken

Azure Bot Service verwacht doorgaans dat de Bot Application Web App Controller een eindpunt blootlegt in de vorm van /api/messages. Het eindpunt verwerkt alle berichten die naar de bot worden verzonden. Maak vervolgens in de botresource een webapp-messagingeindpunt aan:

  1. Ga in Azure Portal naar uw Azure Bot-resource. Selecteer Configuratie in het resourcemenu.

  2. Plak in Configuratie voor het berichteindpunt de hostnaam-URL van de web-app die u in de vorige sectie hebt gekopieerd. Voeg de URL toe met /api/messages.

  3. Selecteer de optie Toepassen.

Schermopname van het maken van een botberichteneindpunt met behulp van de hostnaam van de web-app.

Stap 5: Een Azure Communication Service-resource maken

  1. Selecteer een resource maken in de Azure-portal. Voer in het zoekvak communicatieservices in. Selecteer de tegel Communication Services .

    Schermopname van de tegel Communication Services met de details die u nodig hebt om een Azure Communication Services-resource te maken.

  2. In Een Azure Communication Service maken kunt u het abonnement, de resourcegroep, de naam van de Communication Services-resource en de geografie opgeven die aan de resource is gekoppeld.

  3. Selecteer Beoordelen en maken om de implementatie te valideren en de implementatiedetails te controleren. Klik vervolgens op Maken.

  4. Ga naar de resource. Selecteer Instellingen - Identiteiten en tokens voor gebruikerstoegang>chatten en klik vervolgens op Genereren. Sla het token voor identiteit en gebruikerstoegang op voor toekomstig gebruik.

    Schermopname van het maken van een Communication Services-gebruikers-id en toegangstoken

Stap 6: het Communication Services-chatkanaal inschakelen

Wanneer u beschikt over een Communication Services-resource, kunt u binnen de botresource een Communication Services-kanaal instellen. Met dit proces wordt een gebruikers-id van Bot Azure Communication Services voor de bot gegenereerd.

  1. Ga in Azure Portal naar uw Azure Bot-resource. Selecteer Kanalen in het resourcemenu. Selecteer Communication Services - Chat in de lijst met beschikbare kanalen.

    Schermopname van het openen van het Communication Services Chat-kanaal.

  2. Selecteer Verbinding maken om een lijst weer te geven met Communication Services-resources die beschikbaar zijn in uw abonnement.

    Schermopname van het verbinden van een Communication Service-resource met de bot.

  3. Selecteer in het deelvenster Nieuwe verbinding de Communication Services-chatresource en selecteer vervolgens Toepassen.

    Schermopname van het opslaan van de geselecteerde Communication Service-resource om een nieuwe Communication Services-gebruikers-id te maken.

  4. Wanneer de resourcegegevens worden geverifieerd, wordt een gebruikers-id van Bot Azure Communication Services weergegeven in de kolom Bot Azure Communication Services-id . Sla de id op voor later gebruik.

    Schermopname van de nieuwe Communication Services-gebruikers-id die is toegewezen aan de bot.

Stap 7: De web-app implementeren

  1. Open de ChatBot map in de voorbeeldopslagplaats in Visual Studio Code (VS Code). Zorg ervoor dat u VS Code gebruikt omdat deze ondersteuning biedt voor Microsoft Entra ID in code-implementatie.

  2. Vervang de tijdelijke aanduidingen in de voorbeeldopslagplaats door werkelijke waarden:

    1. Vul in het SemanticKernelService.cs bestand de waarden voor variabelen modelIden endpointapiKey.
    2. Vul in het appsettings.json bestand de waarden in voor de variabelen MicrosoftAppId en MicrosoftAppPassword met de bot app id en de bot password die u hebt vastgelegd in Stap 3.
  3. Installeer de Azure App Service-extensie in VS Code.

    Schermopname van het installeren van de app-service-extensie.

  4. Meld u aan bij uw Azure-account in VS Code. Als u het aanmeldingsvenster wilt openen, klikt u op het Azure-pictogram op de activiteitenbalk aan de zijkant van het venster.

  5. Installeer de Azure App Service-extensie in VS Code.

    Schermopname van het aanmelden bij uw Azure-account in VS Code.

  6. Bouw het project door de volgende opdracht uit te voeren in de hoofdmap van het project ChatBot.

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

Met deze opdracht worden de bin en obj mappen gegenereerd.

  1. Als u de web-app wilt implementeren, klikt u met de rechtermuisknop op de nieuwe /bin/Publish map en selecteert u Implementeren in web-app.

    Schermopname van het kiezen van de map voor implementatie.

  2. Kies de Azure App Service-web-app waarnaar u de toepassing wilt implementeren. Bevestig de uitrol.

    Schermopname van het implementeren van de web-app in Azure.

Stap 8: De demo uitvoeren

  1. Volg de stappen voordat u 'Een chatthreadclient ophalen' in Chat toevoegen aan uw app om een chat-app te maken en een thread te starten.

    Belangrijke opmerkingen:

    • U hebt de Azure Communication Service-resource al in de portal gemaakt, zodat u de <Azure Communication Services endpoint>, <Access_ID>en <Access_Token> in uw code rechtstreeks kunt gebruiken.
    • Wanneer u een thread maakt, moet u een ander ChatParticipant-object creëren, waarbij u het in Bot Azure Communication Services User ID gecreëerde -object gebruikt als <Access_ID> om de botgebruiker te vertegenwoordigen.
    • Sla het Thread Id bestand op voor later gebruik.
  2. Open de samengestelde UI-bibliotheek: Azure Communication Services Chat-thread gebruikersinterface - Deelnemen aan bestaande chat-thread.

  3. Geef de vereiste informatie op om deel te nemen aan een bestaande chat-thread.

    • Weergavenaam: U kunt de gewenste naam kiezen.
    • Gebruikers-id voor gebruiker: de <Access_ID> opgeslagen in stap 8.1.
    • Geldig token voor gebruiker: het <Access_Token> opgeslagen in stap 8.1.
    • Azure Communication Services-eindpunt: het <Azure Communication Services endpoint> eindpunt dat is opgeslagen in stap 8.1.
    • Bestaande thread: de Thread Id thread die is opgeslagen in stap 8.1.
  4. Stel de volgende vragen op volgorde:

    • Vragen 1: Mijn gebruikers-id is 110. Ik heb een paar dagen geleden een laptop gekocht. Kunt u helpen om de levering bij te houden?
    • Vraag 2: Ik heb een terugzending aangevraagd voor mijn Power Bank. Zijn er updates?
    • Vraag 3: Ik heb Bluetooth Earphones 2 dagen geleden gekocht, maar ze zijn nog niet verzonden. Waarom?

OpenAI haalt de gegevens op die relevant zijn voor de semantiek van de vraag en geeft een antwoord op basis van beschikbare gegevens.

Handelsmerken

Dit project kan handelsmerken of logo's bevatten voor projecten, producten of services. Geautoriseerd gebruik van Microsoft-handelsmerken of logo's is onderhevig aan en moet voldoen aan de merkrichtlijnen van Microsoft.

Het gebruik van Microsoft-handelsmerken of logo's in gewijzigde versies van dit project mag geen verwarring veroorzaken of Microsoft Sponsorship impliceren.

Elk gebruik van handelsmerken of logo's van derden is onderhevig aan het beleid van deze derde partij.