Entità di sistema
Informazioni sulle entità di sistema fornite da IBM per l'utilizzo predefinito. Queste entità del programma di utilità integrate aiutano il tuo assistente a riconoscere i termini e i riferimenti che sono più comunemente utilizzati dai clienti nella conversazione, come i numeri e le date.
Per informazioni su come aggiungere entità di sistema alla finestra di dialogo, vedere Creazione di entità.
Entità @sys-currency
L'entità di sistema @sys-currency
rileva le citazioni di valori monetari nell'input utente. La valuta può essere espressa con un simbolo di valuta o termini specifici della valuta. In entrambi i casi, viene restituito un numero.
Formati riconosciuti
- 20 centesimi
- Cinque dollari
- $10
Attributi
.literal
: frase esatta nell'input che viene interpretata come una citazione di valuta..numeric_value
: valore numerico canonico come un numero intero o un doppio, in unità di base..location
: elenca i valori dell'elemento indice della prima e ultima lettera nella stringa di testo per la frase interpretata come una citazione di valuta..unit
: Unità di base della valuta, specificata come codice ISO a 3 lettere. Ad esempio,USD
oEUR
.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio (input = twenty dollars ) |
Esempio (input = $1,234.56 ) |
---|---|---|---|
@sys-currency | stringa | 20 |
1234.56 |
@sys-currency.literal | stringa | twenty dollars |
$1,234.56 |
@sys-currency.numeric_value | numero | 20 |
1234.56 |
@sys-currency.location | array | [0,14] |
[0,9] |
@sys-currency.unit | stringa | USD |
USD |
Per l'input veinte euro
( twenty euro
in spagnolo) o €1.234,56
, @sys-currency restituisce questi valori:
Attributo | Immettere | L'input è veinte euro |
L'input è €1.234,56 |
---|---|---|---|
@sys-currency | stringa | 20 | 1234.56 |
@sys-currency.literal | stringa | veinte euro | €1.234, 56 |
@sys-currency.numeric_value | numero | 20 | 1234.56 |
@sys-currency.location | array | [0,11] | [0,9] |
@sys-currency.unit | stringa | EUR | EUR |
Vengono restituiti risultati equivalenti per altre lingue supportate e valute nazionali.
Suggerimenti sull'utilizzo di @sys-currency
Se utilizzi l'entità @sys-currency
come condizione del nodo e l'utente specifica $0
come valore, il valore viene riconosciuto correttamente come valuta, ma la condizione viene valutata sul numero zero, non sulla valuta
zero. Di conseguenza, null
nella condizione viene valutato con false e il nodo non viene elaborato. Per controllare i valori di valuta in modo da gestire correttamente gli zeri, nella condizione del nodo utilizza invece l'espressione
@sys-currency OR @sys-currency == 0
.
Per ulteriori informazioni sulle valute riconosciute per lingua, vedi Supporto valuta.
@sys-date
L'entità di sistema @sys-date
rileva le citazioni di date nell'input utente. Il valore della data viene memorizzato come una stringa nel formato yyyy-MM-dd
. Ad esempio, la citazione May 8
viene memorizzata
come "2020-05-08"
. Il sistema amplia gli elementi mancanti di una data (come l'anno per "May 8"
) con i valori di data correnti.
Se si inserisce una data non valida nell'input dell'utente, l'entità di sistema @sys-date
non riconosce la data e visualizza l'errore Invalid date
.
Se si seleziona l'inglese come lingua, il sistema utilizza l'inglese statunitense ( en-us
) come locale. Solo per la locale inglese (Stati Uniti), il formato della data è MM/DD/YYYY
. Il formato della data diventa DD/MM/YYYY
solo se i primi due numeri sono maggiori di 12. Il valore memorizzato ha il formato yyyy-MM-dd
.
Formati riconosciuti
- Venerdì
- oggi
- May 8
Attributi
.alternatives
: salva i valori di data alternativi quando l'input è aperto a interpretazione. Normalmente la data futura viene restituita come valore@sys-date
. Se c'è ambiguità, la data passata viene salvata come un data alternativa. Ad esempio, per l'inputin January
, viene restituita una data futura. Tuttavia, se è febbraio (gennaio è passato per questo anno), allora viene restituito anche il gennaio passato come data alternativa. Una data alternativa viene fornita anche per i giorni della settimana quando ne viene specificato uno senza un modificatore. Ad esempio, per l'inputAre you open Wednesday?
, viene memorizzata la data futura ma viene creata anche una data alternativa del mercoledì precedente. Le date alternative vengono create per frasi che contengono modificatori comenext
,this
olast
, che possono avere significati diversi in locali differenti. Il servizio watsonx Assistant considera le datelast
enext
come riferimenti al giorno precedente o successivo più immediato, che può essere nella stessa settimana o in una settimana precedente. Per alcuni modificatori, viene creata una data alternativa o meno a seconda del giorno della settimana corrente. Ad esempio, forse l'input contienethis Wednesday
. Se è lunedì, la data futura viene memorizzata e non viene creata una data alternativa. Tuttavia, se è mercoledì, allora viene assunto che la data sia il mercoledì della settimana successiva ma la data di oggi viene memorizzata come una data alternativa. Ogni data alternativa viene salvata come un oggetto che contiene un valore e l'affidabilità di ogni data alternativa. Gli oggetti date alternative vengono memorizzati in un array JSON. Per richiamare un valore alternativo, utilizza la sintassi:@sys-date.alternative
..calendar_type
: specifica il tipo di calendario per il fuso orario in uso.GREGORIAN
è l'unico tipo supportato..datetime_link
: vedi Citazioni di data e ora..day
: metodo helper che restituisce il giorno nella data..day_of_week
: restituisce il giorno della settimana nella data come una stringa con caratteri minuscoli..festival
: riconosce i nomi delle festività specifiche della locale e può restituire la data di una festività imminente, ad esempioThanksgiving
,Christmas
eHalloween
. Utilizzare tutte lettere minuscole se è necessario specificare un nome di festività, in una condizione ad esempio (@sys-date.festival == 'thanksgiving'
). Per ulteriori informazioni sulle festività riconosciute, consultare Festivals..granularity
: riconosce le citazioni di intervalli di tempo. Le opzioni sonoday
,weekend
,week
,fortnight
,month
,quarter
eyear
..interpretation
: L'oggetto restituito dall'assistente, che contiene nuovi campi che aumentano la precisione del classificatore di entità del sistema. Puoi omettereinterpretation
dall'espressione che utilizzi per fare riferimento ai relativi campi. Ad esempio, è possibile accedere al valore del campofestival
nell'oggetto interpretazione utilizzando la sintassi abbreviata<? @sys-date.festival ?>
..literal
: frase esatta nell'input che viene interpretata come la data..location
: valori dell'elemento indice della prima e ultima lettera nella stringa di testo per la frase interpretata come una data..month
: metodo helper che restituisce il mese nella data..range_link
: se presente, indica che l'input dell'utente contiene un intervallo di date. I valori di indice di inizio e fine della stringa che include l'intervallo di date vengono salvati come parte del nome del link. Vengono fornite ulteriori informazioni, incluso il ruolo che ciascuna@sys-date
ricopre nella relazione di intervallo. Ad esempio, la data di inizio ha un tipo di ruolo didate_from
mentre la data di finedate_to
. Per controllare un valore di ruolo, puoi utilizzare la sintassi@sys-date.role?.type == 'date_from'
. Se l'input utente implica un intervallo, ma viene specificata solo una data, la proprietàrange_link
non viene restituita, ma viene restituito un tipo di ruolo. Ad esempio, se l'utente chiede aHave you been open since yesterday
. La data yesterday viene riconosciuta come la citazione@sys-date
e viene restituito per essa un ruolo di tipodate_from
. Viene restituito anche unrange_modifier
che identifica la parola nell'input che attiva l'identificazione di un intervallo. In questo esempio, il modificatore èsince
..relative_{timeframe}
: riconosce ed acquisisce le citazioni di valori di data relativi nell'input dell'utente. Restituisce un numero che mostra il numero di unità tra ora e la data specificata. Le unità {time frame} possono essereyear
,month
,week
,weekend
, oday
..specific_{timeframe}
: riconosce ed acquisisce le citazioni di unità di date specifiche nell'input utente. Le unità {time frame} possono essereyear
,quarter
,month
,day
, oday_of_week
..year
: metodo helper che restituisce l'anno nella data.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio |
---|---|---|
@sys-date | stringa | Se l'input è May 13, 2020 , restituisce 2020-05-13 . |
@sys-date.alternatives | array | Ad esempio, se la data odierna è 10 March 2019 e l'utente inserisce on March 1 , la data del 1st marzo del prossimo anno viene salvata come @sys-date ( 2020-03-01 ). Tuttavia, l'utente
potrebbe intendere il 1st marzo 2019. Il sistema salva anche la data di quest'anno (2019-03-01 ) come un valore di data alternativo. Un altro esempio, se oggi è martedì e un utente immette, this Tuesday o next Tuesday ,
@sys-date viene impostata sulla data del martedì della settimana successiva e non vengono create delle date alternative. |
@sys-date.calendar_type | stringa | Per qualsiasi citazione di data, restituisce GREGORIAN . |
@sys-date.datetime_link | stringa | N/D |
@sys-date.day | stringa | Se l'input è 13 May 2020 , restituisce 13 . |
@sys-date.day_of_week | stringa | Se l'input è 13 May 2020 ed è mercoledì, restituisce wednesday . |
@sys-date.festival | stringa | Se l'input contiene Thanksgiving Day , allora viene restituito 2020-11-26 . |
@sys-date.granularity | stringa | Se l'input cita next year , restituisce year . |
@sys-date.literal | stringa | Se l'input è I plan to leave on Saturday. , allora viene restituito on Saturday . |
@sys-date.location | array | Se l'input è My vacation starts tomorrow. , restituisce [19, 27] . |
@sys-date.month | stringa | Se l'input è 13 May 2020 , restituisce 5 . |
@sys-date.range_link | stringa | Ad esempio, l'input potrebbe essere I will travel from March 15 to March 22 . Ogni entità @sys-date che viene rilevata ha una proprietà range_link nel suo output che viene denominata date_range_14_39 in cui l'ubicazione del testo di intervallo di date è [14,39] . La data di inizio (2020-05-15 ) ha un tipo di ruolo date_from . La data di fine (2020-05-22 ) ha un tipo di ruolo date_to . |
@sys-date.relative_{timeframe} | numero | Se l'input è two weeks ago , restituisce relative_week = -2 . Se l'input è this weekend , restituisce relative_weekend = 0 . Se l'input è today , restituisce relative_day = 0 . |
@sys-date.specific_{timeframe} | stringa | Per 2020 , restituisce specific_year = 2020 . Per Q2 2020 o second quarter 2020 , restituisce specific_quarter = 2 . Per March , restituisce specific_month = 3 .
Per Monday , restituisce specific_day_of_week = monday . Per May 3rd , restituisce specific_day = 3 . |
@sys-date.year | stringa | Se l'input è 13 May 2020 , restituisce 2020 . |
@sys-time
L'entità di sistema @sys-time
rileva le citazioni di ore nell'input utente. Restituisce l'ora che viene specificata nell'input utente nel formato HH:mm:ss
. Ad esempio, "13:00:00"
per 1pm
.
Formati riconosciuti
- 2pm
- at 4
- 15:30
Attributi
.alternatives
: Cattura orari diversi da quello salvato come valore@sys-time
che l'utente potrebbe intendere quando l'ora non è chiaramente indicata. I valori alternativi vengono salvati come un oggetto che contiene un valore e l'affidabilità di ogni ora alternativa e viene archiviato in un array JSON. Per richiamare un valore alternativo, utilizza la sintassi:@sys-time.alternative
..calendar_type
: specifica il tipo di calendario per il fuso orario in uso.GREGORIAN
è l'unico tipo supportato..granularity
: riconosce le citazioni di intervalli di tempo. Le opzioni sonohour
,minute
,second
einstant
..hour
: il metodo helper che restituisce l'ora specificata nel tempo come un valore numerico..interpretation
: L'oggetto restituito dall'assistente, che contiene nuovi campi che aumentano la precisione del classificatore di entità del sistema. Puoi omettereinterpretation
dall'espressione che utilizzi per fare riferimento ai relativi campi. Ad esempio, è possibile accedere al valore del campogranularity
nell'oggetto interpretazione utilizzando la sintassi abbreviata<? @sys-time.granularity ?>
..literal
: Frase esatta nell'input che viene interpretata come l'ora..location
: elenca i valori dell'elemento indice della prima e ultima lettera nella stringa di testo per la frase interpretata come una citazione di ora..minute
: il metodo helper che restituisce il valore di minuto specificato nell'ora..part_of_day
: riconosce i termini che rappresentano l'ora del giorno, ad esempiomorning
,afternoon
,evening
,night
onow
. Imposta anche un intervallo di tempo per ogni parte del giorno. La risposta contiene due valori@sys-time
, uno per l'inizio e uno per la fine dell'intervallo di tempo. L'array di entità contiene un oggettorange_link
con i tipi di ruolotime-from
etime-to
. Gli intervalli di tempo per parti diverse del giorno possono essere diversi in base alla locale. Per l'inglese americano, il mattino è da6:00:00
a12:00:00
. Il pomeriggio va dalle12:00:00
alle18:00:00
. La sera va dalle18:00:00
alle22:00:00
. La notte va dalle22:00:00
alle23:59:59
. La notte termina appena prima la mezzanotte perché altrimenti si sovrapporrebbe a un nuovo giorno che viene misurato da@sys-date
..range_link
: se presente, indica che l'input dell'utente contiene un intervallo di ore. I valori di indice di inizio e fine della stringa che include l'intervallo di ore vengono salvati come parte del nome del link. Vengono fornite ulteriori informazioni, incluso il ruolo che ciascuna@sys-time
ricopre nella relazione di intervallo. Ad esempio, l'ora di inizio ha un tipo di ruolo ditime_from
mentre l'ora di finetime_to
. Per controllare un valore di ruolo, puoi utilizzare la sintassi@sys-time.role?.type == 'time_from'
. Se l'input utente implica un intervallo, ma viene specificata solo un'ora, la proprietàrange_link
non viene restituita, ma viene restituito un tipo di ruolo. Viene restituito anche unrange_modifier
che identifica la parola nell'input che attiva l'identificazione di un intervallo..relative_{timeframe}
: riconosce le citazioni correlate all'ora e restituisce un numero che mostra il numero di unità tra ora e la data specificata. Le unità {timeframe} possono esserehour
,minute
osecond
..second
: il metodo helper che restituisce il valore di secondo specificato nell'ora..specific_{timeframe}
: riconosce ed acquisisce le citazioni di unità di ore specifiche nell'input utente. Le unità {timeframe} possono esserehour
,minute
osecond
.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio |
---|---|---|
@sys-time | stringa | Per l'input 6:30 PM , restituisce 18:30:00 . |
@sys-time.alternatives | array | Se un utente dice The meeting is at 5 , il sistema calcola l'ora come 5:00:00 o 5 AM e la salva come @sys-time . Tuttavia, l'utente potrebbe intendere 17:00:00 o 5 PM .
Il sistema salva anche la data successiva come un valore di ora alternativo. Se l'utente immette The meeting is at 5pm , @sys-time viene impostato su 17:00:00 e non viene creato alcun valore alternativo
perché non c'è confusione tra AM e PM. |
@sys-time.calendar_type | stringa | Per qualsiasi citazione di ora, restituisce GREGORIAN . |
@sys-time.granularity | stringa | Se l'input è now , restituisce instant . Per 3 o'clock o noon , restituisce hour . Per 17:00:00 , restituisce second . |
@sys-time.hour | numero | Se l'input contiene 5:30:10 PM , restituisce 17 per rappresentare 5 PM. |
@sys-time.literal | stringa | Per l'input The store closes at 8PM , restituisce at 8PM . |
@sys-time.location | array | Per l'input The store closes at 8PM , restituisce [17, 23] . |
@sys-time.minute | numero | Se l'input cita l'ora 5:30:10 PM , restituisce 30 . Se non sono specificati dei minuti, questo helper restituisce 0 . |
@sys-time.part_of_day | stringa | Se l'input è this morning , restituisce due valori @sys-time, 6:00:00 e 12:00:00 . Restituisce anche un oggetto range_link con i tipi di ruolo time-from e time-to . |
@sys-time.range_link | stringa | Per l'input Are you open from 9AM to 11AM , vengono rilevate due entità @sys-time . Ogni entità @sys-time rilevata ha una proprietà range_link nel suo output. Se un intervallo è implicito
ma viene fornito solo un valore di ora, allora viene restituito solo un valore @sys-time . Per l'input Are you open until 9PM , 9PM viene riconosciuto come citazione @sys-time e viene restituito
per essa un ruolo di tipo time_to . range_modifier in questo esempio è until . |
@sys-time.relative_{timeframe} | numero | Per 5 hours ago , restituisce relative_hour = -5 . Per in two minutes , restituisce relative_minute = 2 . Per in a second , restituisce relative_second = 1 . |
@sys-time.second | numero | Se l'input cita l'ora 5:30:10 PM , restituisce 10 . Se non sono specificati dei secondi, questo helper restituisce 0 . |
@sys-time.specific_{timeframe} | stringa | Per at 5 o'clock , restituisce specific_hour = 5 . Per at 2:30 , restituisce specific_minute = 30 . Per 23:30:22 , restituisce specific_second = 22 . |
Citazioni di data e ora
Alcuni input utente contengono informazioni che includono dettagli sia sulla data che sull'ora. Il tuo assistente acquisisce entrambi i valori e li salva come due citazioni di entità separate, @sys-date
e @sys-time
.
La relazione tra i valori di data e ora viene stabilita in due modi:
- Ogni entità che partecipa alla relazione contiene lo stesso attributo
datetime_link
. - La stringa letterale che include la citazione di data e ora completa, quando sono citate insieme nell'input, è la stessa per entrambe le entità. Le informazioni sull'ubicazione vengono accodate al nome
datetime_link
.
Formati riconosciuti
- now
- two hours from now
- on Monday at 4pm
Attributi
.datetime_link
: Se presente, indica che l'input dell'utente menziona una data e un'ora insieme, il che implica che la data e l'ora sono collegate tra loro. I valori di indice di inizio e fine della stringa che include la data e l'ora vengono salvati come parte del nome del link.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio |
---|---|---|
@sys-date.datetime_link e @sys-time.datetime_link |
stringa | Se l'input è, Are you open today at 5? , allora today viene riconosciuto come una menzione di data ( 2020-05-21 ) nella posizione [13,18] e at 5 viene riconosciuto come
una menzione di tempo ( 05:00:00 ) nella posizione [19,23] . Un valore di posizione di [13,23] , che si estende ad entrambe le citazioni di data e ora, viene accodato al datetime_link risultante. Viene denominato datetime_link_13_23 e viene incluso nell'output delle entità @sys-date e @sys-time che partecipano alla relazione. |
Fusi orari
Le citazioni di una data o un'ora relative all'ora corrente vengono risolte per un fuso orario scelto. Per impostazione predefinita, il fuso orario è Greenwich Mean Time (GMT). Pertanto, i client API REST che si trovano in fusi orari diversi
acquisiscono il Coordinated Universal Time corrente quando now
viene citato nell'input.
Facoltativamente, il client API REST può aggiungere il fuso orario locale come variabile di contesto $timezone
. Questa variabile di contesto deve essere inviata con ogni richiesta del client. Ad esempio, il valore $timezone
può essere America/Los_Angeles
, EST
o UTC
. Per un elenco completo di fusi orari supportati, vedi Fusi orari supportati.
Quando viene fornita la variabile $timezone
, i valori delle menzioni relative @sys-date
e @sys-time
vengono calcolati in base al fuso orario del client anziché al Tempo Universale Coordinato.
Per informazioni sull'elaborazione dei valori di data e ora, vedi il riferimento al metodo Data e ora.
Entità @sys-number
L'entità di sistema @sys-number
rileva le citazioni di numeri nell'input utente. Il numero può essere scritto con numeri o parole. In entrambi i casi, viene restituito un numero.
Formati riconosciuti
- 21
- twenty one
- 3.13
Attributi
.literal
: frase esatta nell'input che viene interpretata come il numero..location
: valori dell'elemento indice della prima e ultima lettera nella stringa di testo interpretata come un numero..numeric_value
: valore numerico canonico come un numero intero o un doppio..range_link
: se presente, indica che l'input dell'utente contiene un intervallo di numeri. Il valore di posizione del testo che specifica l'intervallo viene accodato al nome del link. Vengono fornite ulteriori informazioni, incluso il ruolo che ciascuna@sys-number
ricopre nella relazione di intervallo. Ad esempio, il numero iniziale ha un tipo di ruolo dinumber_from
mentre il numero finalenumber_to
. Per controllare un valore di ruolo, puoi utilizzare la sintassi@sys-number.role?.type == 'number_from'
.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio |
---|---|---|
@sys-number | stringa | Se l'input è twenty , restituisce 20 . Se l'input è 1,234.56 , restituisce 1234.56 . |
@sys-number.literal | stringa | Se l'input è twenty , restituisce twenty . Se l'input è 1,234.56 , restituisce 1,234.56 . |
@sys-number.location | array | Se l'ingresso è twenty , restituisce [0,6]. Se l'ingresso è 1,234.56 , restituisce [0,8] |
@sys-number.numeric_value | numero | Se l'input è twenty , restituisce 20 . Se l'input è 1,234.56 , restituisce 1234.56 . |
@sys-number.range_link | stringa | Se l'input è I'm interested in 5 to 7. . Ognuna delle due entità di sistema @sys-number che viene rilevata ha un range_link di number_range_18_24 nel proprio output. La prima entità
@sys-number (5 ) ha un tipo di ruolo number_from . L'ultima entità @sys-number (7 ) ha un tipo di ruolo number_to . |
Suggerimenti sull'utilizzo di @sys-number
-
Se utilizzi l'entità @sys-number come condizione del nodo e l'utente specifica zero come valore, il valore 0 viene riconosciuto correttamente come un numero. Tuttavia, lo 0 viene interpretato come un valore
null
per la condizione, il che implica che il nodo non viene elaborato. Per controllare i numeri in modo da gestire correttamente gli zeri, nella condizione del nodo utilizza anche l'espressione@sys-number == 0
. L'espressione completa da utilizzare è@sys-number OR @sys-number == 0
. -
Se utilizzi @sys-number per confrontare i valori di numero in una condizione, assicurati di includere separatamente un controllo per la presenza di un numero stesso. Se non viene trovato alcun numero, @sys-number viene valutato come null. Il tuo confronto potrebbe essere valutato come true quando non sono presenti numeri.
Ad esempio, non utilizzare
@sys-number<4
da solo, perché se non viene trovato alcun numero,@sys-number
dà come risultato nullo. Poiché null è inferiore a 4, la condizione viene valutata come true anche se non è presente un numero.Utilizzare invece
(@sys-number OR @sys-number == 0) AND @sys-number < 4
. Se non è presente alcun numero, la prima condizione viene valutata come false. Di conseguenza, l'intera condizione viene valutata come false.
Per ulteriori informazioni sull'elaborazione dei valori numerici, vedi il riferimento al metodo Numeri.
Entità @sys-percentage
L'entità di sistema @sys-percentage
rileva le citazioni di percentuali nell'input utente. La percentuale può essere espressa in un'espressione con il simbolo della percentuale o scritta usando la parola percent
. In
entrambi i casi, viene restituito un valore numerico.
Formati riconosciuti
- 15%
- 10 percent
Attributi
.literal
: frase esatta nell'input che viene interpretata come una percentuale..location
: valori dell'elemento indice della prima e ultima lettera nella stringa di testo interpretata come una citazione di percentuale..numeric_value
: valore numerico canonico come un numero intero o un doppio.range_link
: se presente, indica che l'input dell'utente contiene un intervallo, ad esempiofrom 2 to 3 percent
. Il valore di posizione del testo che specifica l'intervallo viene accodato al nome del link. Vengono fornite ulteriori informazioni, incluso il ruolo che ciascuna@sys-percentage
ricopre nella relazione di intervallo. Ad esempio, il numero iniziale ha un tipo di ruolo dinumber_from
mentre il numero finalenumber_to
. Per controllare un valore di ruolo, puoi utilizzare la sintassi@sys-percentage.role?.type == 'number_from'
.
La seguente tabella illustra le informazioni che ogni attributo acquisisce dall'input utente.
Attributo | Immettere | Esempio |
---|---|---|
@sys-percentage | stringa | Se l'input contiene 1,234.56% , restituisce 1234.56 . |
@sys-percentage.literal | stringa | Se l'input contiene 50 percent restituisce 50 percent . |
@sys-percentage.location | array | Se l'input contiene from 2 to 3 percent , restituisce [0,19] . |
@sys-percentage.numeric_value | numero | Se l'input contiene 50 percent restituisce 50 . |
@sys-percentage.range_link | stringa | Se l'input contiene from 2 to 3 percent , restituisce number_range_0_19 . |
Suggerimenti sull'utilizzo di @sys-percentage
-
Se si utilizza l'entità @sys-percentage come condizione del nodo e l'utente specifica
0%
come valore, il valore viene riconosciuto correttamente come percentuale, ma la condizione viene valutata sul numero zero e non sulla percentuale 0%. Di conseguenza,null
nella condizione viene valutato con false e il nodo non viene elaborato. Per controllare le percentuali in modo da gestire correttamente le percentuali di zero, nella condizione del nodo utilizza invece l'espressione@sys-percentage OR @sys-percentage == 0
. -
Se immetti un valore come
1-2%
, i valori1%
e2%
vengono restituiti come entità di sistema.
Utilizzo delle entità di sistema nelle condizioni
In un nodo che genera condizioni sull'intento #Customer_Care_Store_Hours
, puoi aggiungere ulteriori risposte condizionali che utilizzano le nuove proprietà dell'entità di sistema per fornire risposte leggermente diverse sugli orari
del negozio a seconda di cosa chiede l'utente.
Probabilmente non desideri utilizzare tutte queste risposte condizionali in un dialogo reale; sono qui descritte semplicemente per illustrare le varie possibilità.
Sintassi condizione risposta condizionale | Descrizione | Testo risposta di esempio |
---|---|---|
@sys-date.festival == 'thanksgiving' |
Controlla se il cliente sta chiedendo informazioni sugli orari del particolare giorno Thanksgiving. | We give out free meals to those in need on Thanksgiving Day. |
@sys-date.festival |
Controlla se il cliente sta chiedendo informazioni sugli orari di un'altra festività specifica. | We are closed on Christmas Day, July 4th, and President's Day. On other holidays, we are open from 10AM to 5PM. |
@sys-time.part_of_day == 'night' |
Controlla se l'utente include un qualsiasi termine che menziona night come ora del giorno nell'input. | We are not open late; we close at 9PM most days. |
@sys-date.datetime_link && input.text.contains('today') && now().sameOrAfter(@sys-time) |
Verifica se l'input contiene una frase come today at 8 . Controlla inoltre se il @sys-time rilevato è precedente all'ora del giorno corrente. È possibile aggiungere una variabile di contesto alla risposta condizionale
che crea una variabile $new_time con il valore <? @sys-time.plusHours(12) ?> . È possibile utilizzare questo approccio per creare una variabile di data che acquisisca l'ora più probabile indicata da un
utente che, a mezzogiorno, chiede Are you open today at 8 . Il sistema presume che l'utente significhi 8AM anziché 8PM. |
You mean today at $new_time, correct? |
@sys-time.range_link && entities[0].role?.type == 'time_from' && entities[1].role?.type == 'time_to' |
Controlla se l'input contiene un intervallo di ore. La condizione si assicura anche che la prima entità del sistema @sys-time elencata nell'array di entità sia l'ora di inizio e che la seconda sia l'ora di fine prima di includerle
nella risposta. |
Vuole sapere se siamo aperti tra <? entities[0] ?> e <? entities[1] ?> , è corretto? |
@sys-time && entities.size() < 2 && entities[0].role?.type == 'time_to' |
Controlla se l'input contiene una citazione @sys-time che ha un tipo di ruolo time_to . Se l'input utente corrisponde a questa condizione, suggerisce che l'utente ha specificato l'ora di fine di un intervallo di
tempo aperto. Ad esempio, la risposta verrebbe attivata dall'ingresso Are you open until 9pm? . Questo input corrisponde perché identifica solo un'ora in una suddivisione di tempo e la citazione ha un ruolo time_to . |
Intende da oggi ( <? now().reformatDateTime('h:mm a') ?> ) fino a <? @sys-time.reformatDateTime('h:mm a') ?> ? |
@sys-date.day_of_week == 'sunday' |
Controlla se una data specifica richiesta dall'utente cade di domenica. | We are closed on Sundays. |
@sys-date.specific_day_of_week == 'monday' && @sys-date.alternative |
Controlla se l'utente ha menzionato il giorno della settimana Monday nella sua domanda. Ad esempio, Are you open Monday . La condizione controlla anche se sono state archiviate delle date alternative. Le date alternative
vengono create quando il tuo assistente non è completamente sicuro di quale lunedì l'utente stia parlando, per cui archivia anche le date dei lunedì alternativi. Quando un utente specifica un giorno della settimana, il tuo assistente
assume che l'utente intenda la ricorrenza futura del giorno (il lunedì successivo). Puoi aggiungere una risposta che ricontrolli la data intesa, tramite il valore alternativo rilevato. In questo caso, la data alternativa è la data del
lunedì precedente. |
Do you mean @sys-date or @sys-date.alternative ? |
true |
Risponde a tutte le altre richieste per informazioni sugli orari del negozio. | We're open from 9AM to 9PM Monday through Saturday. |