Opzioni relative alle entità

Esistono diverse opzioni per le entità che modificano il comportamento della corrispondenza e dell'estrazione dei dati delle entità. Queste opzioni sono preconfigurate per le entità di sistema, quindi non puoi modificarle per quelle di sistema. Tuttavia, puoi modificarle per le tue entità personalizzate. Puoi creare diversi tipi di entità, a seconda delle opzioni selezionate:

Esistono altre opzioni che non determinano il tipo di entità, ma influiscono sul comportamento della corrispondenza delle entità:

Questo documento descrive ognuna di queste opzioni.

Dove trovare questi dati

Quando crei un agente, di solito viene utilizzato la console Dialogflow CX (consulta la documentazione, apri la console). Le istruzioni riportate di seguito sono incentrate sull'utilizzo della console. Per accedere ai dati delle opzioni entità:

  1. Apri la console Dialogflow CX.
  2. Scegli il tuo progetto Google Cloud.
  3. Seleziona l'agente.
  4. Seleziona la scheda Gestisci.
  5. Fai clic su Tipi di entità.
  6. Vedi le seguenti opzioni per le entità esistenti (alcune di queste potrebbero essere visibili solo dopo aver espanso le Opzioni avanzate):
    • Solo entità (non sinonimi)
    • Entità Regexp
    • Aggiungere automaticamente entità
    • Corrispondenza parziale
    • Oscura nel log
    • Esclusioni di entità

Se stai creando un agente utilizzando l'API anziché la console, consulta il tipo EntityType. I nomi dei campi dell'API sono simili ai nomi dei campi della console. Le istruzioni riportate di seguito evidenziano eventuali differenze importanti tra la console e l'API.

Seleziona un protocollo e una versione per il riferimento EntityType:

Protocollo V3 V3beta1
REST Risorsa EntityType Risorsa EntityType
RPC Interfaccia EntityType Interfaccia EntityType
C++ EntityTypesClient Non disponibile
C# EntityTypesClient Non disponibile
Go EntityTypesClient Non disponibile
Java EntityTypesClient EntityTypesClient
Node.js EntityTypesClient EntityTypesClient
PHP Non disponibile Non disponibile
Python EntityTypesClient EntityTypesClient
Ruby Non disponibile Non disponibile

Entità mappa

Le entità della mappa forniscono una mappa dai valori di riferimento ai sinonimi per ogni valore di riferimento. Ogni voce di entità della mappa contiene un singolo valore di riferimento e un elenco di sinonimi. Se vuoi, puoi anche impostare un pattern DTMF per ogni entità.

Ad esempio, ognuna delle seguenti righe è voce di entità per un tipo di entità size:

Entità Sinonimi Modello DTMF
S S, piccola, piccola, piccola
M M, media, media
L L, grande, enorme, grande

Nota che il valore di riferimento è incluso nell'elenco dei sinonimi per ciascuna voce di entità sopra riportata. Per trovare una corrispondenza, un valore di riferimento deve essere incluso come sinonimo. Quando inizialmente inserisci un valore di riferimento con la console, questo viene automaticamente aggiunto come sinonimo.

Se viene trovato uno dei sinonimi per una parte di input utente finale, il valore di riferimento associato viene estratto per la corrispondenza e utilizzato per risolvere il valore del parametro associato.

Il valore di riferimento deve essere omesso dall'elenco dei sinonimi. Questo significa solo che non viene abbinato a una parte di input utente finale, ma viene utilizzato come valore estratto quando viene trovata una corrispondenza con uno dei suoi sinonimi. Questo è preferibile quando utilizzi stringhe speciali per i valori di riferimento che non vengono digitati o pronunciati dagli utenti finali.

Molte entità di sistema sono entità mappa. Ad esempio, l'entità di sistema @sys.date corrisponde a input di data comuni come "1° gennaio 2015" o "Il primo gennaio 2015". Entrambi questi input sono mappati a un valore di riferimento nel formato ISO-8601: "2015-01-01T12:00:00-03:00".

Per creare un'entità della mappa:

  • Utilizzando la console, deseleziona l'opzione Espressione regex e deseleziona l'opzione Solo entità.
  • Utilizzando l'API, imposta il campo EntityType.kind su KIND_MAP.

Elenco entità

Le entità elenco forniscono un elenco di voci di entità con valore singolo. Non contengono valori di riferimento e sinonimi. Ad esempio, ognuna delle seguenti righe è voci di entità per un tipo di entità material:

Valore
tessuto
legno
metallo

Se un valore corrisponde a una parte di input utente finale, il valore viene estratto per la corrispondenza e viene utilizzato per risolvere il valore del parametro associato.

Molte entità di sistema sono entità elenco. Ad esempio, l'entità di sistema @sys.color corrisponde a input di colore comuni come "rosso" o "blu". Quando si abbina un colore, il valore estratto non è mappato ad alcun valore di riferimento. Ad esempio, le sfumature del rosso, come "scarlatto" o "cremisi", non sono mappate su "rosso" e vengono estratte come i loro valori originali "scarlatto" e "cremisi".

Per creare un'entità elenco:

  • Utilizzando la console, deseleziona l'opzione Entità con espressione regolare e seleziona l'opzione Solo entità.
  • Utilizzando l'API, imposta il campo EntityType.kind su KIND_LIST.

Entità composita

Un'entità composita è un tipo speciale di entità elenco. Le voci di entità per le entità elenco in genere contengono parole o frasi semplici, ma possono anche contenere altri tipi di entità. Quando un tipo di entità viene fatto riferimento in un altro tipo di entità, il riferimento è chiamato alias. Quando un'entità elenco contiene alias di altri tipi di entità, si chiama entità composita.

Quando crei un alias, devi specificare il nome del tipo di entità di riferimento e il nome di una proprietà a tua scelta. Quando viene trovata una corrispondenza con un'entità composita in fase di runtime, il valore estratto viene restituito come oggetto JSON, con i nomi delle proprietà alias utilizzati come nomi di proprietà JSON. Il formato per l'inserimento di un alias è:

@entity-name:property-name

Ad esempio, puoi creare un tipo di entità place che corrisponda a una città o a uno stato con le seguenti voci di entità:

Valore
@sys.geo-city:city
@sys.geo-state:state

Se un input utente finale contiene una parte "Nashville", viene trovata una corrispondenza con il tipo di entità place. Il valore estratto viene restituito come: {"city": "Nashville"}.

Puoi anche utilizzare più alias di entità in una voce di entità. Considera il seguente tipo di entità personalizzata move che contiene alias a un tipo di entità direction e al tipo di entità di sistema @sys.number:

Tipo di entità mappa personalizzata di indicazioni stradali:

Valore di riferimento Sinonimi
avanti avanti, avanti
indietro indietro, indietro, indietro

Sposta tipo di entità elenco personalizzato:

Valore
@sys.number:steps passi @direction:direction

Se l'entità move viene associata a un input utente finale che contiene "cinque passaggi indietro", verrà trovata una corrispondenza con l'entità move. Il valore estratto viene restituito come: {"steps": 5, "direction": "back"}.

Molte entità di sistema sono entità composte. Ad esempio, l'entità di sistema @sys.unit-currency viene utilizzata per trovare corrispondenze di importi di denaro con un nome valuta. Corrisponde a input dell'utente finale, come "50 euro" o "venti dollari e cinque centesimi". Il valore estratto viene restituito come un oggetto JSON come: {"amount": 50, "currency": "EUR"}

Entità espressione regolare

Con le entità regexp, puoi fornire espressioni regolari per la corrispondenza. Per ulteriori informazioni, consulta la sezione Entità Regexp.

Per creare un'entità regexp:

  • Utilizzando la console, seleziona l'opzione Entità Regexp.
  • Utilizzando l'API, imposta il campo EntityType.kind su KIND_REGEXP.

Espansione automatica (aggiunta automatica delle entità)

Puoi attivare l'espansione automatica per un tipo di entità personalizzato. Se abilitato, l'agente può riconoscere i valori non forniti esplicitamente. Ad esempio, considera un tipo di entità lista della spesa:

Valore
pane
burro
latte
mela
gelato

Se l'input dell'utente finale è "Devo comprare qualche carota", per questo tipo di entità verrà trovata una corrispondenza con "carote", anche se non è fornito. L'agente riconosce che la parola "carote" è contestualmente simile ad altri valori.

Quando prendi in considerazione l'espansione automatica, devi seguire le best practice riportate di seguito:

  • L'attivazione dell'espansione automatica non garantisce l'estrazione dell'entità. Per un elenco limitato, devi fornire l'elenco completo anziché fornire un elenco parziale e abilitare l'espansione automatica.
  • Se attivi l'espansione automatica in più di un'entità, potrebbero verificarsi conflitti e risultati di classificazione imprevisti.
  • Per garantire una migliore qualità dell'estrazione dei parametri, è fondamentale fornire dati di addestramento diversificati che coprano tutti i casi d'uso in cui una determinata entità può essere trovata nel traffico dell'agente previsto. Se gli esempi non sono sufficienti, l'espansione delle entità automatizzate potrebbe non funzionare come previsto.

Per attivare l'espansione automatica:

  • Utilizzando la console, seleziona l'opzione Aggiungi automaticamente entità.
  • Utilizzando l'API, imposta il campo EntityType.autoExpansionMode su AUTO_EXPANSION_MODE_DEFAULT.

Corrispondenza parziale

Puoi attivare la corrispondenza parziale per un'entità personalizzata. Quando la corrispondenza parziale è abilitata, l'ordine delle parole in un valore o sinonimo non è importante. Per ulteriori informazioni, consulta la sezione Corrispondenza parziale.

Per attivare la corrispondenza parziale:

  • Utilizzando la console, seleziona l'opzione Corrispondenza parziale.
  • Utilizzando l'API, imposta il campo EntityType.enableFuzzyExtraction su true.

Oscura nel log

Se abiliti l'oscuramento delle entità, tutti i valori dei parametri estratti dal runtime per il tipo di entità verranno oscurati durante il logging.

In alternativa, puoi oscurare i singoli parametri.

Esclusioni di entità

Puoi aggiungere esclusioni di entità, ovvero frasi che non devono essere corrispondenti. Ad esempio, se hai un tipo di entità di dimensione con entità gigante (un aggettivo), potresti considerare l'aggiunta di giganti (un sostantivo) come esclusione.