Esistono diverse opzioni per le entità che modificano il comportamento della corrispondenza delle entità e dell'estrazione dei dati. Queste opzioni sono preconfigurate per le entità di sistema, quindi non puoi modificarle per queste entità. Tuttavia, puoi modificarle per le tue entità personalizzate. Puoi creare diversi tipi di entità, a seconda delle opzioni selezionate:
- Entità mappa
- Entità elenco
- Entità composita (un tipo speciale di entità elenco)
- Entità Regexp
Esistono altre opzioni che non determinano il tipo di entità, ma influiscono sul comportamento della corrispondenza delle entità:
Questo documento descrive ciascuna di queste opzioni.
Dove trovare questi dati
Quando crei un agente, è più comune utilizzare la console Dialogflow CX (consulta la documentazione, apri la console). Le istruzioni riportate di seguito si concentrano sull'utilizzo della console. Per accedere ai dati delle opzioni delle entità:
- Apri la console Dialogflow CX.
- Scegli il tuo Google Cloud progetto.
- Seleziona l'agente.
- Seleziona la scheda Gestisci.
- Fai clic su Tipi di entità.
- Visualizza le seguenti opzioni per le entità esistenti (alcune di queste potrebbero essere visibili solo dopo aver espanso Opzioni avanzate):
- Solo entità (nessun sinonimo)
- Entità Regexp
- Aggiungi automaticamente le entità
- Corrispondenza parziale
- Oscura nel log
- Esclusioni di entità
Se crei un agente utilizzando l'API anziché la console, consulta il tipo EntityType.
I nomi dei campi 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 |
| Vai | 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à mappa forniscono una mappa dai valori di riferimento ai sinonimi per ogni valore di riferimento. Ogni voce di entità mappa contiene un singolo valore di riferimento e un elenco di sinonimi. Facoltativamente, puoi anche impostare un pattern DTMF per ogni entità.
Ad esempio, ognuna delle seguenti righe è una voce di entità per un tipo di entità size:
| Entità | Sinonimi | Pattern DTMF |
|---|---|---|
| S | S, small, tiny, little | |
| M | M, medium, average | |
| L | L, large, huge, big |
Tieni presente che il valore di riferimento è incluso nell'elenco dei sinonimi per ogni voce di entità sopra. Affinché un valore di riferimento corrisponda, deve essere incluso come sinonimo. Quando inserisci inizialmente un valore di riferimento con la console, questo viene aggiunto automaticamente come sinonimo.
Se una delle parti di input utente finale corrisponde a uno dei sinonimi, il valore di riferimento associato viene estratto per la corrispondenza e utilizzato per risolvere il valore del parametro associato.
È possibile che il valore di riferimento venga omesso dall'elenco dei sinonimi. Ciò significa semplicemente che non corrisponde a una parte di input utente finale, ma viene utilizzato come valore estratto quando viene trovato un sinonimo. Questa opzione è utile 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 agli input di data comuni come "1° gennaio 2015" o "Il primo gennaio 2015".
Entrambi gli input vengono mappati a un valore di riferimento in formato ISO-8601: "2015-01-01T12:00:00-03:00".
Per creare un'entità mappa:
- Utilizzando la console, deseleziona l'opzione Entità Regexp e l'opzione Solo entità.
- Utilizzando l'API, imposta il campo
EntityType.kindsuKIND_MAP.
Utilizzare la generazione AI per generare automaticamente i sinonimi
Anziché inserire i sinonimi manualmente, puoi utilizzare un generatore AI per generare automaticamente i sinonimi per il valore di riferimento. Per farlo, seleziona la casella di controllo Genera automaticamente X sinonimi per entità quando crei un nuovo valore di riferimento. Il valore predefinito è 3 sinonimi. La generazione di più di 15 sinonimi alla volta può causare errori. Come best practice, assicurati di compilare il campo Descrizione del tipo di entità per generare sinonimi più accurati per il valore di riferimento.
Per informazioni sull'utilizzo di questa funzionalità per generare e tradurre automaticamente i dati per le lingue non predefinite, consulta la documentazione sugli agenti multilingue
Entità elenco
Le entità elenco forniscono un elenco di voci di entità a valore singolo.
Non hanno valori di riferimento e sinonimi.
Ad esempio, ognuna delle seguenti righe è una voce di entità per un tipo di entità material:
| Valore |
|---|
| fabric |
| wood |
| metal |
Se una parte di input utente finale corrisponde a un valore, questo viene estratto per la corrispondenza e utilizzato per risolvere il valore del parametro associato.
Molte entità di sistema sono entità elenco.
Ad esempio, l'entità di sistema @sys.color corrisponde agli input di colore comuni come "rosso" o "blu".
Quando viene trovato un colore, il valore estratto non viene mappato a nessun valore di riferimento.
Ad esempio, le tonalità di rosso, come "scarlatto" o "cremisi", non vengono mappate a "rosso" e vengono estratte come valori originali "scarlatto" e "cremisi".
Per creare un'entità elenco:
- Utilizzando la console, deseleziona l'opzione Entità Regexp e seleziona l'opzione Solo entità.
- Utilizzando l'API, imposta il campo
EntityType.kindsuKIND_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 contenere anche altri tipi di entità. Quando si fa riferimento a un tipo di entità in un altro tipo di entità, il riferimento viene chiamato alias. Quando un'entità elenco contiene alias ad altri tipi di entità, viene chiamata entità composita.
Quando crei un alias, fornisci il nome del tipo di entità a cui fai riferimento e un nome di proprietà a tua scelta. Quando un'entità composita viene trovata in fase di runtime, il valore estratto viene restituito come oggetto JSON, con i nomi delle proprietà alias utilizzati come nomi delle proprietà JSON. Il formato per l'inserimento di un alias è:
@entity-name:property-name
Ad esempio, potresti 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 trovato 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 Direction:
| Valore di riferimento | Sinonimi |
|---|---|
| forward | forward, forwards |
| back | back, backward, backwards |
Tipo di entità elenco personalizzata Move:
| Valore |
|---|
| @sys.number:steps steps @direction:direction |
Se l'entità move corrisponde a un input utente finale che contiene "five steps backward", l'entità move verrà trovata.
Il valore estratto viene restituito come:
{"steps": 5, "direction": "back"}.
Molte entità di sistema sono entità composite.
Ad esempio, l'entità di sistema @sys.unit-currency viene utilizzata per trovare gli importi di denaro con un nome di valuta.
Corrisponde agli input dell'utente finale come "50 euro" o "venti dollari e cinque centesimi".
Il valore estratto viene restituito come oggetto JSON:
{"amount": 50, "currency": "EUR"}
Entità Regexp
Con le entità Regexp, puoi fornire espressioni regolari per la corrispondenza. Per saperne di più, consulta Entità Regexp.
Per creare un'entità Regexp:
- Utilizzando la console, seleziona l'opzione Entità Regexp.
- Utilizzando l'API, imposta il campo
EntityType.kindsuKIND_REGEXP.
Espansione automatica (aggiungi automaticamente le entità)
Puoi attivare l'espansione automatica per un tipo di entità personalizzata. Quando è attivata, l'agente può riconoscere i valori che non sono stati forniti esplicitamente. Ad esempio, considera un tipo di entità elenco acquisti:
| Valore |
|---|
| pane |
| butter |
| milk |
| apple |
| ice cream |
Se un input utente finale è "I need to buy some carrots", "carrots" verrà trovato per questo tipo di entità, anche se non è stato fornito. L'agente riconosce che "carrots" è simile in base al contesto ad altri valori.
Quando valuti l'espansione automatica, devi seguire le best practice:
- L'attivazione dell'espansione automatica non garantisce l'estrazione delle entità. Per un elenco finito, devi fornire l'elenco completo anziché un elenco parziale e attivare 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 diversi che coprano tutti i casi d'uso in cui una determinata entità può essere trovata nel traffico previsto dell'agente. Se non sono presenti esempi sufficienti, l'espansione automatica delle entità potrebbe non funzionare come previsto.
Per attivare l'espansione automatica:
- Utilizzando la console, seleziona l'opzione Aggiungi automaticamente le entità.
- Utilizzando l'API, imposta il campo
EntityType.autoExpansionModesuAUTO_EXPANSION_MODE_DEFAULT.
Corrispondenza parziale
Puoi attivare la corrispondenza parziale per un'entità personalizzata. Con la corrispondenza parziale attivata, l'ordine delle parole in un valore o in un sinonimo non ha importanza. Per saperne di più, consulta Corrispondenza parziale.
Per attivare la corrispondenza parziale:
- Utilizzando la console, seleziona l'opzione Corrispondenza parziale.
- Utilizzando l'API, imposta il campo
EntityType.enableFuzzyExtractionsutrue.
Oscura nel log
Se attivi l'oscuramento delle entità, tutti i valori dei parametri estratti in fase di runtime per il tipo di entità verranno oscurati durante la registrazione.
In alternativa, puoi oscurare i singoli parametri.
Esclusioni di entità
Puoi aggiungere esclusioni di entità, ovvero frasi che non devono essere trovate. Ad esempio, se hai un tipo di entità size con l'entità giant (un aggettivo), potresti prendere in considerazione l'aggiunta di giants (un sostantivo) come esclusione.