Condividi tramite


Usa entità e compilazione slot negli agenti

Una gran parte delle conversazioni degli agenti in Copilot Studio è la comprensione del linguaggio naturale, che è la capacità dell'IA di comprendere l'intento di un utente. Se ad esempio il cliente potrebbe dire: "Ho provato a usare la mia gift card ma non ha funzionato" e l'agente sa indirizzarlo all'argomento relativo alle gift card che non funzionano anche se quella frase esatta non è elencata come frase trigger.

Un aspetto chiave della comprensione del linguaggio naturale consiste nell'identificare le entità usate in un'interazione con l'utente.

Un'entità può essere pensata come un'unità di informazione che rappresenta un certo tipo di soggetto del mondo reale. Ad esempio, un numero di telefono, un codice postale, una città o il nome di una persona. Con la conoscenza concessa dalle entità, un agente può riconoscere in modo intelligente le informazioni rilevanti da un input dell'utente e salvarle per un uso successivo.

Entità predefinite

Le entità negli agenti ti consentono di archiviare le informazioni in gruppi simili.

Copilot Studio supporta una serie di entità predefinite, che rappresentano le informazioni più comunemente utilizzate nei dialoghi del mondo reale, come età, colori, numeri e nomi.

Con le informazioni concesse dalle entità, un agente può riconoscere in modo intelligente le informazioni pertinenti dall'input dell'utente e salvarle per usarle in un secondo momento.

Per comprendere questa nozione, si userà l'entità Money come esempio.

  1. Apri l'agente in Copilot Studio e seleziona Impostazioni nella parte superiore della pagina, quindi seleziona Entità dal menu.

    Viene visualizzato un elenco con tutte le entità disponibili.

    Screenshot della pagina Entità (vista parziale).

  2. Seleziona l'entità Denaro. Viene visualizzato il pannello dei dettagli dell'entità.

    Screenshot del pannello dei dettagli per l'entità Money.

Qui puoi vedere una spiegazione di questa entità e i modi in cui può essere utilizzata per estrarre informazioni relative a denaro o valuta dall'input di un utente.

Ad esempio, quando un utente inserisce "Costa 1.000 dollari", usando questa entità monetaria l'agente sa che "1.000 dollari" rappresenta l'informazione sul tipo di denaro. Quando l'agente estrae le informazioni e le salva in una variabile, salva "1.000" come numero anche se le informazioni circostanti erano testo.

Entità personalizzate

Le entità predefinite coprono i tipi di informazioni comunemente utilizzati. Occasionalmente, ad esempio quando si crea un agente che serve a uno scopo specifico, potrebbe essere necessario insegnare al modello di comprensione del linguaggio dell'agente conoscenze specifiche del dominio.

Ad esempio, supponiamo che si desideri costruire un agente per un negozio all'aperto. In questo caso, dovrai insegnare all'agente a riconoscere la categoria "prodotto per ingranaggi esterni" in una conversazione.

Per prima cosa, crea un'entità personalizzata. In questo caso, è possibile creare un'entità che fornisce all'agente la conoscenza di tutte le categorie di prodotti per esterni.

  1. Passare alla pagina Impostazioni per l'agente e selezionare Entità.

  2. Seleziona Aggiungi un'entità>Nuova entità.

  3. Seleziona il tipo di entità desiderato: un' entitàelenco chiuso o un'entità espressione regolare (regex).

    Screenshot della finestra di creazione dell'entità, con le opzioni

Entità Elenco chiuso

Le entità Elenco chiuso consentono di definire un elenco di elementi. Queste entità sono più appropriate per elenchi di piccole dimensioni facili da gestire e con etichette di elementi semplici.

  1. In Crea un'entità seleziona Elenco chiuso.

  2. Nel pannello che si apre, inserisci un nome per la nuova entità, ad esempio Attività di campeggio.

  3. Aggiungi una descrizione, se lo desideri.

  4. In Voci dell'elenco inserisci i valori che vuoi associare all'entità. Ad esempio, l'escursionismo e lo yoga.

    In alternativa, puoi caricare un file che elenca tutti i valori desiderati che desideri aggiungere per questa entità.

    Quando inserisci gli elementi, puoi:

    • Seleziona una voce per cambiarne il nome.
    • Seleziona l'icona cestino per eliminare la voce.
    • Seleziona Sinonimi (oppure seleziona i sinonimi elencati se sono già stati aggiunti) per aprire il pannello Modifica sinonimi.

    Puoi aggiungere sinonimi per espandere la logica di corrispondenza per ogni valore nell'elenco. Ad esempio, nell'elemento escursionismo, puoi aggiungere trekking e alpinismo come sinonimi.

    Screenshot del pannello

  5. Se lo desideri, attiva Corrispondenza intelligente per questa entità.

    La corrispondenza intelligente fa parte dell'intelligence supportata dal modello di comprensione del linguaggio dell'agente. Quando la corrispondenza intelligente è attiva, l'agente interpreta l'input dell'utente utilizzando la logica fuzzy rispetto ai valori elencati per l'entità.

    In particolare, l'agente correggerà automaticamente gli errori di ortografia ed espanderà semanticamente la relativa logica di corrispondenza. Ad esempio, l'agente può abbinare automaticamente "softball" a "baseball".

  6. Dopo aver finito di creare o modificare l'entità, seleziona Salva. Seleziona Chiudi per annullare le modifiche.

    Screenshot del riquadro dei dettagli per l'entità

Caricare valori per un'entità elenco chiuso

Dal pannello dei dettagli di un'entità elenco chiuso puoi aggiungere o sostituire il set di valori e sinonimi associati all'entità.

  1. Preparare un file di testo (massimo 3 MB) in cui siano elencati tutti i valori che si desidera aggiungere per l'entità, inclusi eventuali sinonimi. Usa questo formato: un valore per riga e usa la barra verticale (|) come delimitatore per i sinonimi. Ad esempio:

    hiking|trekking
    hiking|mountaineering
    yoga
    cycling|bicycling
    cooking
    
  2. In Voci di elenco, seleziona carica un file.

  3. In Carica un file, seleziona l'opzione desiderata:

    • Se vuoi aggiungere nuovi valori e sinonimi per l'entità, seleziona Aggiungi.
    • Per sostituire tutti i valori e i sinonimi esistenti con l'elenco del file, seleziona Sostituisci.
  4. Rilascia il file nella finestra. In alternativa, seleziona fai clic per sfogliare, vai al file e selezionalo.

  5. Esamina i valori e i sinonimi visualizzati e seleziona Aggiungi.

Scaricare i valori per un'entità elenco chiuso

Dal pannello dei dettagli di un'entità elenco chiuso è possibile scaricare un file di testo che elenca il set di valori e sinonimi associati all'entità.

  1. In Voci di elenco, seleziona scarica un file.

  2. Salva il file di testo risultante o aprilo in un editor di testo per rivederne il contenuto. Ogni valore di entità viene visualizzato in una riga separata. Se un valore ha più sinonimi, questi vengono visualizzati su righe separate, come illustrato di seguito:

    hiking|trekking
    hiking|mountaineering
    

Entità Espressione regolare (regex)

Le entità Espressione regolare (regex) consentono di definire modelli logici che puoi utilizzare per abbinare ed estrarre informazioni da un input. Le entità Regex sono ideali per la corrispondenza di criteri complessi rispetto all'input dell'utente. Sono utili anche se devi consentire variazioni specifiche nel modo in cui un utente potrebbe formattare o immettere il proprio input in una conversazione.

Ad esempio, puoi usare un'entità regex per identificare elementi come un ID di monitoraggio, un numero di licenza, un numero di carta di credito o un indirizzo IP.

  1. In Crea un'entità, seleziona Espressione regolare (regex).

  2. Nel pannello che si apre, immetti un nome per la nuova entità.

    Screenshot del pannello dei dettagli per un'entità regex.

  3. Aggiungi una descrizione, se lo desideri.

  4. Immetti il modello di espressione regolare che deve essere usato per trovare ed estrarre gli elementi dell'entità dall'input.

    Un'entità regex di Copilot Studio utilizza la sintassi delle espressioni regolari .NET.

    Per impostazione predefinita, la corrispondenza del modello fa distinzione tra lettere maiuscole e minuscole. Per disattivare questa funzionalità, usa l'opzione di espressione regolare (?i) nella stringa del modello. Nel riquadro delle entità regex sono inclusi alcuni esempi di base. Per maggiori informazioni sulla sintassi e per altri esempi, vedi Linguaggio delle espressioni regolari - Riferimento rapido.

    Se devi adattare l'espressione regolare a più modelli, puoi utilizzare l'operatore di alternanza | per concatenare espressioni regolari. Ad esempio, puoi combinare due modelli regex per cercare il vecchio formato e quello nuovo di un codice ID prodotto.

  5. Dopo aver finito di creare o modificare l'entità, seleziona Salva. Seleziona Chiudi per annullare le modifiche.

Uso delle entità in una conversazione

Ora che il tuo agente conosce gli ingranaggi esterni grazie all'entità Attività campeggio e ad altre entità personalizzate che hai creato, puoi iniziare a usarle nel tuo agente.

  1. Vai alla pagina Argomenti dell'agente.

  2. Apri l'argomento per un'entità che desideri raccogliere.

  3. Seleziona l'icona Aggiungi nodo, quindi seleziona Fai una domanda.

  4. In Identifica, seleziona l'entità che hai creato in Entità personalizzate.

    Nodo domanda con selezione entità.

  5. Puoi anche facoltativamente selezionare elementi da mostrare come pulsanti. Ad esempio, se desideri mostrare alcune categorie come pulsanti per consentire agli utenti di sceglierli comodamente come input, puoi scegliere Seleziona opzioni per l'utente e quindi selezionali dall'elenco che contiene gli elementi aggiunti quando hai creato l'entità personalizzata.

    Screenshot che mostra una selezione di valori di entità da visualizzare come pulsanti in fase di esecuzione.

  6. Denomina la variabile per l'output della risposta dell'utente, se necessario.

Riempimento slot

Il riempimento slot è un concetto di comprensione del linguaggio naturale che indica il salvataggio di un'entità estratta su un oggetto. In Copilot Studio il riempimento dello slot significa inserire il valore dell'entità estratto in una variabile.

Continuiamo a usare l'argomento delle attività di campeggio, che viene attivato digitando "Voglio fare qualcosa" nella chat di prova, come esempio.

L'argomento viene attivato correttamente e l'agente richiede il tipo di attività, mostrando anche le opzioni di pulsanti specificate durante la creazione del nodo Domanda. Se si attiva l'opzione per tracciare tra gli argomenti, la struttura della finestra di dialogo mostra anche che l'agente è in esecuzione su questo nodo Domanda.

rilevamento tra argomenti.

Un utente può utilizzare le scelte predefinite selezionando uno dei pulsanti. In alternativa, puoi anche digitare "trekking" e vedere se esegue il mapping su "escursionismo", perché quelle parole sono state definite come sinonimi.

La visualizzazione di monitoraggio mostra che la finestra di dialogo è indirizzata correttamente al percorso in cui il valore della categoria di prodotto è "Escursionistico". È possibile controllare il valore della variabile dalla finestra di controllo delle variabili nella parte inferiore del canvas di creazione. La finestra di controllo mostra che il valore della variabile è "Escursionismo".

In sostanza, il riempimento dello slot è avvenuto inserendo l'entità estratta "Escursionismo" nella variabile VarCampType.

Finestra di controllo della variabile.

Puoi inoltre utilizzare ciò che è noto come "riempimento di slot proattivo" in cui l'utente può specificare più informazioni da mappare su più entità. L'agente è in grado di comprendere automaticamente quali informazioni appartengono a quale entità. In caso di dubbi sulla mappatura prevista, verrà richiesto di essere più specifici fornendo le opzioni.

In questo esempio, l'utente ha scritto "Sono annoiato ma mi piace l'alpinismo". Questo messaggio include la frase trigger che l'utente vuole aiuto con le attività all'aperto e una seconda informazione, "alpinismo", che è un sinonimo di escursionismo. In questo caso, l'agente inserisce entrambe le entità per la scelta di un'attività all'aperto e per il tipo di attività.

Slot filling multiplo e proattivo.

La vista di rilevamento mostra che l'agente accetta questo input dell'utente e salta in modo intelligente il nodo Domanda che richiede il tipo di attività.

L'agente ascolta sempre attivamente l'input dell'utente, ricordando in anticipo le informazioni in modo da poter saltare passaggi non necessari a seconda dei casi.

Riavviamo nuovamente il test e proviamo un altro caso. Questa volta, puoi aggiungere un paio di nodi Domanda che chiedono quando tempo hai a disposizione per l'attività (usando dell'entità Durata) e l'intervallo di prezzo (usando l'entità Denaro).

Questa volta, quando viene presentata la domanda sulla categoria di prodotto, invece di dire all'agente solo la categoria di prodotto, l'utente può dire "Voglio acquistare un paio di scarponi da trekking sotto i 100 USD". In questo esempio, l'agente non solo è in grado di indirizzare al percorso corretto della categoria di prodotto per l'escursionismo, ma anche di riempire attivamente gli slot in cui si richiede il tipo di attrezzatura da trekking e le informazioni sulla fascia di prezzo target.

rilevamento tra argomenti per categorie di prodotti e prezzi.

Il riempimento proattivo degli slot può essere controllato manualmente a livello di nodo. Se desideri sempre richiedere la domanda all'interno di un nodo specifico, indipendentemente dal fatto che lo slot sia stato riempito dalle risposte degli utenti precedenti, puoi disabilitare l'opzione Salta domanda per quel nodo Domanda. Esegui i seguenti passaggi per disabilitare l'opzione Salta la domanda.

  1. Seleziona l'icona Altro () del nodo Domanda, quindi seleziona Proprietà. Viene visualizzato il riquadro Proprietà domanda.

    Apri il riquadro delle proprietà Domanda.

  2. Nel riquadro Proprietà della domanda, seleziona Comportamento delle domande.

  3. Nel riquadro Comportamento delle domande, in Salta la domanda, seleziona Chiedi ogni volta, quindi seleziona Salva in cima alla pagina.

    Ignora la domanda.

Accettare una delle molte entità durante un turno di conversazione

In alcune situazioni, un agente può accettare una di più risposte valide a un determinato turno di conversazione. Ad esempio, l'agente potrebbe richiedere a un cliente di specificare il numero di account o il numero di telefono. Potresti anche voler far sì che il tuo agente permetta al cliente di dichiarare che non dispone delle informazioni, e gestisca il cliente di conseguenza anziché inoltrarlo immediatamente a un rappresentante del servizio clienti.

  1. Aggiungere un nodo Domanda.

  2. In Identifica selezionare Una di più entità.

  3. Per ogni entità che si vuole accettare in questo nodo, selezionare Nuova entità e selezionare l'entità desiderata. Un nodo Domanda può supportare fino a cinque entità diverse.

  4. Selezionare il nome della variabile predefinito in Salva risposta utente per aprire il pannello Proprietà variabile e modificare il nome in qualcosa di significativo, ad esempio Identificatore.

    La variabile che archivia il valore dell'entità riconosciuta è di tipo record, con un elemento per ogni entità supportata in questo nodo, ad esempio Identifier.account, Identifier.phone, Identifier.unknown.

  5. Aggiungere condizioni per indirizzare la conversazione in base alle informazioni fornite dal cliente. Ti consigliamo di configurare le condizioni con l'operatore non Vuoto (o è Vuoto).

Comportamento di riconoscimento per "Una di molte entità"

Questo tipo di riconoscimento è destinato a identificare una singola entità da un set di possibili entità a un turno di conversazione. Se un cliente immette un'istruzione contenente due o più entità configurate per l'identificazione nel nodo Domanda corrispondente, l'agente identifica solo la prima entità nell'elenco. Assicurarsi quindi di creare le domande e la logica condizionale che segue tali nodi Domanda di conseguenza.

Si supponga, ad esempio, che un nodo Domanda sia configurato per riconoscere uno dei seguenti: un numero di scheda di libreria, un numero di telefono o "Non so", in questo ordine. Se un cliente dice "Il mio numero di telefono è 777 555-1212 e il numero di carta è 123456789", il valore dell'entità riconosciuto è il numero di carta perché è la prima entità nell'elenco delle entità possibili nel nodo Domanda corrispondente.

Se l'agente non riesce a identificare alcuna delle entità configurate per riconoscere un nodo Domanda , applica il comportamento di ripetizione specificato per questo nodo.

Limitazioni

Di seguito sono riportate le limitazioni note per i nodi Domanda configurati per raccogliere una di più entità a un turno di conversazione:

  • Supporto limitato a un massimo di cinque entità.

  • Nessun supporto per le entità esterne.

  • Supporto per una sola entità di qualsiasi tipo specificato. Ad esempio, un nodo Domanda non è in grado di riconoscere due entità di tipo Date.