Condividi tramite


Aggiungere più categorie al bot di domande frequenti

In questa esercitazione apprenderai a:

  • Creare un progetto e aggiungere tag alle coppie di risposte e domande in categorie distinte con metadati
  • Creare un progetto separato per ogni dominio
  • Creare una risorsa di linguaggio separata per ogni dominio

Quando si compila un bot di domande frequenti, è possibile che si verifichino casi d'uso che richiedono di gestire le query in più domini. Si supponga che il team di marketing di Microsoft voglia creare un bot di supporto clienti che risponda alle query utente comuni su più prodotti Surface. Per semplicità, in questo caso verranno usati due URL di domande frequenti, Surface Pen e Surface Earbuds per creare il progetto.

Creare un progetto con metadati specifici del dominio

Gli autori del contenuto possono usare documenti per estrarre coppie di risposte e domande o aggiungere coppie di risposte e domande personalizzate al progetto. Per raggruppare queste domande e risposte in domini o categorie specifici, è possibile aggiungere metadati.

Per il bot nei prodotti Surface, è possibile seguire questa procedura per creare un bot che risponde alle query per entrambi i tipi di prodotto:

  1. Aggiungere gli URL delle domande frequenti seguenti come origini selezionando Aggiungi origine>URL>, quindi Aggiungi tutti dopo aver aggiunto ognuno degli URL seguenti:

    Domande frequenti su Surface Pen
    Domande frequenti su Surface Earbuds

    Screenshot dell'interfaccia utente Aggiungi URL

  2. In questo progetto, sono presenti coppie di risposte e domande su due prodotti e l'obiettivo è quello di distinguerle in modo che si possano cercare risposte tra domande e risposte per un determinato prodotto. A tale scopo, è possibile aggiornare il campo dei metadati per le coppie di risposte e domande.

    Come si può notare nell'esempio seguente, sono stati aggiunti metadati con product come chiave e surface_pen o surface_earbuds come valori, ove possibile. È possibile estendere questo esempio per estrarre dati su più prodotti e aggiungere un valore diverso per ogni prodotto.

    Screenshot dell'esempio di metadati.

  3. A questo punto, per limitare il sistema alla ricerca della risposta in un determinato prodotto, è necessario passare tale prodotto come filtro nell'API REST di risposta alla domanda personalizzata.

    L'URL di stima dell'API REST può essere recuperato dal riquadro Distribuisci progetto:

    Screenshot della pagina Distribuisci progetto con l'URL di previsione visualizzato.

    Nel corpo JSON per la chiamata API surface_pen è stato passato come valore del prodotto di metadati. Il sistema cercherà quindi solo la risposta tra le coppie di domanda e risposta con gli stessi metadati.

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    È possibile ottenere il valore dei metadati in base all'input dell'utente nei modi seguenti:

    • Accettare in modo esplicito il dominio come input dall'utente tramite il client bot. Ad esempio, come illustrato di seguito, è possibile accettare la categoria di prodotto come input dell'utente quando viene avviata la conversazione.

      Accettare l'input dei metadati

    • Identificare in modo implicito il dominio in base al contesto del bot. Ad esempio, nel caso in cui la domanda precedente fosse in un determinato prodotto Surface, può essere salvata come contesto dal client. Se l'utente non specifica il prodotto nella query successiva, è possibile passare il contesto del bot come metadati all'API Genera risposta.

      Passare il contesto

    • Estrarre l'entità dalla query utente per identificare il dominio da usare per il filtro dei metadati. È possibile usare altri Servizi di Azure AI, ad esempio il Riconoscimento entità denominata e la comprensione del linguaggio di conversazione per l'estrazione di entità.

      Estrarre metadati dalla query

Quanto grandi possono essere i nostri progetti?

È possibile aggiungere fino a 50000 coppie di risposte e domande a un singolo progetto. Se i dati superano 50.000 coppie di risposte e domande, è consigliabile suddividere il progetto.

Creare un progetto separato per ogni dominio

È anche possibile creare un progetto separato per ogni dominio e gestire i progetti separatamente. Tutte le API richiedono che l'utente passi il nome del progetto per eseguire qualsiasi aggiornamento al progetto o recuperare una risposta alla domanda dell'utente.

Quando la domanda dell'utente viene ricevuta dal servizio, è necessario passare projectName nell'endpoint dell'API REST visualizzata per recuperare una risposta dal progetto pertinente. È possibile individuare l'URL nella paginaDistribuisci progetto in Ottieni URL previsione:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

Creare una risorsa di linguaggio separata per ogni dominio

Si supponga che il team di marketing di Microsoft voglia creare un bot di supporto clienti che risponda alle query degli utenti sui prodotti Surface e Xbox. Prevedono di assegnare team distinti per accedere ai progetti in Surface e Xbox. In questo caso, è consigliabile creare due risorse di risposta alla domanda personalizzata, una per Surface e un'altra per Xbox. È tuttavia possibile definire ruoli distinti per gli utenti che accedono alla stessa risorsa.