Lingua

Questi sono i componenti disponibili nella categoria Lingua dell'editor di flussi di finestre di dialogo basato su YAML.

System.Intent

Questo componente rileva l'intento dell'utente ed estrae tutte le entità, quindi attiva uno stato successivo.
Nota

Questo componente non è disponibile per gli skill sviluppati con Visual Flow Designer. Gli intenti vengono invece risolti automaticamente quando non è presente alcun flusso attivo. Vedere Rilevamento e risoluzione degli intenti.
Proprietà descrizione; Richiesto?
variable Contiene il valore che il framework di elaborazione della lingua risolve dall'input dell'utente. Ad esempio, i bot skill di esempio definiscono questa proprietà come variable=iResult (con iResult: "nlpResult" definito come una delle variabili context). Non è necessario assegnare un nome alla variabile iResult. Questo nome è una convenzione utilizzata nel codice di esempio e nelle competenze di esempio. Qualunque sia il nome di variabile utilizzato per nlpResult, assicurarsi di utilizzarlo in modo coerente nel flusso della finestra di dialogo.
optionsPrompt Titolo dell'elenco di intenti quando si imposta un valore per l'opzione Margine vincita. Per impostazione predefinita, questo valore di stringa è Do you want to.

Il valore predefinito per questa proprietà viene memorizzato nel bundle di risorse dello skill. Per modificarla, fare clic su Icona Bundle risorse, selezionare la scheda Configurazione e aggiornare la chiave Intento - optionsPrompt. Se si utilizza il bundle di risorse dello skill per modificare il messaggio predefinito, non è necessario includere la proprietà nel componente a meno che non si desideri eseguire l'override dell'impostazione predefinita.

No
botName Il nome (non il nome visualizzato) dello skill che risolve l'intento. Utilizzare questa proprietà se si decide di risolvere l'input utente utilizzando il modello di uno skill separato anziché lo skill corrente. L'utilizzo di questo approccio può risultare utile se si desidera risolvere l'intento in base a un modello con un dominio definito più restrittiva rispetto al dominio richiesto dal caso d'uso principale. No
botVersion Specifica la versione dello skill. Il valore predefinito è 1.0 (se non si specifica il numero di versione). No
sourceVariable Il framework di elaborazione della lingua risolve l'intento utilizzando sourceVariable come input.

Importante: non è possibile utilizzare questa proprietà in combinazione con la proprietà translate. Per tradurre l'input rappresentato da sourceVariable, è possibile utilizzare System.TranslateInput.

No
daIntercept Per le chiamate a System.Intent, determina se l'assistente digitale può intercettare e reindirizzare l'input dell'utente ad altre competenze. Questi sono i valori possibili:
  • always (impostazione predefinita): consente all'assistente digitale di intercettare l'input, anche se il flusso corrente non è terminato. Ciò consente all'assistente digitale di gestire le interruzioni che suggeriscono di passare a un altro flusso.
  • never: impedisce all'assistente digitale di intercettare l'input utente. Per ulteriori informazioni sul caso d'uso per l'impostazione di questo valore, vedere Applica chiamate al componente System.Intent di una competenza.
Questa proprietà viene ignorata se lo skill non appartiene a un assistente digitale.
No
translate Sostituisce qui il set di valori per la variabile di contesto autoTranslate. Se autoTranslate non è impostato o è impostato su false, è possibile impostare questa proprietà su true per abilitare la traduzione automatica solo per questo componente. Se la variabile di contesto autotranslate è impostata su true, è possibile impostare questa proprietà su false per escludere questo componente dalla traduzione automatica.

Importante: non è possibile utilizzare questa proprietà in combinazione con la proprietà sourceVariable. Per tradurre l'input rappresentato da sourceVariable, è possibile utilizzare System.TranslateInput.

No

Proprietà domande e risposte per il componente System.Intent

Queste sono proprietà facoltative per l'instradamento domande e risposte.
Proprietà descrizione; Tipo di dati Valore predefinito
qnaEnable Abilita il routing per il modulo Q&A. Se si imposta questa opzione su true (instradamento abilitato), è necessario definire anche l'azione di transizione Q&A (none o exit). Vedere Transizioni domande e risposte. boolean false
qnaBotName Il nome (non il nome visualizzato) dello skill con il modulo Q&A. Se non si definisce questa proprietà, verrà utilizzato il valore definito per la proprietà botName del componente System.QnA. stringa N/A
qnaBotVersion La versione della competenza con il modulo Q&A. Per impostazione predefinita, è 1.0. Si tratta di un valore facoltativo int N/A
qnaTimeout Periodo di tempo, in millisecondi, durante il quale lo skill attende che il server Q&A risponda all'input dell'utente. esteso 5000
qnaUseResult L'impostazione di questa opzione su true (impostazione predefinita) consente di eseguire una query sul server Q&A con l'input dell'utente. Lo skill utilizza quindi i risultati di questa query (le corrispondenze) per impostare l'instradamento. Quando si imposta questa proprietà su true, lo skill visualizzerà il collegamento Visualizza risposte solo quando sono presenti corrispondenze. Impostandolo su false, viene sempre visualizzato il collegamento Visualizza risposte. boolean true
qnaSkipIfIntentFound Quando è impostato su true, lo skill ignora le domande e le risposte quando esiste una corrispondenza di intenti. Il valore predefinito (false) consente di eseguire una query sul server QnA con le espressioni utente e di presentare anche QnA come opzione. boolean false
optionsPrompt

Le domande e risposte vengono visualizzate se sono abilitate per il componente System.Intent e viene trovata una corrispondenza.

Suggerimento: per le lingue straniere (non inglesi), fare riferimento a un bundle di risorse. Vedere Riferimento dei bundle di risorse nel flusso della finestra di dialogo

stringa Do you want to
optionsQnaLabel

Etichetta per l'azione nelle opzioni (optionsPrompt) che porta l'utente al componente System.QnA per visualizzare le corrispondenze.

Suggerimento: per le lingue straniere (non inglesi), fare riferimento a un bundle di risorse. Vedere Riferimento dei bundle di risorse nel flusso della finestra di dialogo

stringa Questions
qnaMatchFields Imposta i campi di domande e risposte utilizzati per corrispondere al messaggio utente. I valori validi includono:
  • all
  • categories
  • questions
  • answers
  • categories+questions
È possibile immettere questi valori come lista separata da virgole
stringa all
qnaMinimumMatch

Imposta la percentuale minima e massima di token che qualsiasi coppia di domande e risposte deve contenere per essere considerata una corrispondenza.

Per restituire le migliori partite, tokenizziamo le espressioni che Intent Engine risolve come domande. Questi token sono formati da derivazioni di parole e da varie combinazioni di parole. Di conseguenza, un grande insieme di token può essere generato da un enunciato. Per questo motivo, è improbabile che qualsiasi coppia di domande e risposte possa contenere tutte le parole chiave e le varianti. Pertanto, non è consigliabile modificare questa impostazione dal valore predefinito 50%,25%.

Avere il 50% dei token generati (il livello massimo predefinito) significa che la coppia Q&A può essere considerata una corrispondenza pertinente se ha tutte le parole chiave dell'espressione. Se questo livello massimo non può essere raggiunto, allora un livello minimo del 25% sarebbe sufficiente. Se si modificano queste impostazioni, in particolare aumentando il massimo a oltre il 50%, la coppia Q&A non solo dovrà contenere tutte le parole chiave, ma dovrà anche corrispondere a token aggiuntivi.

Detto questo, se vuoi ridurre la possibilità di perdere una corrispondenza pertinente e puoi tollerare la restituzione di partite irrilevanti nel processo, puoi aggiungere una soglia ancora più bassa. Ad esempio 50%,25%,10%.

Se si desidera ridurre al minimo le corrispondenze irrilevanti, è possibile aumentare i livelli (ad esempio, 60%,50%). Tieni presente che ciò potrebbe escludere le coppie di domande e risposte che hanno tutte le parole chiave.

Importante: se non si desidera utilizzare i livelli predefiniti, è necessario impostare la proprietà minimumMatch e l'opzione Soglie di corrispondenza del tester batch Q&A sugli stessi valori. Vedere Batch Test del modulo Q&A.

stringa 50%,25%
qnaUseSourceVariable Quando è impostata su true, la corrispondenza Q&A si basa sul valore memorizzato nella proprietà sourceVariable di System.Qna, non sull'input dell'utente. boolean false

System.MatchEntity

Nota

In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Entità di corrispondenza.

System.MatchEntity richiama Intent Engine per estrarre le informazioni sull'entità dal testo contenuto nella proprietà sourceVariable. Se esiste una corrispondenza per il tipo di entità della variabile, la variabile viene impostata con questo valore di entità.

Proprietà descrizione; Richiesto?
sourceVariable Variabile che contiene il valore di input.
variable Il nome della variabile di contesto. Il valore di questa variabile può essere utilizzato in un componente System.SetVariable successivo per estrarre un'entità specifica utilizzando un'espressione FreeMarker. Ad esempio, per estrarre un valore di entità EMAIL: ${userInputEntities.value.entityMatches['EMAIL'][0]}

Questo componente ha anche due transizioni predefinite: match e nomatch.

Transition descrizione;
match Indica al motore di dialogo di passare a uno stato quando le entità corrispondono.
nomatch Definisce il motore finestre di dialogo per passare a uno stato quando le entità non corrispondono.
Nel seguente snippet, il componente System.MatchEntity corrisponde al valore fornito dall'utente memorizzato nella variabile mailInput rispetto al tipo di entità EMAIL definito per la variabile mailEntity. Se l'input utente soddisfa il tipo di entità in quanto indirizzo di posta elettronica, il componente System.MatchEntity scrive questo valore nella variabile mailEntity richiamata all'utente bot ("You entered ${mailEntity.value.email}"). Quando i valori non corrispondono, il motore della finestra di dialogo passa allo stato nomatch.
Nota

Il componente System.MatchEntity risolve un singolo valore.
context:
  variables:
    iResult: "nlpresult"
    mailInput: "string"
    mailEntity: "EMAIL"
states:
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        displayMailAdresses: "askMail"
        unresolvedIntent: "dunno"
  askMail:
    component: "System.Text"
    properties:
      prompt: "Please provide a valid email address"
      variable: "mailInput"
    transitions:
      next: "matchEntity"
  matchEntity:
    component: "System.MatchEntity"
    properties:
      sourceVariable: "mailInput"
      variable: "mailEntity"
    transitions:
      actions:
        match: "print"
        nomatch: "nomatch"
  print:
    component: "System.Output"
    properties:
      text: "You entered ${mailEntity.value.email}"
    transitions:
      return: "done"
  nomatch:
    component: "System.Output"
    properties:
      text: "All I wanted was a valid email address."
    transitions:
      return: "done"
  dunno:
    component: "System.Output"
    properties:
      text: "I don't know what you want"
    transitions:
      return: "done"

System.DetectLanguage

Nota

In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Detect Language.
Questo componente utilizza il servizio di traduzione per rilevare la lingua dell'utente dall'input utente o dal contenuto salvato in una variabile di contesto a cui fa riferimento una proprietà source:
context:
  variables:
    autoTranslate: "boolean"
    translated: "string"
    someTranslatedText: "string"
states:
  setAutoTranslate:
    component: "System.SetVariable"
    properties:
      variable: "autoTranslate"
      value: true
    transitions:
      next: "detect"
   detect:
    component: "System.DetectLanguage"
    properties:
      source: "someTranslatedText"  
      useExistingProfileLanguageTag: true
    transitions:
      ...
Il componente System.DetectLanguage imposta una variabile denominata profile.languageTag con la stringa delle impostazioni nazionali. È possibile impostare le variabili con la lingua corrente quando si utilizza questa variabile in un'espressione di valore (${profile.languageTag}).
Nota

La variabile profile.languageTag ha la precedenza sulla variabile profile.locale impostata dal client di messaggistica.

La proprietà useExistingProfileLanguageTag viene utilizzata quando uno skill fa parte di un assistente digitale che dispone di un servizio di traduzione. Ciò consente di utilizzare immediatamente la lingua rilevata dall'assistente digitale. In caso contrario, l'abilità potrebbe fornire un messaggio o un prompt in inglese prima che la lingua venga (ri)rilevata. Se lo skill non si trova in un assistente digitale abilitato alla traduzione, la proprietà viene ignorata.

Le variabili profile.locale e profile.languageTag

L'uso di un determinato bundle di risorse e le traduzioni sia per le etichette dell'interfaccia utente che per i messaggi dei componenti stessi dipendono dalla lingua dell'utente memorizzata nelle variabili profile.locale e profile.languageTag.

I modi in cui queste variabili vengono impostate dipendono dalla modalità della lingua dell'abilità:

  • Per gli skill che utilizzano il supporto della lingua nativa, la lingua viene rilevata automaticamente e queste variabili vengono popolate con il valore appropriato, a meno che alle variabili non siano già stati assegnati valori.
  • Per le competenze che utilizzano un servizio di traduzione:
    • Il valore della variabile profile.locale viene derivato dal client di messaggistica dell'utente.
      Nota

      profile.locale supporta i valori nei formati ISO lingua-paese o ISO language_country.
    • Il valore della variabile profile.languageTag viene fornito dal componente System.DetectLanguage.
Nota

Il valore impostato per la variabile profile.locale può determinare i formati specifici delle impostazioni internazionali per le entità DATE, CURRENCY e NUMBER anche quando è stato impostato un valore per la variabile profile.languageTag.
È possibile impostare il valore per entrambe queste variabili (e consentire a queste variabili di impostare valori l'una per l'altra) utilizzando System.SetVariable. Ad esempio:
  • setLocaleToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "de"
  • setLanguageTagToGerman:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "de"
  • setLanguageToVariableValue:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${language_preference_var.value}"
  • setLocaleToLanguageTag:
      component: "System.SetVariable"
      properties:
        variable: "profile.locale"
        value: "${profile.languageTag}"
  • setTagToLocale:
      component: "System.SetVariable"
      properties:
        variable: "profile.languageTag"
        value: "${profile.locale}"

Suggerimento

È possibile implementare una lista di scelte di lingue confrontando il valore delle impostazioni nazionali memorizzato in queste variabili o in una tabella di database utente personalizzata con una lista di lingue supportate. Se la lingua rilevata non è presente in questo elenco, è possibile richiedere all'utente di sceglierne una e quindi impostare profile.languageTag con questo valore.

System.TranslateInput

Nota

In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Traduci input.

Questo componente invia il testo specificato al servizio di traduzione dello skill e quindi memorizza la traduzione in inglese. Si basa sulla competenza configurata con un servizio di traduzione, che riconosce la lingua dall'input dell'utente e la traduce in inglese. Questo componente non funziona con gli skill che utilizzano la modalità lingua supportata in modo nativo.

Utilizzare questo componente quando è necessario elaborare il testo di input raw prima di tradurlo. Ad esempio, potresti voler rimuovere alcuni dati personali dall'input dell'utente prima di inviarli al servizio di traduzione.

Proprietà descrizione; Richiesto?
source Specifica i valori di testo da tradurre in inglese. No
variable Variabile che contiene la traduzione in inglese del testo.

Poiché il componente System.TranslateInput utilizza il servizio di traduzione, che rileva già la lingua dell'utente, questo componente non deve seguire gli stati che rilevano o impostano la lingua come descritto in Aggiungi un servizio di traduzione alla tua competenza. Di conseguenza, è possibile memorizzare la traduzione in inglese dall'input utente diretto o da una variabile source.

Conversione input diretto

Il componente System.TranslateInput memorizza la traduzione in inglese dell'input utente diretto nella proprietà variable. Il seguente frammento di codice mostra come l'input dell'utente come "Hallo, ich bin ein Mensch" nella variabile translatedString viene memorizzato come "Hello, I am a human".
context:
  variables:
     translatedString: “string”
     sourceString: “string”
...

states:
...

  translateInput:
    component: "System.TranslateInput"
      properties:
        variable: "translatedString"

Variabile di origine

Nello snippet seguente, la variabile sourceString contiene l'input utente. (Questo input, ad esempio, potrebbe essere stato raccolto da un componente Risposta comune.) Una volta completata l'elaborazione del file System.TranslateInput, la traduzione in inglese viene memorizzata nella variabile translatedString.
context:
  variables:
    autoTranslate: "boolean" 
    translatedString: "string"
    sourceString: "string"    

   ...

states:
   ...

  translateInputString:
    component: "System.TranslateInput"
    properties:
      source: "sourceString"
      variable: "translatedString"
    transitions: 
      ...
Nota

Il componente System.TranslateInput non può tradurre gli oggetti dati o gli array memorizzati in una variabile di contesto da un componente personalizzato. Questo contenuto può essere tradotto solo quando un componente che utilizza la traduzione automatica fa riferimento alla variabile. Ad esempio, il componente System.TranslateInput non può tradurre un oggetto dati come {”product”: “scissors”, “color”: “silver”} come forbici e argento.

La proprietà sourceVariable

Poiché la proprietà sourceVariable di System.Intent contiene il valore elaborato dal componente, è possibile utilizzarlo con il componente System.TranslateInput per inserire il testo tradotto. Il seguente snippet mostra l'assegnazione del valore della variabile translated in modo che possa essere elaborato dal motore NLP.

  translate:
    component: "System.TranslateInput"
    properties:
      variable: "translated"
    transitions: 
      next: "intent"
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "translated"
...

System.TranslateOutput

Nota

In questo argomento viene descritto l'uso di questo componente in modalità YAML. Per informazioni sull'utilizzo in Visual Flow Designer, vedere Traduci output.
Il componente System.TranslateOutput consente di tradurre il testo nella lingua dell'utente. Il componente assume il valore definito per la proprietà source. Traduce il testo nella lingua rilevata dal componente System.DetectLanguage o dalla variabile profile.locale, quindi lo memorizza nella proprietà variable.
Proprietà descrizione; Richiesto?
source Testo da tradurre o espressione FreeMarker che fa riferimento a una variabile il cui valore deve essere tradotto.
variable Contiene il testo tradotto.
In questo esempio, il componente System.Output, che altrimenti visualizzerebbe il testo tradotto automaticamente, restituisce comunque il testo tradotto, ma qui viene restituita la traduzione del testo definito per la proprietà source.
  unresolvedTranslate:
    component: "System.TranslateOutput"
    properties:
      source: "Sorry I don't understand"
      variable: "someTranslatedText"
    transitions:
      next: "unresolved"
  unresolved:
    component: "System.Output"
    properties:
      text: "${someTranslatedText}"
    transitions:
      return: "unresolved"

System.Qna

Si tratta di proprietà facoltative per il componente System.Qna.
Nome descrizione; Richiesto? Valore predefinito
botName Il nome (non il nome visualizzato) dello skill con il modulo Q&A. No N/A
botVersion La versione dello skill identificata dalla proprietà botName. È possibile definire la proprietà botName senza definire anche la proprietà botVersion. Tuttavia, non è possibile definire botVersion senza definire anche botName: botVersion viene ignorato quando non si definisce anche la proprietà botName. Di conseguenza, la versione predefinita (1.0) si applica solo se si definisce anche la proprietà botName. Per instradare a un'altra versione dello skill, è necessario definire la proprietà botName e impostare la proprietà botVersion con la versione di destinazione. No 1
highlighter Metodo utilizzato per evidenziare il testo più pertinente in ogni risposta. I valori validi sono:
  • system: il sistema cerca di determinare il testo più pertinente nella risposta e mette in evidenza tali parole.
  • firstNChars: i primi caratteri della risposta vengono evidenziati. Il numero di caratteri è determinato dal valore della proprietà highlightLength più i caratteri rimanenti nella parola evidenziata finale.
No system
highlightLength Numero di caratteri da evidenziare in ogni risposta. No 100
sourceVariable Il framework di elaborazione della lingua risolve la corrispondenza di domande e risposte utilizzando il valore memorizzato da sourceVariable e non l'input dell'utente. Per attivare questa corrispondenza, impostare qnaUseSourceVariable: true per il componente System.Intent. Ad esempio:
metadata:
  platformVersion: "1.0"
main: true
name: "FinancialBotMainFlow"
context:
  variables:
    iResult: "nlpresult"
    iResult2: "nlpresult"
    transaction: "string"
    faqstring1: "string"
    faqstring2: "string"
states:

  ...  
  
  setVariable:
    component: "System.SetVariable"
    properties:
      variable: "faqstring1"
      value: "Tell me about family floater plan"

...

  intent2:
    component: "System.Intent"
    properties:
      variable: "iResult"
      sourceVariable: "faqstring1"
      qnaEnable: true
      qnaUseSourceVariable: true
    transitions:
      actions:
        Send Money: "sendMoney"
        Balances: "balances"
        unresolvedIntent: "unresolved"
        qna: "qna"

  sendMoney:
    component: "System.Output"
    properties:
      text: "send money"
    transitions:
      return: "sendMoney"

  balances:
    component: "System.Output"
    properties:
      text: "Balances"
    transitions:
      return: "balances"

  unresolved:
    component: "System.Output"
    properties:
      text: "Sorry I don't understand that question!"
    transitions:
      return: "unresolved"
  qna:
    component: "System.QnA"
    properties:
	    sourceVariable: "faqString1"
    transitions:
      actions:
        none: "unresolved"
      next: "intent2"
No N/A
transitionOnTextReceived
Esegue la transizione dallo stato definito con il componente System.QnA quando l'utente immette testo libero.
  • true (impostazione predefinita): esegue le transizioni dallo stato System.Qna quando lo skill riceve qualsiasi testo libero. La competenza può tentare di risolvere questo testo quando si configura una transizione a uno stato System.Intent configurato con le proprietà Q&A.

  • false: il motore di dialogo rimane nello stato Q&A, dove il testo libero viene trattato come una query Q&A. Il componente visualizza anche un'opzione di uscita. Per impostazione predefinita, questo pulsante viene visualizzato come Esci da domande, ma è possibile modificarlo utilizzando la proprietà exitLabel.

    Poiché questa opzione aggiunge l'opzione di uscita, è necessario configurare la transizione exit.

No true
keepTurn

La proprietà keepTurn si comporta in modo diverso a seconda del modo in cui l'utente passa dallo stato definito con il componente System.QnA. È possibile configurare il modo in cui keepTurn instrada l'utente attraverso il flusso utilizzando un valore booleano (true, false) o una mappa di coppie chiave-valore.

No false (se configurato come booleano)
matchListLimit Limita l'impaginazione delle risposte No 5
categoryListLimit Limita l'impaginazione delle categorie No 5
resultLayout Il layout per le risposte corrispondenti. Valori validi: horizontal e vertical. No orizzontale
minimumMatch

Imposta la percentuale minima e massima di token che qualsiasi coppia di domande e risposte deve contenere per essere considerata una corrispondenza.

Per restituire le migliori partite, tokenizziamo le espressioni che Intent Engine risolve come domande. Questi token sono formati da derivazioni di parole e da varie combinazioni di parole. A seconda della lunghezza del messaggio utente, il processo può generare un ampio set di token. Poiché è improbabile che qualsiasi coppia di domande e risposte possa corrispondere a tutte, si consiglia di impostare il livello di corrispondenza in 50%, 25%.

In questa impostazione, la coppia Q&A può essere considerata rilevante se corrisponde al 50% dei token. Se questo livello massimo non può essere raggiunto, allora sarà sufficiente un livello minimo del 25%.

Se vuoi ridurre la possibilità di perdere una corrispondenza pertinente e puoi tollerare la restituzione di corrispondenze irrilevanti nel processo, puoi aggiungere una soglia ancora più bassa come fallback. Ad esempio: 50%,25%,10%.

Se si desidera ridurre al minimo le corrispondenze irrilevanti, è possibile aumentare la percentuale (ad esempio, minimumMatch: "80%"), ma in questo modo possono verificarsi corrispondenze impreviste per i messaggi composti da tre a sette parole. Detto questo, puoi sintonizzare la precisione delle domande e risposte restituite sia per le query utente brevi che per quelle lunghe.

Importante: se non si desidera utilizzare i livelli predefiniti durante il test, è necessario impostare la proprietà QnaMinimumMatch e l'opzione Soglie di corrispondenza del tester batch Q&A sugli stessi valori impostati per la proprietà minimumMatch. Vedere Batch Test del modulo Q&A

No 50%25%
matchfields Imposta i campi di domande e risposte utilizzati per corrispondere al messaggio utente. I valori validi includono:
  • all
  • categories
  • questions
  • answers
  • categories+questions
È possibile immettere questi valori come elenco separato da virgole.
No all
enableCategoryDrilldown Impostare su true per visualizzare un drill-down per categoria. No true
exitLabel Testo dell'etichetta per uscire dal modulo Q&A. No Exit Questions
viewAnswerLabel Testo dell'etichetta per l'azione di visualizzazione per un dettaglio di risposta. No View
moreAnswersLabel Testo dell'etichetta per l'azione di visualizzazione per altre risposte. No More Answers
answersLabel Testo dell'etichetta per le azioni di visualizzazione per le risposte in una categoria specifica. No Answers
categoriesLabel Testo dell'etichetta per le categorie che corrispondono all'espressione. No Categories
subCategoriesLabel Testo dell'etichetta per l'azione di visualizzazione per le sottocategorie. No Sub-Categories
moreCategoriesLabel Testo dell'etichetta per l'azione di visualizzazione per altre categorie. No More Categories

Aumentare la precisione delle domande e risposte restituite utilizzando minimumMatch

Mentre l'impostazione predefinita 50%,25% restituisce coppie di domande e risposte accurate, è possibile che la competenza restituisca risultati minori e più precisi aumentando la percentuale. Ad esempio, si potrebbe desiderare che la propria abilità restituisca solo una coppia di domande e risposte quando corrisponde a una percentuale elevata di token o instrada invece l'utente a un agente reale.

In questo scenario, l'aumento della percentuale della proprietà minimumMatch all'80% può restituire corrispondenze di domande e risposte più accurate, in particolare per i messaggi più lunghi. Lo stesso potrebbe non essere vero per i messaggi più brevi, che sono in genere composti da tre a sette parole, con circa il 50% di loro parole ignorate (parole stop). Ad esempio, la domanda dell'utente Che cos'è la sicurezza dell'account?, ad esempio il sistema rileva due token, account e sicurezza. Quando minimumMatch è impostato su 80%, viene restituito solo uno di questi token (l'80% di 2 è 1,6, che viene arrotondato a 1), quando idealmente, entrambi dovrebbero. In questo caso, l'abilità potrebbe restituire coppie di domande e risposte che generalmente descrivono gli account, che è una risposta troppo ampia. L'abilità avrebbe dovuto restituire solo le domande e risposte sulla sicurezza dell'account o non restituire nulla.

Per configurare la proprietà minimumMatch in modo che restituisca domande e risposte accurate per i messaggi brevi, immettere il numero di token che devono essere corrispondenti, un operatore minore di (<) e il livello di corrispondenza richiesto quando il messaggio contiene un numero maggiore di token. Ad esempio:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80%"
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
In questo snippet, se il messaggio contiene da 1 a 3 token, la coppia Q&A deve corrispondere a tutti per consentire alla competenza di restituirlo all'utente. In termini di scenario, questa impostazione restituirà solo una coppia di domande e risposte corrispondente alla sicurezza dell'account. Quando il messaggio ha quattro o più token, la coppia Q&A deve corrispondere solo all'80% di essi.
È possibile ottimizzare la corrispondenza minima per i messaggi più lunghi che contengono dettagli aggiunti graduando il numero di token corrispondenti richiesti (e diminuendo contemporaneamente la percentuale). Ad esempio, la seguente impostazione illustra come accogliere i messaggi che possono potenzialmente contenere più di nove token:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80% 8<70% 12<65%"  
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
In base all'impostazione minimumMatch in questo snippet, lo skill restituisce Q&A solo quando viene trovata una corrispondenza tra i seguenti token.
Numero di token nel messaggio Numero di token da confrontare
1 1
2 2
3 3
4 (80% corrispondenza) 3 (3.2, arrotondato a 3)
5 (80% corrispondenza) 4
6 (80% corrispondenza) 4 (4.8, arrotondato a 4
7 (80% corrispondenza) 5 (5,6, arrotondato a 5)
8 (80% corrispondenza) 6 (6,4 arrotondati a 6)
9 (70% corrispondenza) 6 (6,3, arrotondato a 5)
10 (70% corrispondenza) 7
11 (70% corrispondenza) 7 (7,7, arrotondato a 7)
12 (70% corrispondenza) 8 (8,4, arrotondato a 8)
13 (65% corrispondenza) 8 (8,45, arrotondato a 8)

keepTurn mappe chiave-valore e azioni di transizione

È possibile definire la proprietà keepTurn come mappa le cui chiavi descrivono le transizioni.
Chiave descrizione; Valore predefinito
next Quando l'opzione è impostata su false, gli skill vengono ridefiniti quando la finestra di dialogo passa allo stato successivo. Lo skill non elaborerà alcun input utente finché il motore della finestra di dialogo non passerà allo stato successivo. false
none Se impostato su true, lo skill conserva il controllo quando viene attivata un'azione di transizione none perché non è possibile restituire alcuna domanda per l'input utente. true
exit Se impostato su true, lo skill conserva il controllo quando viene attivata un'azione di transizione exit. true
textReceived Quando è impostata su true, la competenza mantiene il controllo della conversazione quando transitionOnTextReceived è impostato su true, il che indica al motore di dialogo di passare dallo stato. true

Transizioni domande e risposte

Nome descrizione; Richiesto?
none Nessuna corrispondenza trovata per l'input utente (che in genere indica che il flusso viene instradato a uno stato che informa l'utente che non è stata trovata alcuna corrispondenza di questo tipo).
exit L'utente esce dal modulo Q&A. Per impostazione predefinita, il valore keepTurn è impostato su true per questa azione. No