Usare QnA Maker per rispondere alle domande

SI APPLICA A: SDK v4

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 del linguaggio di intelligenza artificiale di Azure.

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.

QnA Maker fornisce un livello di domande e risposte conversazionali sui dati. Il bot può quindi inviare una domanda a QnA Maker e ricevere una risposta senza che sia necessario analizzare e interpretare la finalità della domanda.

Uno dei requisiti di base nella creazione di un servizio QnA Maker personalizzato è popolarlo con domande e risposte. In molti casi, le domande e le risposte esistono già in contenuti come domande frequenti o altra documentazione; altre volte è consigliabile personalizzarle in modo più naturale e conversazionale.

Questo articolo descrive come usare una knowledge base di QnA Maker esistente dal bot.

Per i nuovi bot, è consigliabile usare la funzionalità di risposta alle domande di Servizi cognitivi di Azure per il linguaggio. Per informazioni, vedere Usare la risposta alle domande per rispondere alle domande.

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, prendere in considerazione l'uso di Power Virtual Agents e leggere la scelta della soluzione chatbot appropriata.

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

Prerequisiti

Informazioni sull'esempio

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

Per lo sviluppo di nuovi bot, è consigliabile usare Power Virtual Agents. Se è necessario creare una nuova knowledge base per un bot di Bot Framework SDK, vedere gli articoli seguenti sui servizi di intelligenza artificiale di Azure:

Flusso di logica QnABot C#

Per ogni input utente ricevuto, viene effettuata una chiamata a OnMessageActivityAsync, Quando viene chiamato, accede alle impostazioni di configurazione dal file di appsetting.json del codice di esempio per trovare il valore da connettere alla knowledge base di QnA Maker preconfigurato.

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

Ottenere valori per connettere il bot alla knowledge base

Suggerimento

La documentazione di QnA Maker contiene istruzioni su come creare, eseguire il training e pubblicare la knowledge base.

  1. Nel sito di QnA Maker selezionare la knowledge base.
  2. Con la knowledge base aperta, selezionare la scheda edizione Standard TTINGS. Registrare il valore visualizzato per il nome del servizio. Questo valore è utile per trovare la knowledge base di interesse quando si usa l'interfaccia del portale di QnA Maker. Non viene usato per connettere l'app bot a questa Knowledge Base.
  3. Scorrere verso il basso per trovare i dettagli della distribuzione e registrare i valori seguenti dalla richiesta HTTP di esempio Postman:
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Host: <your-host-url>
    • Autorizzazione: EndpointKey <your-endpoint-key>

L'URL dell'host inizierà con https:// e terminerà con /qnamaker, ad esempio https://<hostname>.azure.net/qnamaker. Il bot richiede l'ID della knowledge base, l'URL host e la chiave dell'endpoint per connettersi alla knowledge base di QnA Maker.

Aggiornare il file di impostazioni

Aggiungere prima di tutto le informazioni necessarie per accedere alla Knowledge Base, inclusi il nome host, la chiave dell'endpoint e l'ID knowledge base (kbId) al file di impostazioni. Questi sono i valori salvati dalla scheda edizione Standard TTINGS della knowledge base in QnA Maker.

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

Nota

Per aggiungere una knowledge base di QnA Maker in un'applicazione bot esistente, assicurarsi di aggiungere titoli informativi per le voci di QnA. Il valore "name" all'interno di questa sezione fornisce la chiave necessaria per accedere a queste informazioni dall'app.

appsettings.json

C# (archiviato)

Configurare l'istanza di QnA Maker

Creare prima di tutto un oggetto per accedere alla knowledge base QnA Maker.

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

Nel metodo QnABot.cs creare un'istanza OnMessageActivityAsync di QnAMaker. La QnABot classe è anche la posizione in cui vengono estratti i nomi delle informazioni di connessione, salvate in appsettings.json precedente. Se nel file di impostazioni sono stati scelti nomi diversi per le informazioni di connessione della Knowledge Base, assicurarsi di aggiornare i nomi qui in modo da riflettere il nome scelto.

Bots/QnABot.cs

C# (archiviato)

Chiamata di QnA Maker dal bot

Quando il bot necessita di una risposta da QnAMaker, chiamare il GetAnswersAsync metodo dal codice del bot per ottenere la risposta appropriata in base al contesto corrente. Se si accede alla knowledge base, modificare il messaggio non trovato di seguito per fornire istruzioni utili per gli utenti.

Bots/QnABot.cs

C# (archiviato)

Test del bot

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

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

Bot di esempio di test.

Informazioni aggiuntive

L'esempio a più turni di QnA Maker (esempio a più turni C# (archiviato), esempio a più turni Java (archiviato) , esempio a più turni Java (archiviato) , python multi-turn sample (archiviato)) mostra come usare una finestra di dialogo QnA Maker per supportare le funzionalità di completamento e apprendimento attivo di QnA Maker.

  • QnA Maker supporta i prompt di completamento, noti anche come richieste a più turni. Se la knowledge base di QnA Maker richiede altre informazioni dall'utente, QnA Maker invia informazioni di contesto che è possibile usare per richiedere all'utente. Queste informazioni vengono usate anche per effettuare eventuali chiamate di completamento al servizio QnA Maker. Nella versione 4.6 Bot Framework SDK ha aggiunto il supporto per questa funzionalità.

    Per costruire una tale knowledge base, vedere la documentazione di QnA Maker su come usare i prompt di completamento per creare più turni di una conversazione.

  • QnA Maker supporta anche suggerimenti di apprendimento attivo, consentendo alla knowledge base di migliorare nel tempo. Il dialogo QnA Maker supporta il feedback esplicito per la funzionalità di apprendimento attivo.

    Per abilitare questa funzionalità in una knowledge base, vedere la documentazione di QnA Maker su Suggerimenti per l'apprendimento attivo.

Passaggi successivi

QnA Maker può essere combinato con altri servizi di Intelligenza artificiale di Azure per rendere il bot ancora più potente. Bot Framework Orchestrator consente di combinare QnA con Language Understanding (LUIS) nel bot.