Composants de variable
Il s'agit des composants disponibles dans la catégorie Variable de l'éditeur de flux de dialogue basé sur YAML.
System.SetVariable
Le composant System.SetVariable
définit la valeur d'une variable prédéfinie.
Propriété | Description | Requis ? |
---|---|---|
variable |
Nom de la variable définie comme l'une des propriétés context . Il peut s'agir d'une variable définie pour une entité ou d'une valeur prédéterminée (comme une chaîne).
|
Oui |
value |
Valeur cible, que vous pouvez définir en tant que littéral ou en tant qu'expression faisant référence à une autre variable. | Oui |
Vous pouvez également définir une valeur prédéfinie pour une variable à l'aide d'une expression Apache FreeMarker ou, comme indiqué dans le fragment de code suivant, un littéral. Vous trouverez plus d'informations sur FreeMarker ici.
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:
...
Reportez-vous à System.OAuthAccountLink.
Remarque
La structure de la réponse du moteur d'intentions a été modifiée avec la version 21.12. Avant la version 21.12, la charge utile des charges utiles de niveau supérieur
La structure de la réponse du moteur d'intentions a été modifiée avec la version 21.12. Avant la version 21.12, la charge utile des charges utiles de niveau supérieur
FullEntityMatches
et entityMatches
dans l'objet nlpResult
incluait des entités référencées par des éléments dans des entités de conteneur composite, mais qui n'étaient pas directement associées à l'intention. A partir de la version 21.12, les charges utiles des objets FullEntityMatches
et EntityMatches
n'incluent plus ces entités (elles se trouvent à la place dans les objets d'élément de conteneur composite de niveau inférieur). Par conséquent, les briques mises à niveau vers la version 21.12 qui utilisent System.SetVariable
pour définir des variables à l'aide des résultats contenus dans l'objet nlpResult
à l'aide d'une syntaxe telle que iResult.value.entityMatches
peuvent échouer car les valeurs d'entité ne sont plus présentes. Pour garantir le fonctionnement continu des briques et suivre les meilleures pratiques, référencez les valeurs dans le conteneur composite (<variable_name>.value.<item_name>
) et utilisez les composants System.CommonResponse
ou SystemResolveEntities
au lieu du composant System.SetVariable
.
System.ResetVariables
Ce composant réinitialise les valeurs des variables sur NULL.
Ce composant ne requiert aucune transition, mais vous pouvez par exemple définir une transition vers System.Intent pour permettre aux utilisateurs de saisir de nouvelles valeurs.
Propriété | Description | Requis ? |
---|---|---|
variableList |
Liste des variables, séparées par des virgules, devant être réinitialisées.
Utilisez la syntaxe par points pour réinitialiser la valeur d'un élément de conteneur spécifique dans le conteneur composite, déclaré en tant que variable de contexte (
expense dans l'exemple suivant).
|
Oui |
System.CopyVariables
Copie les valeurs de variable.
Définissez ce composant à l'aide des propriétés
from
et to
comme dans le fragment de code suivant, où la valeur est copiée dans une variable de contexte utilisateur :setupUserContext:
component: "System.CopyVariables"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
Ce composant a besoin de ces deux propriétés, mais leurs définitions ne doivent pas nécessairement être mises en miroir. Vous pouvez définir from
et to
en tant que listes de variables, mais vous pouvez également définir from
avec une seule variable et to
en tant que liste. Si vous définissez une propriété to
supplémentaire, elle hérite de la valeur de la variable de la propriété from
en cours.
System.SetCustomMetrics
Utilisez ce composant pour déterminer votre brique pour le rapport Mesures personnalisées. Par exemple :
insights:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${size}"
- name: "Pizza Type"
value: "${type}"
- name: "Crust Type"
value: "${crust}"
transitions:
next: "summarizeOrder"
Remarque
Vous pouvez définir plusieurs dimensions dans un seul état et définir jusqu'à six dimensions par brique.
Vous pouvez définir plusieurs dimensions dans un seul état et définir jusqu'à six dimensions par brique.
Attribut | Description |
---|---|
name |
Nom de la dimension (50 caractères ou moins) tel qu'il apparaît dans le rapport Mesures personnalisées. Utilisez uniquement des lettres, des nombres et des espaces. N'utilisez pas de caractères spéciaux. |
value |
Vous pouvez définir la valeur de dimension en tant qu'expression FreeMarker ou chaîne de texte.
|
Exemple : définition d'une dimension unique dans plusieurs états
Le fragment de code suivant illustre la création d'une dimension unique (
Agent Transfer
) à partir d'une série d'états System.SetCustomMetrics
.
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"
...
Chaque état System.SetCustomMetrics
définit une catégorie différente pour la dimension de transfert d'agent. Le rapport Mesures personnalisées enregistre les données de ces mesures lorsque ces états sont inclus dans un flux d'exécution et, comme illustré par l'exemple ci-dessus, sont nommés dans les transitions.
Etats de mesure personnalisés pour la dimension de transfert d'agent | Valeur | Utilisez |
---|---|---|
setInsightsCustomMetrics |
Aucun agent requis | Reflète le nombre de conversations réussies dans lesquelles des prescriptions ont été saisies sans aide. |
setInsightsCustomMetrics1 |
Saisie incorrecte | Reflète le nombre de converstaions où les entrées non résolues ont entraîné le transfert des utilisateurs vers un agent physique. |
setInsightsCustomMetrics2 |
Nombre maximal d'erreurs | Reflète le nombre de conversations où les utilisateurs ont été dirigés vers des agents en direct parce qu'ils ont atteint le m |
setInsightsCustomMetrics3 |
Agent demandé | Reflète le nombre de conversations dans lesquelles les utilisateurs ont demandé un agent physique. |
Exemple : suivi des mesures sur les commentaires des utilisateurs
Pour suivre les mesures de retour, ajoutez les états
System.SetCustomMetrics
correspondants aux états de transition System.Feedback. Par exemple :...
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"