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.
Symbol | Name | Funktion |
---|---|---|
() | Klammern | Manuelle Anpassung der Prioritäten bei der Ausführung. |
{+, -, *, (/, div), (%, mod)} | Arithmetische operationen | Standardmäßige Arithmetikoperationen; Zahlen im Stringformat werden automatisch umgewandelt. |
+= | String Konkatenation | Konkatenation von zwei Strings. |
{(==, eq), (!=, ne), (<, lt), (<=, le), (>, gt), (>=, ge)} | Relationale Vergleiche | Boolescher Vergleich von zwei Zahlenwerten. Ein Stringvergleich ist auch möglich, die Sortierung ist durch das Alphabet gegeben. |
{(&&, and), (||, or), (!, not)} | logische Operatoren | Manipulation und Verknüpfung von verschiedenen Boolean Werten. |
empty <A> | Empty Operator | Ein 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:
- ()
- (!, not), empty
- *, (/, div), (%, mod)
- +, -
- +=
- (<, lt), (<=, le), (>, gt), (>=, ge)
- (==, eq), (!=, ne)
- (&&, and)
- (||, 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.