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 boolean (="true"/"false"), integer, float, string und null (="null"). 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.
Beispiele
Spezial-Funktionen: encode:base64(<>)
strings:concat(<>,<>)
Hier sind einige Beispiele, wie Smart Expressions verwendet werden können:
- Arithmetik:
${1.2E4 + 1.4}
ergibt12001.4
, die Summe von1.2E4
und1.4
. - String-Verkettung:
${'Hallo, ' += user.name}
könnte zuHallo, John
führen, indem derbenutzername
an die Begrüßung angehängt wird. - Logisch:
${user.isPremium || user.credits > 0}
gibttrue
zurück, wenn der Benutzer Premium ist oder mehr als 0 Credits hat. - Bedingt:
${benutzer.istPremium ? 'Danke, dass Sie Premium-Benutzer sind' : 'Upgrade auf Premium für mehr Vorteile!'}
sendet eine andere Nachricht, je nachdem, ob der Benutzer ein Premium-Benutzer ist. - Lambda-Ausdruck:
${(x, y) -> x * y}(3, 5)
ergibt15
, das Produkt aus3
und5
. - Leer:
${!empty user.name}
gibttrue
zurück, wennuser.name
nicht null oder leer ist. - Datum: Der Ausdruck:
Es ist ${utils.date.month == 1 ? 'Februar' : utils.date.month == 11 ? 'Dezember' : 'weder Februar noch Dezember'}
evaluiert im Februar zu "Es ist Februar" im Dezember zu "Es ist Dezember" und an allen anderen Monaten "Es ist weder Februar noch Dezember".
Und hier sind einige Beispiele für Ausdrücke, die mit dem Anfragekontext interagieren:
${session.cart.numberOfItems}
: Dies würde den Wert der EigenschaftnumberOfItems
aus einem session-scoped Attribut namenscart
holen.${param['productId']}
: Dies würde den Wert des Anforderungsparameters namens "productId" abrufen.
Denken Sie daran: Mit Smart Expressions können Sie Ihre Chatbot-Interaktionen dynamischer und reaktionsschneller gestalten und so die Benutzerinteraktion und -zufriedenheit verbessern.