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

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

Per vedere il funzionamento di più turni, vedere il video dimostrativo seguente:

Conversazione a più turni in QnA Maker

Nota

Il servizio QnA Maker viene ritirato il 31 marzo 2025. Una versione più recente della funzionalità di domanda e risposta è ora disponibile come parte del linguaggio di intelligenza artificiale di Azure. Per le funzionalità di risposta alle domande all'interno del servizio di linguaggio, vedere La risposta alle domande. A partire dal 1° ottobre 2022 non sarà possibile creare nuove risorse QnA Maker. Per informazioni sulla migrazione delle knowledge base di QnA Maker esistenti alla risposta alle domande, 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. Questo flusso è possibile attraverso le domande 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 chat bot

Con 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 Account personale. Il knowledge base ha tre coppie di domande e risposte collegate. Per perfezionare la risposta, l'utente seleziona una delle tre opzioni nella knowledge base. La domanda (#1) presenta tre prompt di completamento, che vengono presentati nel chatbot come tre opzioni (#2).

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

Usare più turni in un bot

Dopo aver pubblicato la Knowledge Base, è possibile selezionare il pulsante Crea bot per distribuire il bot QnA Maker in Azure ai servizio 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 un knowledge base, nella sezione Popolamento della Knowledge Base viene visualizzata una casella di controllo Abilita estrazione a più turni da URL, .pdf o file .docx.

Casella di controllo per abilitare l'estrazione a più turni

Quando si seleziona questa opzione, QnA Maker estrae la gerarchia presente nella struttura del documento. La gerarchia viene convertita in per i prompt di completamento e la radice della gerarchia funge da QnA padre. In alcuni documenti la radice della gerarchia non ha contenuto, che potrebbe fungere da risposta. È possibile specificare il testo di risposta predefinito da utilizzare 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 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

Se si crea un documento a più turni, tenere presente le linee guida seguenti:

  • Usare intestazioni e intestazioni secondarie per indicare la gerarchia. Ad esempio, usare h1 per indicare il QnA padre e h2 per indicare il QnA che deve essere impiegato come prompt. Usare dimensioni di intestazione ridotte per indicare la gerarchia successiva. Non usare lo stile, il colore o un altro meccanismo per implicare la struttura nel documento, QnA Maker non estrae le richieste a più turni.

  • Il primo carattere dell'intestazione deve essere maiuscolo.

  • Non terminare un'intestazione con un punto interrogativo, ?.

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

Aggiunta di file a un KB 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 Abilita estrazione a più turni da URL, .pdf o .docx file abilitati.
  2. Passare alla pagina Impostazioni , selezionare il file o l'URL da aggiungere.
  3. Salvare ed eseguire il training del knowledge base.

Attenzione

Il supporto per l'uso di un file TSV o XLS multi-turn knowledge base esportato come origine dati per un knowledge base nuovo o vuoto non è supportato. È necessario importare il tipo di file, dalla pagina Impostazioni del portale di QnA Maker, per aggiungere richieste a più turni esportate a un knowledge base.

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

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

Visualizzare domande e risposte con il contesto

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

Selezionare Visualizza opzioni 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 Context evidenziata.

Nell'immagine precedente, #1 indica il testo in grassetto nella colonna, che indica la domanda corrente. La domanda padre è l'elemento principale nella riga. Le domande seguenti 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 domande e risposte esistente come richiesta di completamento

La domanda originale, Account personale, ha prompt di completamento, ad esempio Account e accesso.

Risposte

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

  1. Per collegare una coppia di domande e risposte esistente come richiesta di completamento, selezionare la riga per la coppia di domande e risposte. Per il manuale di Surface, cercare Disconnetti per ridurre l'elenco.

  2. Nella riga signout, nella colonna Answer ( Risposta ) selezionare Add follow-up prompt (Aggiungi prompt di completamento).

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

    Campo Valore
    Testo visualizzato Immettere Disattiva il dispositivo. Testo personalizzato da visualizzare nel prompt di completamento.
    Solo contesto Selezionare questa casella di controllo. Viene restituita una risposta solo se la domanda specifica il contesto.
    Collegamento alla risposta Immettere Usa la schermata di accesso per trovare la coppia di domande e risposte esistente.
  4. Viene restituita una corrispondenza. Selezionare questa risposta come completamento e quindi selezionare Salva.

    Pagina

  5. Dopo aver aggiunto il prompt di completamento, selezionare Salva ed esegui il training nella barra di spostamento superiore.

Modificare il testo visualizzato

Quando viene creata una richiesta di completamento e viene immessa una coppia di domande e risposte esistente come Collegamento a risposta, è possibile immettere il nuovo testo Visualizza. 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 per tale domanda selezionare la richiesta di completamento nella colonna di risposta.

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

    Comando 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 superiore salvare e eseguire il training.

Aggiungere una nuova coppia di domande e risposte come richiesta di completamento

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

  1. Nella barra degli strumenti knowledge base cercare e selezionare la coppia di domande e risposte esistenti per Account e accesso.

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

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

    Campo Valore
    Testo visualizzato Creare un account Windows. Testo personalizzato da visualizzare nel prompt 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 Windows con un account di posta elettronica nuovo o esistente.
    Quando si salva e si esegue il training del database, questo testo verrà convertito.

    Creare una nuova domanda e una nuova risposta

  4. Selezionare Crea nuovo e quindi salva.

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

  5. Selezionare Visualizza opzioni e quindi mostra contesto (ANTEPRIMA).

    La nuova domanda mostra come è collegata.

    Creare un nuovo prompt di completamento

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

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

  6. Dopo aver aggiunto il prompt di completamento, selezionare Salva e esegui il training nella barra di spostamento superiore.

Visualizzare più turni durante il test delle richieste di follow-up

Quando si testa la domanda con le richieste di follow-up 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 vuoto context 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 e qualsiasi richiesta di completamento a Account e accesso. La risposta include le informazioni sul prompt, che si trovano in answers[0].contexte 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 prompts matrice fornisce testo nella displayText proprietà e nel qnaId valore. È possibile visualizzare queste risposte come le scelte visualizzate successive nel flusso di conversazione e quindi inviare di nuovo il valore selezionato qnaId a QnA Maker nella richiesta seguente.

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

Compilare l'oggetto per includere il context contesto precedente.

Nella richiesta JSON seguente, la domanda corrente è Usare Windows Hello per accedere e la domanda precedente era account e accedere.

{
  "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 di QnA Maker GenerateAnswer include le richieste di follow-up nella context proprietà 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 una query sull'knowledge base con l'ID QnA Maker

Se si sta creando un'applicazione personalizzata, nella risposta della domanda iniziale, vengono restituiti i prompt di completamento e i relativi associati qnaId . Ora che si dispone dell'ID, è possibile passarlo nel corpo della richiesta di completamento. Se il corpo della richiesta contiene l'oggetto qnaIde l'oggetto contesto (che contiene le proprietà QnA Maker precedenti), GenerateAnswer restituirà la domanda esatta in base all'ID, anziché usare l'algoritmo di classificazione per trovare la risposta dal testo della domanda.

L'ordine di visualizzazione è supportato nell'API Update

Il testo visualizzato e l'ordine di visualizzazione, restituito nella risposta JSON, è supportato per la modifica dall'API Update.

Aggiungere o eliminare prompt multi-turn con l'API Update

È possibile aggiungere o eliminare prompt a più turni usando l'API di aggiornamento di QnA Maker. I prompt vengono aggiunti nella context matrice della promptsToAdd proprietà e nella promptsToDelete matrice.

Esportare knowledge base per il controllo della versione

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

Passaggi successivi