Condividi tramite


Integrare un bot OpenAI con chat

Questo articolo illustra come integrare un bot OpenAI conversazionale con una chat di Servizi di comunicazione di Azure. Il bot di chat OpenAI usa Microsoft Bot Framework integrato con il kernel semantico. Il bot OpenAI recupera e riepiloga le risposte da una knowledge base interna per rispondere alle domande dell'utente in linguaggio naturale.

Diagramma dell'architettura OpenAI di Azure.

Passaggio 1: Distribuire un modello di base con Azure AI Foundry

  1. Nel portale di Azure AI Foundry seguire l'articolo Creare un progetto per creare un nuovo progetto. Quando richiesto, creare un nuovo hub e accettare tutte le impostazioni predefinite.

  2. Aprire il progetto, passare a Funzionalità incluse, selezionare Servizio OpenAI di Azure e salvare sia la chiave API che l'URL dell'endpoint di servizio.

    Screenshot che mostra la pagina di panoramica del portale di Azure AI Foundry.

  3. Nel menu a sinistra passare a Risorse personali → Modelli e endpoint. Fare quindi clic su + Distribuisci modello e scegliere Distribuisci modello di base.

    Screenshot della pagina Gestisci distribuzioni dei modelli e dei servizi che mostra la voce di menu Distribuisci modello di base selezionata.

  4. Selezionare gpt-4o e fare clic su Conferma.

    Screenshot della finestra di dialogo Seleziona un modello che mostra l'opzione gpt-4o selezionata.

  5. Immettere un nome di distribuzione preferito, quindi fare clic su Connetti e distribuisci.

    Screenshot della finestra di dialogo Distribuisci gpt-4o che mostra gpt-4o come nome della distribuzione.

  6. Al termine della distribuzione, tornare a Modelli e endpoint per verificare che il modello sia in esecuzione. In questo esempio il modello distribuito è gpt-4o.

    Screenshot dell'asset Modelli ed endpoint che mostra GPT-4o come modello implementato e le informazioni correlate sulla distribuzione.

Passaggio 2: Creare una risorsa dell'app Web

  1. Nel portale di Azure selezionare Crea una risorsa. Nella casella di ricerca, immettere App Web. Selezionare il riquadro App Web.

    Screenshot che mostra la creazione di una risorsa dell'app Web nel portale di Azure.

  2. In Crea app Web, selezionare o immettere i dettagli per l'app, inclusa l'area in cui si vuole implementare l'app.

    Screenshot della pagina Crea app Web che mostra i dettagli del progetto e i dettagli dell'istanza selezionati per creare una distribuzione di app Web.

  3. Selezionare Rivedi e crea per convalidare la distribuzione ed esaminare i dettagli della distribuzione. Quindi, selezionare Crea.

  4. Al momento della creazione della risorsa dell'app Web, copiare l'URL del nome host visualizzato nei dettagli della risorsa. L'URL fa parte dell'endpoint creato per l'app Web.

    Screenshot della pagina My-First-Bot-WebApp che mostra l'URL dell'endpoint dell'app Web da copiare per un uso futuro.

Passaggio 3: Creare una risorsa del servizio Azure Bot

  1. Nel portale di Azure selezionare Crea una risorsa. Nella casella di ricerca immettere bot. Selezionare il riquadro Azure Bot .

    Screenshot del riquadro azure bot che mostra i dettagli necessari per creare un servizio Azure Bot.

  2. In Crea un'istanza di Azure Bot, seleziona Multi Tenant come Tipo di app e Crea nuovo ID app Microsoft come Tipo di creazione.

  3. Selezionare Rivedi e crea per convalidare la distribuzione ed esaminare i dettagli della distribuzione. Quindi, selezionare Crea.

  4. Ottenere l'ID app bot e creare la password. Registrare questi valori da usare per le configurazioni successive.

Passaggio 4: Creare un endpoint di messaggistica per il bot

Il servizio Azure Bot prevede in genere che il Bot Application Web App Controller esponga un endpoint nel formato /api/messages. L'endpoint gestisce tutti i messaggi inviati al bot. Successivamente, nella risorsa del bot, creare un endpoint di messaggistica web app:

  1. Nel portale di Azure passare alla risorsa di Azure Bot. Scegliere Configurazione dal menu della risorsa.

  2. In Configurazione, nell'endpoint di messaggistica, incolla l'URL del nome host dell'app Web copiato nella sezione precedente. Aggiungere l'URL con /api/messages.

  3. Selezionare Applica.

Screenshot che mostra come creare un endpoint di messaggistica bot usando il nome host dell'app Web.

Passaggio 5: Creare una risorsa del servizio di comunicazione di Azure

  1. Nel portale di Azure selezionare Crea una risorsa. Nella casella di ricerca immettere servizi di comunicazione. Selezionare il riquadro Servizi di comunicazione .

    Screenshot del riquadro Servizi di comunicazione che mostra i dettagli necessari per creare una risorsa di Servizi di comunicazione di Azure.

  2. In Creare un servizio di comunicazione di Azure è possibile specificare la sottoscrizione, il gruppo di risorse, il nome della risorsa servizi di comunicazione e l'area geografica associata alla risorsa.

  3. Selezionare Rivedi e crea per convalidare la distribuzione ed esaminare i dettagli della distribuzione. Successivamente, seleziona Crea.

  4. Passare alla risorsa. Selezionare Impostazioni - Identità e Token> di accesso utenteChat, quindi fare clic su Genera. Salvare l'identità e il token di accesso utente per un uso futuro.

    Screenshot che mostra come creare un ID utente e un token di accesso di Servizi di comunicazione

Passaggio 6: Abilitare il canale chat di Servizi di comunicazione

Quando si dispone di una risorsa di Servizi di comunicazione, è possibile configurare un canale di Servizi di comunicazione nella risorsa bot. Questo processo genera un ID utente di Servizi di comunicazione di Azure bot per il bot.

  1. Nel portale di Azure, passare alla risorsa Azure Bot. Nel menu della risorsa selezionare Canali. Nell'elenco dei canali disponibili selezionare Servizi di comunicazione - Chat.

    Screenshot che mostra l'apertura del canale chat dei Servizi di Comunicazione.

  2. Selezionare Connetti per visualizzare un elenco di risorse di Servizi di comunicazione disponibili nella sottoscrizione.

    Screenshot che mostra come connettere una risorsa del servizio di comunicazione al bot.

  3. Nel riquadro Nuova connessione selezionare la risorsa chat di Servizi di comunicazione e quindi selezionare Applica.

    Screenshot che mostra come salvare la risorsa servizio di comunicazione selezionata per creare un nuovo ID utente di Servizi di comunicazione.

  4. Quando vengono verificati i dettagli della risorsa, nella colonna Bot Azure Communication Services ID viene visualizzato un ID utente Bot di Servizi di Comunicazione di Azure. Salvare l'ID per usarlo in un secondo momento.

    Screenshot che mostra il nuovo ID utente di Servizi di comunicazione assegnato al bot.

Passaggio 7: Distribuire l'app Web

  1. Apri la cartella ChatBot nel Sample Repo in Visual Studio Code (VS Code). Assicurarsi di usare VS Code perché supporta Microsoft Entra ID nella distribuzione del codice.

  2. Sostituire i segnaposto nel repository di esempio con i valori effettivi:

    1. Nel file SemanticKernelService.cs, popolare i valori per le variabili modelId, endpoint, e apiKey.
    2. Nel file appsettings.json, inserire i valori per le variabili MicrosoftAppId e MicrosoftAppPassword usando il bot app id e il bot password registrati nel Passaggio 3.
  3. Installare l'estensione "Azure App Service" in "VS Code".

    Screenshot che mostra come installare l'estensione del servizio app.

  4. Accedi al tuo account Azure in VS Code. Per accedere al pannello di accesso, fare clic sull'icona di Azure sulla barra delle attività sul lato della finestra.

  5. Installare l'estensione "Azure App Service" in "VS Code".

    Screenshot che mostra come accedere all'account Azure in VS Code.

  6. Compilare il progetto eseguendo il comando seguente nella directory radice del progetto 'ChatBot'.

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

Questo comando genera le bin cartelle e obj .

  1. Per distribuire l'app Web, fare clic con il pulsante destro del mouse sulla nuova /bin/Publish cartella e scegliere Distribuisci nell'app Web.

    Screenshot che mostra come scegliere la cartella per la distribuzione.

  2. Scegliere l'app Web del servizio app di Azure in cui si vuole distribuire l'applicazione. Confermare la distribuzione.

    Screenshot che mostra come distribuire l'app Web in Azure.

Passaggio 8: Eseguire la demo

  1. Seguire i passaggi nella sezione Aggiungere chat all'app prima di "Ottenere un client di thread di chat" per creare un'app di chat e avviare un thread.

    Note chiave:

    • La risorsa del servizio di comunicazione di Azure è già stata creata nel portale, quindi è possibile usare direttamente <Azure Communication Services endpoint>, <Access_ID> e <Access_Token> nel codice.
    • Quando si crea un thread, è necessario creare un altro ChatParticipant oggetto usando il Bot Azure Communication Services User ID creato nel passaggio 6: Abilitare il canale chat di Servizi di comunicazione per rappresentare l'utente del bot.
    • Salva Thread Id per usarlo in un secondo momento.
  2. Apri la libreria UI composita: Azure Communication Services Chat Thread UI - Unisciti a un thread di chat esistente.

  3. Specificare le informazioni necessarie per l'aggiunta a un thread di chat esistente.

    • Nome visualizzato: è possibile scegliere quello preferito.
    • Identificatore utente per l'utente: il <Access_ID> salvato nel passaggio 8.1.
    • Token valido per l'utente: il <Access_Token> salvato nel passaggio 8.1.
    • L'endpoint dei Servizi di comunicazione di Azure: il <Azure Communication Services endpoint> salvato nel passaggio 8.1.
    • Thread esistente: il Thread Id salvato nel passaggio 8.1.
  4. Porre le domande seguenti in sequenza:

    • Domande 1: L'ID utente è 110. Ho comprato un portatile diversi giorni fa. Potresti aiutare a tenere traccia della consegna?
    • Domanda 2: Ho richiesto una restituzione per la mia Power Bank. Eventuali aggiornamenti?
    • Domanda 3: Ho comprato auricolari Bluetooth 2 giorni fa, ma non sono stati ancora spediti. Perché?

OpenAI recupera i dati rilevanti per la semantica della domanda e fornisce una risposta in base ai dati disponibili.

Marchi

Questo progetto può contenere marchi o logo per progetti, prodotti o servizi. L'uso autorizzato di marchi o loghi Microsoft è soggetto a e deve attenersi alle Linee guida per i marchi commerciali e i marchi Microsoft.

L'uso di marchi o loghi Microsoft nelle versioni modificate di questo progetto non deve causare confusione o implicare la sponsorizzazione di Microsoft.

Qualsiasi utilizzo di marchi o loghi di terzi è soggetto alle politiche di tali terzi.