Usare la risposta alle domande per rispondere alle domande

SI APPLICA A: SDK v4

La funzionalità di risposta alle domande di Servizi cognitivi di Azure per il linguaggio fornisce l'elaborazione del linguaggio naturale (NLP) basata sul cloud che consente di creare un livello di conversazione naturale sui dati. Consente di trovare la risposta più appropriata per qualsiasi tipo di input da una knowledge base personalizzata di informazioni.

Questo articolo descrive come usare la funzionalità di risposta alle domande nel bot.

Prerequisiti

  • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Una risorsa di linguaggio in Language Studio, con la funzionalità di risposta alle domande personalizzata abilitata.
  • Copia dell'esempio di risposte alle domande personalizzate in C# o JavaScript.

Informazioni sull'esempio

Per usare la risposta alle domande nel bot, è necessaria una knowledge base esistente. Il bot potrà quindi usare la knowledge base per rispondere alle domande dell'utente.

Se è necessario creare una nuova knowledge base per un bot di Bot Framework SDK, vedere l'esempio README per l'esempio di risposte alle domande personalizzate.

C# question answering bot logic flow.

Per ogni input utente ricevuto, viene effettuata una chiamata a OnMessageActivityAsync, Quando viene chiamato, accede alle impostazioni di configurazione dal file appsetting.json del codice di esempio e si connette alla knowledge base.

L'input dell'utente viene inviato alla knowledge base e viene visualizzata la risposta migliore restituita.

Ottenere le impostazioni di connessione della Knowledge Base

  1. In Language Studio aprire la risorsa della lingua.

  2. Copiare le informazioni seguenti nel file di configurazione del bot:

    • Nome host per l'endpoint della lingua.
    • , Ocp-Apim-Subscription-Keyche è la chiave dell'endpoint.
    • Nome del progetto, che funge da ID knowledge base.

Il nome host è la parte dell'URL dell'endpoint tra https:// e /language, ad esempio . https://<hostname>/language Il bot richiede il nome del progetto, l'URL host e la chiave dell'endpoint per connettersi alla knowledge base.

Suggerimento

Se non si distribuisce questa opzione per la produzione, è possibile lasciare vuoti i campi ID app e password del bot.

Configurare e chiamare il client della Knowledge Base

Creare il client della Knowledge Base, quindi usare il client per recuperare le risposte dalla Knowledge Base.

Assicurarsi che per il progetto sia installato il pacchetto NuGet Microsoft.Bot.Builder.AI.QnA.

Nel metodo QnABot.csOnMessageActivityAsync creare un client della Knowledge Base. Usare il contesto dei turni per eseguire una query sulla Knowledge Base.

Bots/CustomQABot.cs

using var httpClient = _httpClientFactory.CreateClient();

var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);

// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);

Test del bot

Eseguire l'esempio in locale nel computer. Se non è già stato fatto, installare Bot Framework Emulator. Per altre istruzioni, vedere l'esempio README (C# o JavaScript).

Avviare l'emulatore, connettersi al bot e inviare messaggi al bot. Le risposte alle domande variano in base alle informazioni della knowledge base.

Informazioni aggiuntive

L'esempio di domande personalizzate, tutte le funzionalità (C# o JavaScript) illustrano come usare una finestra di dialogo QnA Maker per supportare le funzionalità di completamento e apprendimento attivo di una Knowledge Base.

  • La risposta alle domande supporta le richieste di completamento, note anche come prompt a più turni. Se la Knowledge Base richiede altre informazioni dall'utente, il servizio invia informazioni di contesto che è possibile usare per richiedere all'utente. Queste informazioni vengono usate anche per effettuare qualsiasi chiamata di completamento al servizio.
  • La risposta alle domande supporta anche i suggerimenti di apprendimento attivi, consentendo alla knowledge base di migliorare nel tempo. Il dialogo QnA Maker supporta il feedback esplicito per la funzionalità di apprendimento attivo.