Variablenkomponenten
Diese Komponenten sind in der Kategorie "Variable" des YAML-basierten Dialogablaufeditors verfügbar.
System.SetVariable
Die Komponente System.SetVariable
legt den Wert einer vordefinierten Variablen fest.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
variable |
Der Name der Variablen, die als eine der Eigenschaften context definiert ist. Dabei kann es sich um eine für eine Entity definierte Variable oder einen vordefinierten Wert handeln, wie eine Zeichenfolge.
|
Ja |
value |
Der Zielwert, den Sie als Literal oder als Ausdruck definieren können, der eine andere Variable referenziert. | Ja |
Sie können auch einen vordefinierten Wert für eine Variable mit einem Apache FreeMarker-Ausdruck oder, wie im folgenden Snippet dargestellt, einem Literal festlegen. Hier finden Sie weitere Informationen zu FreeMarker.
setOAuthRedirectURL:
component: "System.SetVariable"
properties:
variable: "redirectURL"
value: "https://thatcompany.io/connectors/v2/tenants/5c824-45fd-b6a2-8ca/listeners/facebook/channels/78B5-BD58-8AF6-F54B141/redirect"
transitions:
...
Siehe System.OAuthAccountLink.
Hinweis
Die Struktur der Antwort von der Intent Engine wurde mit Release 21.12 geändert. Vor Release 21.12 enthielt die Payload der
Die Struktur der Antwort von der Intent Engine wurde mit Release 21.12 geändert. Vor Release 21.12 enthielt die Payload der
FullEntityMatches
- und entityMatches
-Payloads der obersten Ebene im Objekt nlpResult
Entitys, die von Elementen in Mischentitys referenziert wurden, jedoch nicht direkt mit dem Intent verknüpft waren. Ab Release 21.12 enthalten die Payloads der Objekte FullEntityMatches
und EntityMatches
diese Entitys nicht mehr (sie befinden sich stattdessen in den Objekten des Mischentityelements der unteren Ebene). Infolgedessen können Skills, die auf 21.12 upgegradet werden und System.SetVariable
verwenden, um Variablen mit den Ergebnissen festzulegen, die im Objekt nlpResult
gespeichert sind, mit Syntax wie iResult.value.entityMatches
nicht erfolgreich ausgeführt werden, weil die Entitywerte nicht mehr vorhanden sind. Um sicherzustellen, dass die Skills weiterhin funktionieren - und Best Practices befolgen - referenzieren Sie die Werte in der Mischentity (<variable_name>.value.<item_name>
), und verwenden Sie die Komponenten System.CommonResponse
oder SystemResolveEntities
anstelle der Komponente System.SetVariable
.
System.ResetVariables
Diese Komponente setzt die Werte der Variablen auf Null zurück.
Für diese Komponente sind keine Übergänge erforderlich. Sie können aber z.B. einen Übergang zurück zu einem System.Intent-Status festlegen, in dem Benutzer neue Werte eingeben können.
Eigenschaft | Beschreibung | Erforderlich? |
---|---|---|
variableList |
Eine durch Komma getrennte Liste der Variablen, die zurückgesetzt werden müssen.
Verwenden Sie die Punktnotation, um den Wert eines bestimmten Elements in der Mischentity zurückzusetzen, das als Kontextvariable deklariert ist (
expense im folgenden Beispiel).
|
Ja |
System.CopyVariables
Kopiert die Variablenwerte.
Definieren Sie diese Komponente mit den Eigenschaften
from
und to
, wie im folgenden Snippet dargestellt, in dem der Wert in einen Benutzerkontext kopiert wird:setupUserContext:
component: "System.CopyVariables"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
Diese Komponente benötigt beide Eigenschaften, ihre Definitionen müssen sich jedoch nicht spiegeln. Sie können zwar sowohl from
als auch to
als Variablenlisten definieren, Sie können aber auch from
mit einer einzelnen Variablen und to
als Liste definieren. Wenn Sie eine zusätzliche Eigenschaft to
festlegen, übernimmt sie den Variablenwert der nächsten Eigenschaft from
.
System.SetCustomMetrics
Mit dieser Komponente können Sie Ihren Skill für den Bericht "Benutzerdefinierte Metriken" instrumentieren. Beispiel:
insights:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${size}"
- name: "Pizza Type"
value: "${type}"
- name: "Crust Type"
value: "${crust}"
transitions:
next: "summarizeOrder"
Hinweis
Sie können mehrere Dimensionen in einem einzelnen Status festlegen und bis zu sechs Dimensionen pro Skill definieren.
Sie können mehrere Dimensionen in einem einzelnen Status festlegen und bis zu sechs Dimensionen pro Skill definieren.
Attribut | Beschreibung |
---|---|
name |
Der Name der Dimension (in maximal 50 Zeichen), wie er im Bericht "Benutzerdefinierte Metriken" angezeigt wird. Verwenden Sie nur Buchstaben, Zahlen und Leerzeichen. Verwenden Sie keine Sonderzeichen. |
value |
Sie können den Dimensionswert entweder als FreeMarker-Ausdruck oder als Textzeichenfolge definieren.
|
Beispiel: Einzelne Dimension über mehrere Status hinweg festlegen
Das folgende Snippet veranschaulicht, wie eine einzelne Dimension (
Agent Transfer
) aus einer Reihe von System.SetCustomMetrics
-Status erstellt wird.
states:
intent:
component: "System.Intent"
properties:
variable: "iResult"
optionsPrompt: "Do you want to"
transitions:
actions:
OrderPizza: "startOrderPizza"
WelcomePizza: "startWelcome"
LiveChat: "setInsightsCustomMetrics3"
unresolvedIntent: "startUnresolved"
...
setInsightsCustomMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${pizza.value.PizzaSize}"
- name: "Pizza Type"
value: "${pizza.value.PizzaTopping}"
- name: "Pizza Crust"
value: "${pizza.value.PizzaDough}"
- name: "Agent Transfer"
value: "No Agent Needed"
transitions:
next: "showPizzaOrder"
...
startUnresolved:
component: "System.Output"
properties:
text: "I didn't that get that. Let me connect you with support."
keepTurn: true
transitions:
next: "setInsightsCustomMetrics1"
### Transfer because of unresolved input ####
setInsightsCustomMetrics1:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Bad Input"
transitions:
next: "getAgent"
maxError:
component: "System.Output"
properties:
text: "OK, let's connect you with someone to help"
keepTurn: true
transitions:
next: "setInsightsCustomMetrics2"
### Transfer because of Max Error" ####
setInsightsCustomMetrics2:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Max Errors"
transitions:
next: "getAgent"
### Transfer because of direct request ####
setInsightsCustomMetrics3:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Agent Transfer"
value: "Agent Requested"
transitions:
next: "getAgent"
getAgent:
component: "System.AgentInitiation"
...
Jeder System.SetCustomMetrics
-Status definiert eine andere Kategorie für die Agent Transfer-Dimension. Der Bericht "Benutzerdefinierte Metriken" zeichnet Daten für diese Metriken auf, wenn diese Status in einem Ausführungsablauf enthalten sind. Wie im obigen Beispiel dargestellt, werden sie in den Übergängen benannt.
Benutzerdefinierte Metrikstatus für Agent-Transferdimension | Value | Verwenden |
---|---|---|
setInsightsCustomMetrics |
Kein Agent erforderlich | Gibt die Anzahl der erfolgreichen Konversationen an, bei denen Anforderungen ohne Unterstützung erstellt wurden. |
setInsightsCustomMetrics1 |
Ungültige Eingabe | Gibt die Anzahl der Konverstaionen an, bei denen ungelöste Eingaben dazu führten, dass Benutzer an einen Live-Agent übertragen wurden. |
setInsightsCustomMetrics2 |
Max. Fehler | Gibt die Anzahl der Unterhaltungen an, bei denen Benutzer zu Live-Agents weitergeleitet wurden, weil sie die m erreicht haben |
setInsightsCustomMetrics3 |
Agent angefordert | Gibt die Anzahl der Unterhaltungen an, bei denen Benutzer einen Live-Agent angefordert haben. |
Beispiel: Metriken für Benutzerfeedback verfolgen
Um Feedbackmetriken zu verfolgen, fügen Sie den Übergangsstatus System.Feedback entsprechende
System.SetCustomMetrics
-Status hinzu. Beispiel:...
getUserFeedback:
component: "System.Feedback"
properties:
threshold: 2
maxRating: 5
enableTextFeedback: true
footerText:
transitions:
actions:
above: "PositiveFeedbackMetrics"
below: "NegativeFeedbackMetrics"
cancel: "CancelFeedbackMetrics"
PositiveFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Positive"
transitions:
next: "positiveFeedback"
positiveFeedback:
component: "System.Output"
properties:
text: "Thank you for the ${system.userFeedbackRating.value}-star rating."
transitions:
return: "done"
NegativeFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Negative"
transitions:
next: "negativeFeedback"
negativeFeedback:
component: "System.Output"
properties:
text: "Thank you for your feedback."
transitions:
return: "done"
CancelFeedbackMetrics:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Feedback Type"
value: "Canceled"
transitions:
next: "cancelFeedback"
cancelFeedback:
component: "System.Output"
properties:
text: "Maybe next time."
transitions:
return: "done"