Ausdrücke für Variablenwerte
Sie können FreeMarker-Ausdrücke für Werte von Variablen in Ihren Dialogabläufen verwenden.
Praktische Ausdrücke
Tipp:
Die automatische Vervollständigung führt Sie durch das Schreiben dieser (und anderer) Apache FreeMarker-Ausdrücke.Vorgang | Freemarker-Ausdruck | Ergebnisart |
---|---|---|
Name des übergeordneten Ablaufs abrufen | ${system.parentFlow} |
Zeichenfolge |
Ereignis-Payload abrufen | ${skill.system.event.value.EVENT_NAME} |
JSON-Objekt |
Auf NLP-Ergebnis zugreifen | ${skill.system.nlpresult.value} |
JSON-Objekt |
Auf Skillumfangvariable zugreifen | ${skill.VAR_NAME} |
|
Zugriffsflussbereich variabel | ${VAR_NAME} |
|
Eingabeparameter für Zugriffsablauf | ${INPUT_PARAM_NAME} |
|
Benutzergeltungsbereichsvariable aufrufen | ${user.VAR_NAME} |
|
Zugriffsprofilumfangvariable | ${profile.VAR_NAME} |
|
Antwort-Intent-Antwort abrufen | ${skill.system.event.value.intent.answer} Hinweis: Sie können auch |
|
Intent-Namen abrufen |
|
Zeichenfolge |
Fehlermeldung abrufen | ${skill.system.event.value.dialogError.errorMessage} |
Zeichenfolge |
Zugriff auf Resource Bundle-Eintrag | ${skill.system.rb.RB_ENTRY_NAME} |
Resource Bundle |
Zugriff auf den Wert eines benutzerdefinierten Parameters | ${skill.system.config.CUSTOM_PARAMETER_NAME} |
Zeichenfolge |
Weitere Informationen zu FreeMarker in Ihren Komponenten finden Sie unter Apache FreeMarker Template Language Syntax.
Apache FreeMarker Template Language-Syntax
${...}
. Sie können FTL in die Eigenschaftsdefinitionen für verschiedene Dialogablaufkomponenten aufnehmen.
Sie können die Ausdrücke auch mit der if-Anweisung (
<#if>...</#if>
) definieren.
Gehen Sie folgendermaßen vor... | ... Vorgehensweise |
---|---|
Werte aus Variablen lesen | Fügen Sie die Eigenschaft value mit der Punktnotation hinzu:
Beispiel:
|
Werte aus von komplexen Entitys definierten Variablen lesen | Verwenden Sie die Punktnotation, um eine zusätzliche Eigenschaft hinzuzufügen:
Beispiel:
Wenn Sie einen Ausdruck wie ${MyMoney} in einer System.Output -Komponente in einem Skill mit einem YAML-basierten Dialogablauf verwenden, werden alle Eigenschaften des referenzierten JSON-Währungsobjekts angezeigt.
|
Für eine Wertelistenentity definiertes Werteset zurückgeben | Verwenden Sie die integrierten Variablen type und enumValues in der folgenden Syntax:
|
Integrierte Vorgänge für Zeichenfolgen, Arrays (Sequenzen), Zahlen und Datumsangaben verwenden Siehe Apache FreeMarker-Referenz. | Fügen Sie hinter der Eigenschaft value ein Fragezeichen (? ) und den Vorgangsnamen ein:
|
FTL-Ausdrücke verketten | Verketten Sie die Vorgänge mit einem Fragezeichen (? ):
|
Entitywerte in mehrsprachigen Skills referenzieren
Wenn Sie mehrsprachige Skills nutzen, müssen Sie sicherstellen, dass für die Komponente, mit der Ihre Entitys aufgelöst werden, Vollständige Entityübereinstimmungen verwenden auf true
gesetzt ist. So können Sie die folgenden Ausdrücke schreiben:
- Ausdrücke, die den Entitywert in der Sprache der Unterhaltung referenzieren. Mit solchen Ausdrücken können Sie beispielsweise die Entitywerte für Benutzer in Schaltflächen, Bestätigungsnachrichten usw. anzeigen.
Bei diesen Ausdrücken hängen Sie
value
an, um den Wert in der Sprache der Unterhaltung abzurufen. Beispiel: Wenn Sie die Dialogablaufvariablepizza
definiert haben und den Entitywert PizzaSize in einem Prompt referenzieren möchten, verwenden Sie Folgendes im Ausdruck:pizza.value.PizzaSize.value
(anstatt nurpizza.value.PizzaSize
). - Ausdrücke, die den Wert der Entity in der primären Sprache referenzieren. Der primäre Sprachwert dient als Schlüssel für die entsprechenden Werte in allen Sprachen der Entity. Sie können diesen Wert für Geschäftslogikzwecke referenzieren, ohne sich Gedanken um die Sprache der Unterhaltung machen zu müssen.
Für diese Ausdrücke hängen Sie
primaryLanguageValue
an (z.B.pizza.value.PizzaSize.primaryLanguageValue
).