Testare ed eseguire il debug con l'emulatore

SI APPLICA A: SDK v4

Bot Framework Emulator è un'applicazione desktop che consente agli sviluppatori di bot di testare ed eseguire il debug di bot, in locale o in remoto. Usando l'emulatore, è possibile comunicare via chat con il bot e controllare i messaggi che il bot invia e riceve. L'emulatore visualizza i messaggi proprio come nell'interfaccia utente di una chat Web e registra le richieste e le risposte JSON mentre l'utente scambia messaggi con il bot. Prima di distribuire il bot nel cloud, eseguirlo in locale e testarlo usando l'emulatore. È possibile testare il bot usando l'emulatore anche se non è ancora stato creato con Azure AI servizio Bot o configurato per l'esecuzione in qualsiasi canale.

Nota

Gli SDK JavaScript, C# e Python di Bot Framework continueranno a essere supportati, ma Java SDK verrà ritirato con il supporto finale a lungo termine che termina a novembre 2023.

I bot esistenti creati con Java SDK continueranno a funzionare.

Per la creazione di nuovi bot, è consigliabile usare Microsoft Copilot Studio e leggere le informazioni sulla scelta della soluzione copilota appropriata.

Per altre informazioni, vedere Il futuro della compilazione di bot.

Prerequisiti

Eseguire un bot in locale

Prima di connettere il bot a Bot Framework Emulator, è necessario eseguire il bot localmente. È possibile usare Visual Studio o Visual Studio Code per eseguire il bot oppure usare la riga di comando. Per eseguire un bot dalla riga di comando, attenersi a questa procedura:

  • Andare al prompt dei comandi e passare alla directory del progetto bot.

  • Avviare il bot eseguendo il comando seguente:

    dotnet run
    
  • Copiare il numero di porta nella riga prima dell'avvio dell'applicazione. Premere CTRL+C per arrestare.

    Numero di porta C#

A questo punto, il bot deve essere in esecuzione in locale.

Connettersi a un bot in esecuzione in localhost

Configurare le impostazioni proxy

Quando si sviluppa dietro un proxy aziendale, l'emulatore userà le variabili HTTP_PROXY di ambiente configurate e HTTPS_PROXY, che specificano rispettivamente la route dell'URL proxy per le richieste HTTP e HTTP.

Se ci si connette a un bot in esecuzione in localhost, l'emulatore tenterà prima di eseguire il routing tramite il proxy prima di connettersi a localhost. In genere, il proxy bloccherà la connessione a meno che non si specifichi che deve essere ignorata per localhost.

Per ignorare le HTTP_PROXY impostazioni e HTTPS_PROXY e consentire all'emulatore di connettersi a localhost, nel computer locale è necessario definire la variabile di ambiente seguente:

NO_PROXY=localhost

Configurare l'emulatore per l'autenticazione

Se un bot richiede l'autenticazione, visualizzando una finestra di dialogo di accesso, è necessario configurare l'emulatore come illustrato di seguito.

Uso di un codice di verifica dell'accesso

  1. Avviare l'emulatore.
  2. Nell'emulatore selezionare Impostazioni (icona a forma di ingranaggio) nel riquadro sinistro.
  3. Abilitare Usare un codice di verifica di accesso per OAuthCards.
  4. Seleziona Salva.

Quando si seleziona il pulsante di accesso visualizzato dal bot, verrà generato un codice di convalida. Il codice verrà immesso nella casella di chat di input del bot per l'autenticazione da eseguire. Successivamente, sarà possibile eseguire le operazioni consentite.

In alternativa, è possibile eseguire i passaggi descritti di seguito.

Uso dei token di autenticazione

  1. Avviare l'emulatore.
  2. Nell'emulatore selezionare Impostazioni (icona a forma di ingranaggio) nel riquadro sinistro.
  3. Abilitare Usa token di autenticazione versione 1.0.
  4. Seleziona Salva.

Quando si seleziona il pulsante di accesso visualizzato dal bot, verrà chiesto di immettere le credenziali. Viene generato un token di autenticazione. Successivamente, sarà possibile eseguire le operazioni consentite.

Finestra di avvio dell'emulatore

Per connettersi a un bot in esecuzione in locale, selezionare Apri bot. Aggiungere il numero di porta copiato in precedenza nell'URL seguente e incollare l'URL aggiornato nella barra dell'URL del bot:

http://localhost:<port number>/api/messages

Finestra di dialogo open-a-bot dell'emulatore

Se il bot viene eseguito con le credenziali dell'account Microsoft, immettere anche queste credenziali.

Usare le credenziali relative al bot

Quando si apre il bot, impostare l'ID dell'app Microsoft e la password dell'app Microsoft se il bot è in esecuzione con le credenziali. Se il bot è stato creato con l'servizio Bot di intelligenza artificiale di Azure, le credenziali sono disponibili nella servizio app del bot, nella sezione Impostazioni -> Configurazione. Se non si conoscono i valori, è possibile rimuoverli dal file di configurazione del bot in esecuzione in locale, quindi eseguire il bot nell'emulatore. Se il bot non è in esecuzione con queste impostazioni, non è necessario eseguire l'emulatore con le impostazioni.

Quando si crea un'applicazione del provider di identità AD, tenere presente quanto segue:

  • Quando il tipo di account supportato è impostato su tenant singolo, se si usa una sottoscrizione personale anziché un account Microsoft, l'emulatore genera l'errore: l'ID app Microsoft o la password dell'app Microsoft del bot non è corretta.
  • In questo caso, i tipi di account supportati devono essere impostati su Account in qualsiasi directory organizzativa (qualsiasi directory ID Microsoft Entra - Multi-tenant) e account Microsoft personali (ad esempio Xbox).

Per altre informazioni, vedere Creare un'applicazione del provider di identità Microsoft Entra ID e Registrare una nuova applicazione usando il portale di Azure.

Visualizzare le attività dettagliate dei messaggi con il controllo

Inviare un messaggio al bot, che dovrebbe rispondere. È possibile selezionare la finestra informativa del messaggio all'interno della finestra di conversazione e controllare l'attività JSON non elaborata usando la funzionalità INSPECTOR a destra della finestra. Se selezionata, la finestra informativa del messaggio diventerà gialla e l'oggetto dell'attività JSON verrà visualizzato a sinistra della finestra della chat. Le informazioni JSON includono i metadati della chiave, tra cui channelID, tipo di attività, ID conversazione, messaggio di testo, URL dell'endpoint e così via. È possibile esaminare le attività inviate dall'utente e le attività con cui il bot risponde.

JSON dell'attività del messaggio dell'emulatore

Suggerimento

È possibile eseguire il debug delle modifiche di stato in un bot connesso a un canale aggiungendo il middleware di ispezione al bot.

Ispezionare i servizi

Nota

Azure AI QnA Maker verrà ritirato il 31 marzo 2025. A partire dal 1° ottobre 2022, non potrai creare nuove risorse o Knowledge Base di QnA Maker. Una versione più recente della funzionalità di domande e risposte è ora disponibile come parte di Lingua di Azure AI.

La risposta alle domande personalizzate, una funzionalità del linguaggio di intelligenza artificiale di Azure, è la versione aggiornata del servizio QnA Maker. Per altre informazioni sul supporto di domande e risposte in Bot Framework SDK, vedere Comprensione del linguaggio naturale.

Nota

Language Understanding (LUIS) verrà ritirato il 1° ottobre 2025. A partire dal 1° aprile 2023, non sarà possibile creare nuove risorse LUIS. Una versione più recente di Language Understanding è ora disponibile come parte del linguaggio di intelligenza artificiale di Azure.

CLU (Conversational Language Understanding), una funzionalità del linguaggio di intelligenza artificiale di Azure, è la versione aggiornata di LUIS. Per altre informazioni sul supporto per la comprensione del linguaggio in Bot Framework SDK, vedere Comprensione del linguaggio naturale.

Con l'emulatore è anche possibile esaminare le risposte JSON di LUIS e QnA Maker. Usando un bot con un servizio di linguaggio connesso, è possibile selezionare la traccia nella finestra del LOG in basso a destra. Questo nuovo strumento fornisce anche funzionalità per aggiornare i servizi linguistici direttamente dall'emulatore.

Controllo di LUIS

Con un servizio LUIS connesso, il collegamento di traccia specifica Luis Trace. Se selezionata, viene visualizzata la risposta non elaborata dal servizio LUIS, che include finalità ed entità, insieme ai punteggi specificati. È possibile riassegnare le finalità per le espressioni utente.

Controllo QnA

Con un servizio QnA Maker connesso, il log visualizzerà la traccia QnA. Se selezionata, è possibile visualizzare in anteprima la coppia di domande e risposte associata a tale attività, insieme a un punteggio di attendibilità. A questo punto, è possibile formulare una nuova domanda alternativa per una risposta.

Accedere ad Azure

È possibile usare l'emulatore per accedere all'account Azure. Ciò è utile per aggiungere e gestire i servizi da cui dipende il bot. Per accedere:

  1. Selezionare File e quindi Accedi con Azure.

    Accesso dell'emulatore con Azure

  2. Nella schermata iniziale selezionare Accedi con l'account Azure. Facoltativamente, è possibile mantenere l'accesso dell'emulatore tra i riavvii dell'applicazione emulatore.

    Emulatore Azure sign-in success (Esito positivo dell'accesso ad Azure per l'emulatore

Disabilitazione della raccolta dati

Se si decide che non si vuole più consentire all'emulatore di raccogliere i dati di utilizzo, è possibile disabilitare facilmente la raccolta dei dati seguendo questi passaggi:

  1. Nell'emulatore selezionare Impostazioni (icona a forma di ingranaggio) nel riquadro sinistro.

    Pulsante Impostazioni emulatore

  2. In Raccolta dati deselezionare La Guida per migliorare l'emulatore consentendo di raccogliere i dati di utilizzo.

  3. Seleziona Salva.

Se si cambia idea, sarà possibile riabilitare la raccolta dei dati in un secondo momento.

Risorse aggiuntive

Bot Framework Emulator è un software open source. È possibile contribuire al suo sviluppo e segnalare bug e suggerimenti.

Per la risoluzione dei problemi, vedere Risolvere i problemi generali e gli altri articoli sulla risoluzione dei problemi in tale sezione.

Passaggio successivo

Usare il middleware di ispezione per eseguire il debug di un bot connesso a un canale.