Usare i prompt di completamento per creare più turni di una conversazione

Usare le richieste di completamento e il contesto per gestire più turni, noti come conversazione a più turni, per il bot da una domanda a un'altra.

Per informazioni sul funzionamento delle conversazioni a più turni, vedere il video dimostrativo seguente:

Conversazioni a più turni in QnA Maker

Nota

Il servizio QnA Maker sarà ritirato il 31 marzo 2025. Una versione più recente della funzionalità di domande e risposte è ora disponibile come parte di Lingua di Azure AI. Per le funzionalità di risposta alla domanda all'interno del servizio di linguaggio vedere Risposta alla domanda. A partire dal 1° ottobre 2022 non è più possibile creare nuove risorse di QnA Maker. Per informazioni sulla migrazione delle knowledge base di QnA Maker esistenti alla risposta alla domanda, vedere la guida alla migrazione.

Che cos'è una conversazione a più turni?

Alcune domande non possono essere risposte in un unico turno. Quando si progettano le conversazioni dell'applicazione client (chatbot), occorre considerare il caso di un utente che pone una domanda che deve essere filtrata o perfezionata per determinare la risposta corretta. A questo scopo si crea un flusso di domande possibili presentando all'utente richieste di completamento.

Quando un utente pone una domanda, QnA Maker restituisce la risposta ed eventuali richieste di completamento. Questa risposta consente di presentare le domande di completamento come scelte.

Attenzione

Le richieste a più turni non vengono estratte dai documenti delle domande frequenti. Se è necessaria l'estrazione a più turni, rimuovere i punti interrogativi che designano le coppie di domanda e risposta come domande frequenti.

Esempio di conversazione a più turni con chatbot

Con una conversazione a più turni, un chatbot gestisce una conversazione con un utente per determinare la risposta finale, come illustrato nell'immagine seguente:

Finestra di dialogo a più turni con prompt che guidano un utente attraverso una conversazione

Nell'immagine precedente, un utente ha avviato una conversazione immettendo My account. La knowledge base include tre coppie di domande e risposte collegate. Per perfezionare la risposta, l'utente seleziona una delle tre scelte disponibili nella knowledge base. La domanda (1) include tre richiede di completamento, che vengono presentate nel chatbot come tre opzioni (2).

Quando l'utente seleziona un'opzione (3), viene visualizzato l'elenco successivo di opzioni di perfezionamento (4). Questa sequenza continua (5) fino a quando l'utente non determina la risposta finale corretta (6).

Usare un bot a più turni

Dopo aver pubblicato la knowledge base, è possibile selezionare il pulsante Crea bot per distribuire il bot di QnA Maker nel Servizio di Azure AI Bot. Le richieste verranno visualizzate nei client di chat abilitati per il bot.

Creare una conversazione a più turni dalla struttura di un documento

Quando si crea una knowledge base, nella sezione Popola knowledge base viene visualizzata una casella di controllo Abilita estrazione a più turni da URL e file PDF o DOCX.

Casella di controllo per l'abilitazione dell'estrazione a più turni

Quando si seleziona questa opzione, QnA Maker estrae la gerarchia presente nella struttura del documento. La gerarchia viene convertita in richieste di completamento e la radice della gerarchia funge da domande e risposta padre. In alcuni documenti la radice della gerarchia non dispone di contenuto, che potrebbe fungere da risposta. È possibile specificare il testo di risposta predefinito da usare come testo di risposta sostitutivo per estrarre tali gerarchie.

La struttura a più turni può essere dedotta solo da URL, file PDF o file DOCX. Per un esempio di struttura, visualizzare un'immagine di un file PDF del manuale dell'utente di Microsoft Surface.

Screenshot che mostra un esempio della struttura in un manuale dell'utente.

Creazione di un documento a più turni

Per la creazione di un documento a più turni, tenere presenti le linee guida seguenti:

  • Usare titoli e sottotitoli per contrassegnare la gerarchia. Ad esempio, usare h1 per indicare la domanda e risposta padre e h2 per indicare la domanda e risposta che deve essere impiegata come richiesta. Usare dimensioni di titoli ridotte per indicare la gerarchia successiva. Non usare stili, colori o altri meccanismi per definire implicitamente la struttura nel documento. In questo caso, QnA Maker non potrà estrarre le richieste a più turni.

  • Il primo carattere dell'intestazione deve essere maiuscolo.

  • Non terminare un titolo con un punto interrogativo, ?.

  • È possibile usare il documento di esempio per creare un documento a più turni.

Aggiunta di file a un knowledge base a più turni

Quando si aggiunge un documento gerarchico, QnA Maker determina le richieste di completamento dalla struttura per creare il flusso di conversazione.

  1. In QnA Maker selezionare una knowledge base esistente creata con l'opzione Abilita estrazione a più turni da URL e file PDF o DOCX abilitata.
  2. Passare alla pagina Impostazioni e selezionare il file o l'URL da aggiungere.
  3. Salvare ed eseguire il training della knowledge base.

Attenzione

Non è supportato l'uso di un file della knowledge base a più turni TSV o XLS esportato come origine dati per una knowledge base nuova o vuota. È necessario importare tale tipo di file, dalla pagina Impostazioni del portale di QnA Maker per aggiungere richieste a più turni esportate a una knowledge base.

Creare una knowledge base con richieste a più turni con l'API Create

È possibile creare una knowledge base con richieste a più turni con l'API Create di QnA Maker. Le richieste vengono aggiunte nella matrice di prompts della proprietà context.

Mostrare domande e risposte con il contesto

Ridurre le coppie di domande e risposte visualizzate solo a quelle con conversazioni contestuali.

Selezionare Opzioni di visualizzazione e quindi Mostra contesto. Nell'elenco vengono visualizzate coppie di domande e risposte che contengono richieste di completamento.

Filtrare le coppie di domande e risposte in base alle conversazioni contestuali

Il contesto a più turni viene visualizzato nella prima colonna.

Screenshot che mostra la sezione Contesto evidenziata.

Nell'immagine precedente 1 indica il testo in grassetto nella colonna, che indica la domanda corrente. La domanda padre è il primo elemento nella riga. Eventuali domande successive sono le coppie di domande e risposte collegate. Questi elementi sono selezionabili, in modo che sia possibile passare immediatamente agli altri elementi di contesto.

Aggiungere una coppia di domanda e risposta esistente come richiesta di completamento

La domanda originale, My account, include richieste di completamento, ad esempio Accounts and signing in.

Risposte e richieste di completamento di

Aggiungere una richiesta di completamento a una coppia di domanda e risposta esistente che non è attualmente collegata. Poiché la domanda non è collegata ad alcuna coppia di domanda e risposta, è necessario modificare l'impostazione di visualizzazione corrente.

  1. Per collegare una coppia di domanda e risposta esistente come richiesta di completamento, selezionare la riga per la coppia di domanda e risposta. Per il manuale di Surface, cercare Sign out per ridurre l'elenco.

  2. Nella riga per Signout, nella colonna Risposta selezionare Aggiungi richiesta di completamento.

  3. Nei campi della finestra popup Richiesta di completamento immettere i valori seguenti:

    Campo valore
    Testo visualizzato Immettere Spegnere il dispositivo. Questo è il testo personalizzato da visualizzare nella richiesta di completamento.
    Solo contesto Selezionare questa casella di controllo. Viene restituita una risposta solo se la domanda specifica il contesto.
    Collegamento alla risposta Immettere Use the sign-in screen per trovare la coppia di domanda e risposta esistente.
  4. Viene restituita una sola corrispondenza. Selezionare questa risposta come completamento e quindi selezionare Salva.

    Pagina

  5. Dopo aver aggiunto la richiesta di completamento, selezionare Salva ed esegui training nel riquadro di spostamento superiore.

Modificare il testo visualizzato

Quando viene creata una richiesta di completamento e viene immessa una coppia di domanda e risposta esistente come Collegamento alla risposta, è possibile immettere un nuovo Testo visualizzato. Questo testo non sostituisce la domanda esistente e non aggiunge una nuova domanda alternativa. È separato da tali valori.

  1. Per modificare il testo visualizzato, cercare e selezionare la domanda nel campo Contesto.

  2. Nella riga relativa a tale domanda selezionare la richiesta di completamento nella colonna della risposta.

  3. Selezionare il testo visualizzato da modificare e quindi selezionare Modifica.

    Comando di modifica per il testo visualizzato

  4. Nella finestra popup Richiesta di completamento modificare il testo visualizzato esistente.

  5. Al termine della modifica del testo visualizzato, selezionare Salva.

  6. Nella barra di spostamento in alto selezionare Salva ed esegui training.

Aggiungere una nuova coppia di domanda e risposta come richiesta di completamento

Quando si aggiunge una nuova coppia di domanda e risposta alla knowledge base, ogni coppia deve essere collegata a una domanda esistente come richiesta di completamento.

  1. Sulla barra degli strumenti della knowledge base cercare e selezionare la coppia di domanda e risposta esistente per Accounts and signing in.

  2. Nella colonna Risposta per questa domanda selezionare Aggiungi richiesta di completamento.

  3. In Richiesta di completamento (ANTEPRIMA) creare una nuova richiesta di completamento immettendo i valori seguenti:

    Campo valore
    Testo visualizzato Creare un account di Windows. Testo personalizzato da visualizzare nella richiesta di completamento.
    Solo contesto Selezionare questa casella di controllo. Questa risposta viene restituita solo se la domanda specifica il contesto.
    Collegamento alla risposta Immettere il testo seguente come risposta:
    Creare un account di Windows con un account di posta elettronica nuovo o esistente.
    Quando si salva ed esegue il training del database, questo testo verrà convertito.

    Creare una nuova domanda e risposta di prompt

  4. Selezionare Crea nuovo e quindi Salva.

    Questa azione crea una nuova coppia di domanda e risposta e collega la domanda selezionata come richiesta di completamento. La colonna Contesto indica una relazione di richiesta di completamento per entrambe le domande.

  5. Selezionare Opzioni di visualizzazione e quindi Mostra contesto (ANTEPRIMA).

    La nuova domanda mostra come è collegata.

    Creare una nuova richiesta di completamento

    La domanda padre visualizza una nuova domanda come una delle scelte.

    Screenshot della colonna Contesto, che indica una relazione di richiesta di completamento per entrambe le domande.

  6. Dopo aver aggiunto la richiesta di completamento, selezionare Salva ed esegui training nella barra di spostamento in alto.

Visualizzare più turni durante il test delle richieste di completamento

Quando si testa la domanda con le richieste di completamento nel riquadro Test, la risposta include le richieste di completamento.

La risposta include le richieste di completamento

Richiesta JSON per restituire una risposta iniziale e richieste di completamento

Usare l'oggetto context vuoto per richiedere la risposta alla domanda dell'utente e includere richieste di completamento.

{
  "question": "accounts and signing in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "context": {}
}

Risposta JSON per restituire una risposta iniziale e richieste di completamento

La sezione precedente ha richiesto una risposta ed eventuali richieste di completamento per Accounts and signing in. La risposta include le informazioni di richiesta, che si trovano in answers[0].context e il testo da visualizzare all'utente.

{
    "answers": [
        {
            "questions": [
                "Accounts and signing in"
            ],
            "answer": "**Accounts and signing in**\n\nWhen you set up your Surface, an account is set up for you. You can create additional accounts later for family and friends, so each person using your Surface can set it up just the way he or she likes. For more info, see All about accounts on Surface.com. \n\nThere are several ways to sign in to your Surface Pro 4: ",
            "score": 100.0,
            "id": 15,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Use the sign-in screen"
                    }
                ]
            }
        },
        {
            "questions": [
                "Sign out"
            ],
            "answer": "**Sign out**\n\nHere's how to sign out: \n\n  Go to Start, and right-click your name. Then select Sign out. ",
            "score": 38.01,
            "id": 18,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 16,
                        "qna": null,
                        "displayText": "Turn off the device"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 27.53,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

La matrice prompts fornisce testo nella proprietà displayText e nel valore qnaId. È possibile visualizzare queste risposte come scelte visualizzate successive nel flusso di conversazione e quindi inviare di nuovo il qnaId selezionato a QnA Maker nella richiesta seguente.

Richiesta JSON per restituire una risposta non iniziale e richieste di completamento

Compilare l'oggetto context per includere il contesto precedente.

Nella richiesta JSON seguente, la domanda corrente è Use Windows Hello to sign in e la domanda precedente era Accounts and signing in.

{
  "question": "Use Windows Hello to sign in",
  "top": 10,
  "userId": "Default",
  "isTest": false,
  "qnaId": 17,
  "context": {
    "previousQnAId": 15,
    "previousUserQuery": "accounts and signing in"
  }
}

Risposta JSON per restituire una risposta non iniziale e richieste di completamento

La risposta JSON GenerateAnswer di QnA Maker include le richieste di completamento nella proprietà context del primo elemento nell'oggetto answers:

{
    "answers": [
        {
            "questions": [
                "Use Windows Hello to sign in"
            ],
            "answer": "**Use Windows Hello to sign in**\n\nSince Surface Pro 4 has an infrared (IR) camera, you can set up Windows Hello to sign in just by looking at the screen. \n\nIf you have the Surface Pro 4 Type Cover with Fingerprint ID (sold separately), you can set up your Surface sign you in with a touch. \n\nFor more info, see What is Windows Hello? on Windows.com. ",
            "score": 100.0,
            "id": 17,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        },
        {
            "questions": [
                "Meet Surface Pro 4"
            ],
            "answer": "**Meet Surface Pro 4**\n\nGet acquainted with the features built in to your Surface Pro 4. \n\nHere's a quick overview of Surface Pro 4 features: \n\n\n\n\n\n\n\nPower button \n\n\n\n\n\nPress the power button to turn your Surface Pro 4 on. You can also use the power button to put it to sleep and wake it when you're ready to start working again. \n\n\n\n\n\n\n\nTouchscreen \n\n\n\n\n\nUse the 12.3" display, with its 3:2 aspect ratio and 2736 x 1824 resolution, to watch HD movies, browse the web, and use your favorite apps. \n\nThe new Surface G5 touch processor provides up to twice the touch accuracy of Surface Pro 3 and lets you use your fingers to select items, zoom in, and move things around. For more info, see Surface touchscreen on Surface.com. \n\n\n\n\n\n\n\nSurface Pen \n\n\n\n\n\nEnjoy a natural writing experience with a pen that feels like an actual pen. Use Surface Pen to launch Cortana in Windows or open OneNote and quickly jot down notes or take screenshots. \n\nSee Using Surface Pen (Surface Pro 4 version) on Surface.com for more info. \n\n\n\n\n\n\n\nKickstand \n\n\n\n\n\nFlip out the kickstand and work or play comfortably at your desk, on the couch, or while giving a hands-free presentation. \n\n\n\n\n\n\n\nWi-Fi and Bluetooth® \n\n\n\n\n\nSurface Pro 4 supports standard Wi-Fi protocols (802.11a/b/g/n/ac) and Bluetooth 4.0. Connect to a wireless network and use Bluetooth devices like mice, printers, and headsets. \n\nFor more info, see Add a Bluetooth device and Connect Surface to a wireless network on Surface.com. \n\n\n\n\n\n\n\nCameras \n\n\n\n\n\nSurface Pro 4 has two cameras for taking photos and recording video: an 8-megapixel rear-facing camera with autofocus and a 5-megapixel, high-resolution, front-facing camera. Both cameras record video in 1080p, with a 16:9 aspect ratio. Privacy lights are located on the right side of both cameras. \n\nSurface Pro 4 also has an infrared (IR) face-detection camera so you can sign in to Windows without typing a password. For more info, see Windows Hello on Surface.com. \n\nFor more camera info, see Take photos and videos with Surface and Using autofocus on Surface 3, Surface Pro 4, and Surface Book on Surface.com. \n\n\n\n\n\n\n\nMicrophones \n\n\n\n\n\nSurface Pro 4 has both a front and a back microphone. Use the front microphone for calls and recordings. Its noise-canceling feature is optimized for use with Skype and Cortana. \n\n\n\n\n\n\n\nStereo speakers \n\n\n\n\n\nStereo front speakers provide an immersive music and movie playback experience. To learn more, see Surface sound, volume, and audio accessories on Surface.com. \n\n\n\n\n",
            "score": 21.92,
            "id": 3,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": [
                    {
                        "displayOrder": 0,
                        "qnaId": 4,
                        "qna": null,
                        "displayText": "Ports and connectors"
                    }
                ]
            }
        },
        {
            "questions": [
                "Use the sign-in screen"
            ],
            "answer": "**Use the sign-in screen**\n\n1.  \n\nTurn on or wake your Surface by pressing the power button. \n\n2.  \n\nSwipe up on the screen or tap a key on the keyboard. \n\n3.  \n\nIf you see your account name and account picture, enter your password and select the right arrow or press Enter on your keyboard. \n\n4.  \n\nIf you see a different account name, select your own account from the list at the left. Then enter your password and select the right arrow or press Enter on your keyboard. ",
            "score": 19.04,
            "id": 16,
            "source": "product-manual.pdf",
            "metadata": [],
            "context": {
                "isContextOnly": true,
                "prompts": []
            }
        }
    ]
}

Eseguire query nella knowledge base con l'ID di QnA Maker

Se si crea un'applicazione personalizzata, nella risposta della domanda iniziale vengono restituite eventuali richieste di completamento e i relativi qnaId associati. Dopo aver ottenuto l'ID, è possibile passarlo nel corpo della richiesta di completamento. Se il corpo della richiesta contiene il qnaIde l'oggetto contesto (che contiene le proprietà di QnA Maker precedenti), GenerateAnswer restituirà la domanda esatta in base all'ID, anziché usare l'algoritmo di classificazione per trovare la risposta in base al testo della domanda.

L'ordine di visualizzazione è supportato nell'API Update

Il testo visualizzato e l'ordine di visualizzazione, restituiti nella risposta JSON, sono supportati per la modifica tramite l'API Update.

Aggiungere o eliminare richieste a più turni con l'API Update

È possibile aggiungere o eliminare richieste a più turni usando l'API Update di QnA Maker. Le richieste vengono aggiunte nella matrice promptsToAdd e nella matrice promptsToDelete della proprietà context.

Esportare la knowledge base per il controllo della versione

QnA Maker supporta il controllo della versione includendo i passaggi di conversazione a più turni nel file esportato.

Passaggi successivi