Sprache

Diese Komponenten sind in der Kategorie "Sprache" des YAML-basierten Dialogablaufeditors verfügbar.

System.Intent

Diese Komponente ermittelt das Benutzer-Intent, extrahiert alle Entitys und löst dann einen nachfolgenden Status aus.
Hinweis

Diese Komponente ist nicht für Skills verfügbar, die mit dem Visual Flow Designer entwickelt wurden. Stattdessen werden Intents automatisch aufgelöst, wenn kein aktiver Ablauf vorhanden ist. Siehe Intent-Erkennung und -Auflösung.
Eigenschaft Beschreibung Erforderlich?
variable Enthält den Wert, den das Sprachverarbeitungs-Framework aus der Benutzereingabe auflöst. Beispiel: Unsere Beispielskillbots definieren diese Eigenschaft als variable=iResult (wobei iResult: "nlpResult" als eine der context-Variablen definiert ist). Sie müssen die Variable iResult nicht benennen. Dieser Name ist eine Konvention, die in unserem Beispielcode und den Beispielskills verwendet wird. Unabhängig davon, welchen Variablennamen Sie für nlpResult verwenden, müssen Sie diesen im Dialogablauf konsistent verwenden. Ja
optionsPrompt Der Titel für die Liste der Intents, wenn Sie einen Wert für die Option Gewinnmarge festlegen. Standardmäßig lautet dieser Zeichenfolgenwert Möchten Sie.

Der Standardwert für diese Eigenschaft wird im Resource Bundle des Skills gespeichert. Um ihn zu ändern, klicken Sie auf Symbol für Resource Bundles, wählen Sie die Registerkarte Konfiguration aus, und aktualisieren Sie den Schlüssel Intent - optionsPrompt. Wenn Sie das Resource Bundle des Skills verwenden, um die Standardnachricht zu ändern, müssen Sie die Eigenschaft nur in die Komponente aufnehmen, wenn Sie den Standardwert außer Kraft setzen möchten.

Nein
botName Der Name (nicht der Anzeigename) des Skills, der das Intent auflöst. Verwenden Sie diese Eigenschaft, wenn Sie die Benutzereingabe anhand des Modells eines separaten Skills und nicht anhand des aktuellen Skills auflösen möchten. Dieser Ansatz kann nützlich sein, wenn Sie das Intent basierend auf einem Modell mit einer enger definierten Domain auflösen möchten als die für Ihren primären Anwendungsfall erforderliche Domain. Nein
botVersion Gibt die Version des Skills an. Der Standardwert ist 1.0 (wenn Sie die Versionsnummer nicht angeben). Nein
sourceVariable Das Sprachverarbeitungs-Framework löst das Intent mit sourceVariable als Eingabe auf.

Wichtig: Sie können diese Eigenschaft nicht in Kombination mit der Eigenschaft translate verwenden. Wenn Sie die durch sourceVariable dargestellte Eingabe übersetzen müssen, können Sie dazu die Datei System.TranslateInput verwenden.

Nein
daIntercept Bestimmt bei Aufrufen von System.Intent, ob der digitale Assistent die Benutzereingabe abfangen und an andere Skills weiterleiten kann. Mögliche Werte:
  • always (Standard): Ermöglicht dem digitalen Assistenten das Abfangen der Eingabe, selbst wenn der aktuelle Ablauf nicht beendet wurde. Auf diese Weise kann der digitale Assistent Unterbrechungen bearbeiten, die auf den Wechsel zu einem anderen Ablauf hinweisen.
  • never - Verhindert, dass der digitale Assistent die Benutzereingabe abfängt. Weitere Informationen zum Anwendungsfall hinsichtlich Festlegung dieses Wertes finden Sie unter Aufrufe an die System.Intent-Komponente eines Skills erzwingen.
Diese Eigenschaft wird ignoriert, wenn der Skill keinem digitalen Assistenten angehört.
Nein
translate Setzt hier das Werteset für die Kontextvariable autoTranslate außer Kraft. Wenn autoTranslate nicht festgelegt oder auf false gesetzt ist, können Sie diese Eigenschaft auf true setzen, um die automatische Übersetzung nur für diese Komponente zu aktivieren. Wenn die Kontextvariable autotranslate auf true gesetzt ist, können Sie diese Eigenschaft auf false setzen, um diese Komponente aus der automatischen Übersetzung auszuschließen.

Wichtig: Sie können diese Eigenschaft nicht in Kombination mit der Eigenschaft sourceVariable verwenden. Wenn Sie die durch sourceVariable dargestellte Eingabe übersetzen müssen, können Sie dazu die Datei System.TranslateInput verwenden.

Nein

Fragen-und-Antworten-Eigenschaften für die Komponente "System.Intent"

Dies sind optionale Eigenschaften für das Fragen-und-Antworten-Routing.
Eigenschaft Beschreibung Datentyp Standardwert
qnaEnable Aktiviert das Routing zum Modul "Fragen und Antworten". Wenn Sie diesen Wert auf true (Routing aktiviert) setzen, müssen Sie auch die Fragen-und-Antworten-Übergangsaktion (none oder exit) definieren. Siehe Fragen-und-Antworten-Übergänge. boolean false
qnaBotName Der Name (nicht der Anzeigename) des Skills mit dem Modul "Fragen und Antworten". Wenn Sie diese Eigenschaft nicht definieren, wird stattdessen der Wert verwendet, der für die Eigenschaft botName der Komponente System.QnA definiert wurde. Zeichenfolge N/V
qnaBotVersion Die Version des Skills mit dem Modul "Fragen und Antworten". Standardmäßig ist dies 1.0. Dieser Wert ist optional Int N/V
qnaTimeout Die Zeit in Millisekunden, die der Skill auf den Fragen-und-Antworten-Server wartet, um auf die Benutzereingabe zu reagieren. Lang 5000
qnaUseResult Wenn Sie diese Option auf true (Standard) setzen, kann der Skill den Fragen-und-Antworten-Server mit der Benutzereingabe abfragen. Der Skill verwendet dann die Ergebnisse dieser Abfrage (die Übereinstimmungen), um das Routing festzulegen. Wenn Sie diese Eigenschaft auf true setzen, zeigt der Skill den Link Antworten anzeigen nur an, wenn Übereinstimmungen vorhanden sind. Wenn Sie den Wert auf false setzen, wird der Link "Antworten anzeigen" immer angezeigt. boolean true
qnaSkipIfIntentFound Wenn dies auf true gesetzt ist, umgeht der Skill das Modul "Fragen und Antworten", wenn eine Intent-Übereinstimmung vorliegt. Mit dem Standardwert (false) kann der Skill den Fragen-und-Antworten-Server mit Benutzeräußerungen abfragen und auch das Modul "Fragen und Antworten" als Option anbieten. boolean false
optionsPrompt

Das Modul "Fragen und Antworten" wird angezeigt, wenn es für die Komponente System.Intent aktiviert ist und eine Übereinstimmung gefunden wurde.

Tipp: Verweisen Sie für ausländische (nicht-englische) Sprachen auf ein Resource Bundle. Informationen hierzu finden Sie unter Resource Bundles im Dialogablauf referenzieren.

Zeichenfolge Möchten Sie
optionsQnaLabel

Ein Label für eine Aktion in den Optionen (optionsPrompt), mit der der Benutzer zu der Komponente System.QnA geleitet wird, um die Übereinstimmungen anzuzeigen.

Tipp: Verweisen Sie für ausländische (nicht-englische) Sprachen auf ein Resource Bundle. Informationen hierzu finden Sie unter Resource Bundles im Dialogablauf referenzieren.

Zeichenfolge Questions
qnaMatchFields Legt die Felder für das Modul "Fragen und Antworten" fest, mit denen die Benutzernachricht abgeglichen wird. Gültige Werte umfassen:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Sie können diese Werte als durch Komma getrennte Liste eingeben.
Zeichenfolge all
qnaMinimumMatch

Legt den Mindest- und Höchstprozentsatz von Token fest, die ein beliebiges Fragen-und-Antworten-Paar enthalten muss, um als Übereinstimmung zu gelten.

Um die besten Übereinstimmungen zurückzugeben, versehen wir die Äußerungen mit Token, die die Intent Engine als Fragen auflöst. Diese Token werden aus Wortstämmen und aus verschiedenen Wortkombinationen gebildet. Daher kann eine große Tokengruppe aus einer Äußerung generiert werden. Aus diesem Grund ist es unwahrscheinlich, dass jedes Fragen-und-Antworten-Paar alle wichtigen Wörter und Varianten enthalten könnte. Daher wird nicht empfohlen, die Standardeinstellung 50%,25% zu ändern.

Wenn 50 % der generierten Token (standardmäßig die höchste Stufe) vorhanden sind, kann das Fragen-und-Antworten-Paar als relevante Übereinstimmung betrachtet werden, wenn es alle Schlüsselwörter aus der Äußerung enthält. Wenn diese Höchststufe nicht erfüllt werden kann, reicht eine Mindeststufe von 25 % aus. Wenn Sie diese Einstellungen ändern, indem Sie den Höchstwert auf mehr als 50 % erhöhen, müsste das Fragen-und-Antworten-Paar nicht nur alle Schlüsselwörter enthalten, sondern auch mit zusätzlichen Token übereinstimmen.

Das heißt, wenn Sie die Wahrscheinlichkeit verringern möchten, dass eine relevante Übereinstimmung fehlt, und bei der Verarbeitung die Rückgabe irrelevanter Übereinstimmungen tolerierbar ist, können Sie einen niedrigeren Schwellenwert hinzufügen. Beispiel: 50%,25%,10%.

Wenn Sie irrelevante Übereinstimmungen minimieren möchten, können Sie die Stufen erhöhen (z.B. 60%,50%). Bedenken Sie dabei, dass damit Fragen-und-Antworten-Paare ausgeschlossen werden könnten, die alle Schlüsselwörter enthalten.

Wichtig: Wenn Sie die Standardstufen nicht verwenden möchten, müssen Sie die Eigenschaft minimumMatch und die Option Übereinstimmungsschwellenwerte des Fragen-und-Antworten-Batchtesters auf dieselben Werte setzen. Informationen hierzu finden Sie unter Batchtest des Moduls "Fragen und Antworten".

Zeichenfolge 50%,25%
qnaUseSourceVariable Wenn dies auf true gesetzt ist, basiert der Fragen-und-Antworten-Abgleich auf dem Wert, der in der Eigenschaft sourceVariable von System.Qna gespeichert ist, nicht auf der Benutzereingabe. boolean false

System.MatchEntity

Hinweis

In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Entity abgleichen.

System.MatchEntity ruft die Intent Engine auf, um Entityinformationen aus dem in der Eigenschaft sourceVariable gespeicherten Text zu extrahieren. Wenn für den Entitytyp der Variable eine Übereinstimmung vorhanden ist, wird die Variable mit diesem Entitywert festgelegt.

Eigenschaft Beschreibung Erforderlich?
sourceVariable Die Variable, die den Eingabewert enthält. Ja
variable Der Name der Kontextvariablen. Der Wert dieser Variablen kann in einer nachfolgenden Komponente System.SetVariable verwendet werden, um mittels eines FreeMarker-Ausdrucks eine bestimmte Entity zu extrahieren. Beispiel: So extrahieren Sie einen EMAIL-Entitywert: ${userInputEntities.value.entityMatches['EMAIL'][0]} Ja

Diese Komponente hat außerdem zwei vordefinierte Übergänge: match und nomatch.

Übergang Beschreibung
match Weist die Dialog-Engine an, bei der Übereinstimmung von Entitys in einen Status zu wechseln.
nomatch Weist die Dialog-Engine an, in einen Status zu wechseln, wenn die Entitys nicht übereinstimmen.
In dem folgenden Snippet stimmt die Komponente System.MatchEntity mit dem vom Benutzer angegebenen Wert überein, der in der Variablen mailInput für den EMAIL-Entitytyp gespeichert ist, der für die Variable mailEntity definiert wurde. Wenn die Benutzereingabe eine E-Mail-Adresse ist und somit dem Entitytyp entspricht, schreibt die Komponente System.MatchEntity diesen Wert in die Variable mailEntity, die wieder an den Botbenutzer weitergeleitet wird ("You entered ${mailEntity.value.email}"). Wenn die Werte nicht übereinstimmen, wechselt die Dialog-Engine in den Status nomatch.
Hinweis

Die Komponente System.MatchEntity löst einen einzelnen Wert auf.
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

Hinweis

In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Sprache ermitteln.
Diese Komponente verwendet den Übersetzungsservice, um die Benutzersprache aus der Benutzereingabe oder aus dem Inhalt zu ermitteln, der in einer Kontextvariablen gespeichert ist, die von einer Eigenschaft source referenziert wird:
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:
      ...
Die Komponente System.DetectLanguage legt eine Variable mit dem Namen profile.languageTag mit der Gebietsschema-Zeichenfolge fest. Sie können Variablen mit der aktuellen Sprache festlegen, wenn Sie diese Variable in einem Wertausdruck (${profile.languageTag}) verwenden.
Hinweis

profile.languageTag hat Vorrang vor der Variablen profile.locale, die vom Messenger-Client festgelegt wird.

Die Eigenschaft useExistingProfileLanguageTag wird verwendet, wenn ein Skill Teil eines digitalen Assistenten ist, der einen Übersetzungsservice hat. Dadurch kann der Skill umgehend die Sprache verwenden, die vom digitalen Assistenten erkannt wird. Andernfalls kann der Skill eine Nachricht oder Eingabeaufforderung auf Englisch bereitstellen, bevor die Sprache (neu) erkannt wird. Wenn sich der Skill nicht in einem übersetzungsfähigen digitalen Assistenten befindet, wird die Eigenschaft ignoriert.

Die Variablen "profile.locale" und "profile.languageTag"

Die Verwendung eines bestimmten Resource Bundles und die Übersetzungen sowohl der Benutzeroberflächenlabels als auch der Komponentennachrichten hängen von der Sprache des Benutzers ab, die in den Variablen profile.locale und profile.languageTag gespeichert ist.

Die Art und Weise, wie diese Variablen festgelegt werden, hängt vom Sprachmodus des Skills ab:

  • Bei Skills, die native Sprachunterstützung verwenden, wird die Sprache automatisch erkannt, und die Variablen werden mit dem entsprechenden Wert aufgefüllt, es sei denn, den Variablen wurden bereits Werte zugewiesen.
  • Für Skills, die einen Übersetzungsservice verwenden:
    • Der Wert für die Variable profile.locale wird vom Messenger-Client des Benutzers abgeleitet.
      Hinweis

      profile.locale unterstützt Werte im ISO-Format "Sprache - Land" oder "ISO language_country".
    • Der Wert für die Variable profile.languageTag wird von der Komponente System.DetectLanguage angegeben.
Hinweis

Der für die Variable profile.locale festgelegte Wert kann die gebietsschemaspezifischen Formate für die Entitys DATE, CURRENCY und NUMBER bestimmen, selbst wenn ein Wert für die Variable profile.languageTag festgelegt wurde.
Mit System.SetVariable können Sie den Wert für beide Variablen festlegen (und diesen Variablen ermöglichen, sich gegenseitig Werte zuzuweisen). Beispiel:
  • 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}"

Tipp:

Sie können eine Auswahlliste mit Sprachen implementieren, indem Sie den in diesen Variablen oder in einer benutzerdefinierten Benutzerdatenbanktabelle gespeicherten Gebietsschemawert mit einer Liste unterstützter Sprachen vergleichen. Wenn die erkannte Sprache nicht in dieser Liste enthalten ist, können Sie den Benutzer zur Auswahl einer Sprache auffordern und dann profile.languageTag auf diesen Wert setzen.

System.TranslateInput

Hinweis

In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Eingabe übersetzen.

Diese Komponente sendet den angegebenen Text an den Übersetzungsservice des Skills und speichert dann die englische Übersetzung. Dieser Skill basiert auf dem Skill, der mit einem Übersetzungsservice konfiguriert wird. Er erkennt die Sprache aus der Eingabe des Benutzers und übersetzt sie in Englisch. Diese Komponente funktioniert nicht mit Skills, die den Sprachmodus "Nativ unterstützt" verwenden.

Verwenden Sie diese Komponente, wenn Sie den Roheingabetext vor der Übersetzung verarbeiten müssen. Beispiel: Sie möchten einige personenbezogene Daten aus der Benutzereingabe entfernen, bevor Sie sie an den Übersetzungsservice senden.

Eigenschaft Beschreibung Erforderlich?
source Gibt die Textwerte an, die ins Englische übersetzt werden sollen. Nein
variable Die Variable, die die englische Übersetzung des Textes enthält. Ja

Da die Komponente System.TranslateInput den Übersetzungsservice nutzt, der bereits die Sprache des Benutzers ermittelt, muss diese Komponente keinen Status folgen, die die Sprache ermitteln oder festlegen, wie unter Übersetzungsservice zu Ihrem Skill hinzufügen beschrieben. Deshalb können Sie die englische Übersetzung aus der direkten Benutzereingabe oder aus einer Variablen source speichern.

Direkte Eingabeübersetzung

Die Komponente System.TranslateInput speichert die englische Übersetzung der direkten Benutzereingabe in ihrer Eigenschaft variable. Das folgende Code-Snippet zeigt, wie eine Benutzereingabe wie "Hallo, ich bin ein Mensch" in der Variable translatedString als "Hello, I am a human" gespeichert wird.
context:
  variables:
     translatedString: “string”
     sourceString: “string”
...

states:
...

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

Die Variable "source"

In dem folgenden Snippet enthält die Variable sourceString die Benutzereingabe. (Diese Eingabe wurde beispielsweise von einer Komponente "Allgemeine Antwort" erfasst.) Nach Abschluss der Verarbeitung von System.TranslateInput wird die englische Übersetzung in der Variablen translatedString gespeichert.
context:
  variables:
    autoTranslate: "boolean" 
    translatedString: "string"
    sourceString: "string"    

   ...

states:
   ...

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

Die Komponente System.TranslateInput kann keine Datenobjekte oder Arrays übersetzen, die in einer Kontextvariablen von einer benutzerdefinierten Komponente gespeichert sind. Dieser Inhalt kann nur übersetzt werden, wenn die Variable von einer Komponente referenziert wird, die die automatische Übersetzung verwendet. Beispiel: Die Komponente System.TranslateInput kann ein Datenobjekt wie {”product”: “scissors”, “color”: “silver”} nicht als scissors und silver übersetzen.

Die Eigenschaft sourceVariable

Da die Eigenschaft sourceVariable von System.Intent den von der Komponente verarbeiteten Wert enthält, können Sie diesen mit der Komponente System.TranslateInput verwenden, um übersetzten Text einzufügen. Das folgende Snippet zeigt die Zuweisung des Wertes der Variablen translated, sodass er von der NLP-Engine verarbeitet werden kann.

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

System.TranslateOutput

Hinweis

In diesem Thema wird die Verwendung dieser Komponente im YAML-Modus behandelt. Informationen zur Verwendung im Visual Flow Designer finden Sie unter Ausgabe übersetzen.
Mit der Komponente System.TranslateOutput können Sie Text in die Sprache des Benutzers übersetzen. Die Komponente übernimmt den für die Eigenschaft source definierten Wert. Der Text wird in die Sprache übersetzt, die von der Komponente System.DetectLanguage oder von der Variablen profile.locale ermittelt wurde, und speichert ihn dann in der Eigenschaft variable.
Eigenschaften Beschreibung Erforderlich?
source Der zu übersetzende Text oder ein FreeMarker-Ausdruck, der eine Variable referenziert, deren Wert übersetzt werden muss. Ja
variable Enthält den übersetzten Text. Ja
In diesem Beispiel gibt die Komponente System.Output, die ansonsten automatisch übersetzten Text anzeigt, dennoch übersetzten Text aus. Hier wird jedoch die Übersetzung des Textes ausgegeben, der für die Eigenschaft source definiert ist.
  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

Dies sind optionale Eigenschaften für die Komponente System.Qna.
Name Beschreibung Erforderlich? Standardwert
botName Der Name (nicht der Anzeigename) des Skills mit dem Modul "Fragen und Antworten". Nein N/V
botVersion Die Version des Skills, der mit der Eigenschaft botName identifiziert wird. Sie können die Eigenschaft botName definieren, ohne die Eigenschaft botVersion zu definieren. Sie können jedoch botVersion nicht definieren, ohne auch botName zu definieren: botVersion wird ignoriert, wenn Sie die Eigenschaft botName nicht definieren. Daher gilt die Standardversion (1.0) nur, wenn Sie auch die Eigenschaft botName definieren. Um zu einer anderen Version des Skills zu wechseln, müssen Sie die Eigenschaft botName definieren und die Eigenschaft botVersion auf die Zielversion setzen. Nein 1
highlighter Die Methode, mit der der relevante Text in jeder Antwort hervorgehoben wird. Die gültigen Werte sind:
  • system: Das System versucht, den relevantesten Text in der Antwort zu ermitteln, und hebt diese Wörter hervor.
  • firstNChars: Die ersten Zeichen in der Antwort werden hervorgehoben. Die Anzahl der Zeichen wird durch den Wert der Eigenschaft highlightLength und die verbleibenden Zeichen im letzten hervorgehobenen Wort bestimmt.
Nein system
highlightLength Die Anzahl der Zeichen, die in jeder Antwort hervorgehoben werden sollen. Nein 100
sourceVariable Das Sprachverarbeitungs-Framework löst den Fragen-und-Antworten-Abgleich anhand des durch sourceVariable gespeicherten Wertes auf, nicht mit der Benutzereingabe. Aktivieren Sie diesen Abgleich, indem Sie qnaUseSourceVariable: true für die Komponente System.Intent festlegen. Beispiel:
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"
Nein N/V
transitionOnTextReceived
Wechselt aus dem Status, der mit der Komponente System.QnA definiert ist, wenn der Benutzer freien Text eingibt.
  • true (Standardwert): Wechselt aus dem Status System.Qna, wenn der Skill freien Text erhält. Ihr Skill kann versuchen, diesen Text aufzulösen, wenn Sie einen Übergang zu einem System.Intent-Status konfigurieren, der mit Fragen-und-Antworten-Eigenschaften konfiguriert ist.

  • false: Die Dialog-Engine verbleibt im Fragen-und-Antworten-Status, in dem der freie Text als Fragen-und-Antworten-Abfrage behandelt wird. Die Komponente zeigt auch eine Beendigungsoption an. Standardmäßig wird diese Schaltfläche als Fragen beenden angezeigt. Sie können dies jedoch mit der Eigenschaft exitLabel ändern.

    Da dies die Beendigungsoption hinzufügt, müssen Sie den exit-Übergang konfigurieren.

Nein true
keepTurn

Die Eigenschaft keepTurn verhält sich unterschiedlich, je nachdem, wie der Benutzer von dem in der Komponente System.QnA definierten Status wechselt. Sie können konfigurieren, wie keepTurn den Benutzer durch den Ablauf weiterleitet, indem Sie einen booleschen Wert (true, false) oder eine Zuordnung von Schlüssel/Wert-Paaren verwenden.

Nein false (bei Konfiguration als boolescher Wert)
matchListLimit Begrenzt die Paginierung für die Antworten Nein 5
categoryListLimit Begrenzt die Paginierung der Kategorien Nein 5
resultLayout Das Layout für die übereinstimmenden Antworten. Gültige Werte: horizontal und vertical. Nein horizontal
minimumMatch

Legt den Mindest- und Höchstprozentsatz von Token fest, die ein beliebiges Fragen-und-Antworten-Paar enthalten muss, um als Übereinstimmung zu gelten.

Um die besten Übereinstimmungen zurückzugeben, versehen wir die Äußerungen mit Token, die die Intent Engine als Fragen auflöst. Diese Token werden aus Wortstämmen und aus verschiedenen Wortkombinationen gebildet. Je nach Länge der Benutzernachricht kann der Prozess zahlreiche Tokengruppen generieren. Da es unwahrscheinlich ist, dass ein Fragen-und-Antworten-Paar mit allen Gruppen übereinstimmt, wird empfohlen, den Übereinstimmungsgrad auf 50%, 25% festzulegen.

Bei dieser Einstellung kann das Fragen-und-Antworten-Paar als relevant betrachtet werden, wenn es mit 50 % der Token übereinstimmt. Wenn diese Höchststufe nicht erfüllt werden kann, reicht eine Mindeststufe von 25 % aus.

Wenn Sie die Wahrscheinlichkeit verringern möchten, dass eine relevante Übereinstimmung fehlt, und bei der Verarbeitung die Rückgabe irrelevanter Übereinstimmungen tolerierbar ist, können Sie einen niedrigeren Schwellenwert als Fallback hinzufügen. Beispiel: 50%,25%,10%.

Wenn Sie irrelevante Übereinstimmungen minimieren möchten, können Sie den Prozentsatz erhöhen (z.B. minimumMatch: "80%"). Dies kann jedoch zu unerwarteten Übereinstimmungen bei Nachrichten führen, die aus drei bis sieben Wörtern bestehen. Das heißt, Sie können die Genauigkeit der zurückgegebenen Fragen-und-Antworten-Paare für kurze und lange Benutzerabfragen optimieren.

Wichtig: Wenn Sie die Standardstufen beim Testen nicht verwenden möchten, müssen Sie die Eigenschaft QnaMinimumMatch und die Option Übereinstimmungsschwellenwerte des Fragen-und-Antworten-Batchtesters auf die für die Eigenschaft minimumMatch festgelegten Werte setzen. Informationen hierzu finden Sie unter Batchtest des Moduls "Fragen und Antworten".

Nein 50%25%
matchfields Legt die Felder für das Modul "Fragen und Antworten" fest, mit denen die Benutzernachricht abgeglichen wird. Gültige Werte umfassen:
  • all
  • categories
  • questions
  • answers
  • categories+questions
Sie können diese Werte als durch Komma getrennte Liste eingeben.
Nein all
enableCategoryDrilldown Setzen Sie diese Eigenschaft auf true, um einen Drilldown nach Kategorie anzuzeigen. Nein true
exitLabel Der Labeltext für das Beenden des Moduls "Fragen und Antworten". Nein Exit Questions
viewAnswerLabel Der Labeltext für die Ansichtsaktion für ein Antwortdetail. Nein View
moreAnswersLabel Der Labeltext für die Ansichtsaktion für weitere Antworten. Nein More Answers
answersLabel Der Labeltext für die Ansichtsaktionen für Antworten in einer bestimmten Kategorie. Nein Answers
categoriesLabel Der Labeltext für die Kategorien, die der Äußerung entsprechen. Nein Categories
subCategoriesLabel Der Labeltext für die Ansichtsaktion der Unterkategorien. Nein Sub-Categories
moreCategoriesLabel Der Labeltext für die Ansichtsaktion für weitere Kategorien. Nein More Categories

Genauigkeit der zurückgegebenen Fragen und Antworten mit minimumMatch erhöhen

Die Standardeinstellung 50%,25% gibt zwar korrekte Fragen-und-Antworten-Paare zurück, aber Ihr Skill kann weniger und genauere Ergebnisse zurückgeben, indem der Prozentsatz erhöht wird. Beispiel: Ihr Skill soll nur ein Fragen-und-Antworten-Paar zurückgeben, wenn es mit einem hohen Prozentsatz an Token übereinstimmt, oder stattdessen den Benutzer an einen Live-Agent weiterleitet.

In einem solchen Szenario kann durch eine Erhöhung des Prozentsatzes für die Eigenschaft minimumMatch auf 80 % eine genauere Fragen-und-Antworten-Übereinstimmung zurückgegeben werden, insbesondere für längere Nachrichten. Bei kürzeren Nachrichten, die normalerweise aus drei bis sieben Wörtern bestehen, ist dies möglicherweise nicht der Fall, wobei ca. 50 % davon ignorierte Wörter (Stoppwörter) sind. Beispiel: Für die Benutzerfrage Was ist Accountsicherheit? ermittelt das System zwei Token, "Account" und "Sicherheit". Wenn minimumMatch auf 80 % gesetzt ist, wird nur eines dieser Token zurückgegeben (80 % von 2 ist 1,6, was auf 1 abgerundet wird). Im Idealfall sollten aber beide Token zurückgegeben werden. In diesem Fall könnte der Skill Fragen-und-Antworten-Paare zurückgeben, die im Allgemeinen "Accounts" beschreiben, was eine zu breit gefasste Antwort ergibt. Der Skill sollte nur Fragen-und-Antworten-Paare zu "Accountsicherheit" oder gar nichts zurückgeben.

Um die Eigenschaft minimumMatch so zu konfigurieren, dass korrekte Fragen-und-Antworten-Paare für kurze Nachrichten zurückgegeben werden, geben Sie die Anzahl der Token ein, die übereinstimmen müssen, einen Operator "Kleiner als" (<) und den erforderlichen Übereinstimmungsgrad, wenn die Nachricht eine höhere Tokenanzahl enthält. Beispiel:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80%"
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Wenn in diesem Snippet eine Nachricht 1 bis 3 Token enthält, muss das Fragen-und-Antworten-Paar mit allen Token übereinstimmen, damit der Skill sie an den Benutzer zurückgibt. In Bezug auf das Szenario gibt diese Einstellung nur ein Fragen-und-Antworten-Paar zurück, das mit "Accountsicherheit" übereinstimmt. Wenn die Nachricht vier oder mehr Token enthält, muss das Fragen-und-Antworten-Paar nur mit 80 % davon übereinstimmen.
Sie können die Mindestübereinstimmung für längere Nachrichten optimieren, die hinzugefügte Details enthalten, indem Sie die Anzahl der erforderlichen Übereinstimmungstoken erhöhen (und gleichzeitig den Prozentsatz verringern). Beispiel: Die folgende Einstellung zeigt, wie Nachrichten behandelt werden können, die möglicherweise mehr als neun Token enthalten:
  qna:
    component: "System.QnA"
    properties:
      minimumMatch: "3<80% 8<70% 12<65%"  
    transitions:
      actions:
        none: "unresolved"
      next: "intent"
Gemäß der Einstellung für minimumMatch in diesem Snippet gibt der Skill nur dann Fragen-und-Antworten-Paare zurück, wenn die folgenden Token übereinstimmen.
Anzahl Token in der Nachricht Die Anzahl der Token, die übereinstimmen müssen
1 1
2 2
3 3
4 (80% Übereinstimmung) 3 (3,2, auf 3 abgerundet)
5 (80% Übereinstimmung) 4
6 (80% Übereinstimmung) 4 (4,8, auf 4 abgerundet
7 (80% Übereinstimmung) 5 (5,6, auf 5 abgerundet)
8 (80% Übereinstimmung) 6 (6,4 auf 6 abgerundet)
9 (70% Übereinstimmung) 6 (6,3, auf 5 abgerundet)
10 (70% Übereinstimmung) 7
11 (70% Übereinstimmung) 7 (7,7, auf 7 abgerundet)
12 (70% Übereinstimmung) 8 (8,4, auf 8 abgerundet)
13 (65% Übereinstimmung) 8 (8,45, auf 8 abgerundet)

keepTurn-Schlüssel/Wert-Zuordnungen und Übergangsaktionen

Sie können die Eigenschaft keepTurn als Zuordnung definieren, deren Schlüssel die Übergänge beschreiben.
Taste Beschreibung Standardwert
next Wenn dies auf false gesetzt ist, gibt der Skill die Kontrolle ab, wenn die Unterhaltung in den nächsten Status übergeht. Der Skill verarbeitet keine Benutzereingaben, bis die Dialog-Engine in den nächsten Status übergeht. false
none Wenn dies auf true gesetzt ist, behält der Skill die Kontrolle, wenn eine Übergangsaktion none ausgelöst wird, da keine Frage für die Benutzereingabe zurückgegeben werden kann. true
exit Wenn dies auf true gesetzt ist, behält der Skill die Kontrolle, wenn eine Übergangsaktion exit ausgelöst wurde. true
textReceived Wenn dies auf true gesetzt ist, behält der Skill die Kontrolle über die Unterhaltung, wenn transitionOnTextReceived auf true gesetzt ist, was die Dialog-Engine anweist, den Status zu wechseln. true

Fragen-und-Antworten-Übergänge

Name Beschreibung Erforderlich?
none Für die Benutzereingabe wurde keine Übereinstimmung gefunden (dies bedeutet normalerweise, dass der Ablauf in einen Status wechselt, der den Benutzer darüber informiert, dass keine derartige Übereinstimmung gefunden wurde). Ja
exit Der Benutzer beendet das Modul "Fragen und Antworten". Standardmäßig ist keepTurn für diese Aktion auf true gesetzt. Nein