Automation

Smart Expressions

Smart Expressions sind eine leistungsstarke Methode, um Dynamik und Flexibilität in Ihre Chatbot-Konversationen zu bringen. Durch die Verwendung von Smart Expressions können Sie Echtzeitdaten in Gesprächsvariablen und Bot-Nachrichten einbeziehen, so dass Ihr Chatbot auf der Grundlage des sich entwickelnden Kontexts oder der Datenvariablen intelligent reagieren kann.

Smart Expressions folgen einem bestimmten Format: ${smart expression}

Operatoren

Die folgenden Operatoren stehen zur Verfügung.

SymbolNameFunktion
()KlammernManuelle Anpassung der Prioritäten bei der Ausführung.
{+, -, *, (/, div), (%, mod)}Arithmetische operationenStandardmäßige Arithmetikoperationen; Zahlen im Stringformat werden automatisch umgewandelt.
+=String KonkatenationKonkatenation von zwei Strings.
{(==, eq), (!=, ne), (<, lt), (<=, le), (>, gt), (>=, ge)}Relationale VergleicheBoolescher Vergleich von zwei Zahlenwerten. Ein Stringvergleich ist auch möglich, die Sortierung ist durch das Alphabet gegeben.
{(&&, and), (||, or), (!, not)}logische OperatorenManipulation und Verknüpfung von verschiedenen Boolean Werten.
empty <A>Empty OperatorEin Präfixoperator welcher, zurückgibt ob ein Wert leer ist. Funktioniert für Strings, Listen und Sets.

Die Reihenfolge oder Priorität der Operatoren ist wie folgt:

  1. ()
  2. (!, not), empty
  3. *, (/, div), (%, mod)
  4. +, -
  5. +=
  6. (<, lt), (<=, le), (>, gt), (>=, ge)
  7. (==, eq), (!=, ne)
  8. (&&, and)
  9. (||, or)

Literale

In Smart Expressions gibt es Literale für Booleans (="true"/"false"), Integer, Floats und Strings. Das bedeutet das die Werte der Variablen aus einem String Format abgelesen werden können.

Für Strings in einfachen oder doppelten Anführungszeichen, gibt es folgende Escape-Regeln:

  • \\ für ein Backslash
  • \" in doppelt-quotierten Strings
  • \' in einfach-quotierten Strings
  • weitere Escapes sind nicht erlaubt

Konditionale Texte

Mit der Syntax bool ? val1 : val2 lassen sich schnell und unkompliziert Ausgaben abhängig von Parametern bauen. Wenn der Boolean wahr ist, wird der erste Wert ausgespielt, ansonsten der zweite.

Beispiele

${global.hasReviewed ? 
"Danke für deine Bewertung!" : 
"Möchtest du noch eine Bewertung abgeben?"}
${global.age >= 18 ? 
"Los geht's!" : 
"Um fortzufahren, musst du leider 18 Jahre alt sein."}

Erweiterte Funktionen

Datum und Uhrzeit

  • utils.date.day Gibt den Wochentag zurück, der durch das heutige Datum dargestellt wird. Der zurückgegebene Wert (0 = Sonntag, 1 = Montag, 2 = Dienstag, 3 = Mittwoch, 4 = Donnerstag, 5 = Freitag, 6 = Samstag) stellt den Wochentag dar, der den durch das heutige Datum dargestellten Zeitpunkt enthält oder mit ihm beginnt, wie er in der lokalen Zeitzone interpretiert wird.
  • utils.date.month Gibt eine Zahl zurück, die den Monat angibt, der den durch das heutige Datum dargestellten Zeitpunkt enthält oder mit diesem beginnt. Der zurückgegebene Wert liegt zwischen 0 und 11, wobei der Wert 0 für Januar steht.
  • utils.date.hours Gibt die Stunde zurück, die durch das heutige Datum dargestellt wird. Der zurückgegebene Wert ist eine Zahl (0 bis 23), die die Stunde innerhalb des Tages angibt, die den durch das heutige Datum dargestellten Zeitpunkt enthält oder mit ihm beginnt, wie in der lokalen Zeitzone interpretiert.
  • utils.date.minutes Gibt die Anzahl der Minuten nach der durch das heutige Datum dargestellten Stunde zurück, wie sie in der lokalen Zeitzone interpretiert wird. Der zurückgegebene Wert liegt zwischen 0 und 59.

Spezial Funktionen

Es werden zusätzlich weitere praktische Funktionen bereitgestellt:

encode:base64(<input>)

Wandelt einen String in das base64 Format um.

strings:concat(<string1>, <string2>):

Konkateniert zwei Strings.

dates:now():

Gibt das aktuelle Datum und die Uhrzeit im UTC Format.

numbers:format(<pattern>, <locale>, <input>):

Formatiert Zahlen in ein bestimmtes Pattern.

  • <pattern> : Beschreibt das Pattern in dem die Zahl angezeigt wird. Das Pattern ermöglicht es, Zahlen mithilfe bestimmter Symbole nach einem definierten Muster zu formatieren. Die vier Hauptsymbole sind:

    • 0 (Null): Dieses Symbol gibt eine Ziffer aus, wenn eine vorhanden ist; andernfalls wird eine 0 ausgegeben. Es stellt sicher, dass an dieser Stelle eine Ziffer erscheint.
    • # (Raute): Dieses Symbol gibt eine Ziffer aus, wenn eine vorhanden ist; andernfalls wird nichts ausgegeben. Es wird für optionale Ziffern verwendet.
    • . (Punkt): Dieses Symbol markiert die Stelle des Dezimaltrennzeichens.
    • , (Komma): Dieses Symbol markiert die Stelle des Gruppierungstrennzeichens (z. B. für Tausendertrennung).
  • Beispiel:

    Um eine Zahl wie 1234567.89 mit Tausendertrennung und zwei Nachkommastellen darzustellen, könnte man das Muster #,###.00 verwenden.

    Das Formatieren von 1234567.89 mit new DecimalFormat("#,###.00") würde beispielsweise zu "1,234,567.89" führen.

Previous
NLP Component