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 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} ergibt 12001.4, die Summe von 1.2E4 und 1.4.
  • String-Verkettung: ${'Hallo, ' += user.name} könnte zu Hallo, John führen, indem der benutzername an die Begrüßung angehängt wird.
  • Logisch: ${user.isPremium || user.credits > 0} gibt true 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) ergibt 15, das Produkt aus 3 und 5.
  • Leer: ${!empty user.name} gibt true zurück, wenn user.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 Eigenschaft numberOfItems aus einem session-scoped Attribut namens cart 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.

Previous
NLP Component