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 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).
resetExpenseType:
  component: "System.ResetVariables"
  properties:
    variableList: "expense.Type"
  transitions:
    next: "resolveExpense"
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.
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.
  • Verwenden Sie FreeMarker-Ausdrücke, um eine für eine Entity deklarierte Variable context zu referenzieren. Beispiel: Für eine Variable crust: "PizzaCrust" lautet die Syntax "${crust}". Die Syntax zum Referenzieren eines Wertelistenentityelements in einer Mischentity lautet "${<composite bag entity name>.value.<item name>}". Beispiel: "${pizza.value.Crust}".
  • Verwenden Sie eine Zeichenfolge, um einen Wert zu verfolgen, der nicht von Variablen in der Dialogablaufdefinition festgelegt wird, sondern andere Aspekte der Skillverwendung verfolgt.
    livechatTransfer:
        component: "System.AgentConversation"
        properties:
    ...
        transitions:
          actions:
            agentLeft: "livechatEndPrompt"
            expired: "livechatEndPrompt"
            error: "livechatHandleNoTransfer"
          next: "setInsightsCustomMetrics"
    
      setInsightsCustomMetrics:
        component: "System.SetCustomMetrics"
        properties:
          dimensions: 
          - name: "Agent Transfer"
            value: "transferred"
    ...
    
      setInsightsCustomMetrics2:
        component: "System.SetCustomMetrics"
        properties:
          dimensions: 
          - name: "Agent Transfer"
            value: "not transferred"
        transitions:
           return: "done"

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"