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 | Obligatoire? |
---|---|---|
variable |
Nom de la variable définie comme une des propriétés context . Il peut s'agir d'une variable définie pour une entité ou d'une valeur prédéfinie, telle qu'une chaîne.
|
Oui |
value |
Valeur cible, que vous pouvez définir comme littéral ou comme expression référençant 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 illustré dans l'extippet suivant, d'un littéral. Pour des informations supplémentaires sur FreeMarker, voir 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:
...
Consultez la page System.OAuthAccountLink.
Note
La structure de la réponse du moteur d'intention a été modifiée avec la version 21.12. Avant la version 21.12, les données utiles des données utiles
La structure de la réponse du moteur d'intention a été modifiée avec la version 21.12. Avant la version 21.12, les données utiles des données utiles
FullEntityMatches
et entityMatches
de niveau supérieur de l'objet nlpResult
incluaient des entités référencées par des éléments dans des entités composites, mais qui n'étaient pas directement associées à l'intention. À partir de la version 21.12, les données utiles des objets FullEntityMatches
et EntityMatches
n'incluent plus ces entités (elles se trouvent plutôt dans les objets d'élément d'entité composite de niveau inférieur). Par conséquent, les compétences 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 assurer le fonctionnement continu des compétences - et suivre les meilleures pratiques - référencez les valeurs dans l'entité 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 à zéro.
Ce composant ne nécessite aucune transition, mais vous pouvez, par exemple, faire revenir une transition à un état System.Intent pour permettre aux utilisateurs d'entrer de nouvelles valeurs.
Propriété | Description | Obligatoire? |
---|---|---|
variableList |
Liste séparée par des virgules de variables devant être réinitialisées.
Utilisez la notation avec point pour réinitialiser la valeur d'un élément particulier de la variable de l'entité composite, qui est déclarée comme 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 l'extrait de code suivant, où la valeur est copiée dans un contexte d'utilisateur :setupUserContext:
component: "System.CopyVariables"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
Ce composant a besoin des deux propriétés, mais leurs définitions ne doivent pas obligatoirement se refléter l'une l'autre. Bien que vous puissiez définir à la fois from
et to
en tant que listes de variables, 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 variable de la propriété from
.
System.SetCustomMetrics
Utilisez ce composant pour instrumenter votre compétence 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"
Note
Vous pouvez définir plusieurs dimensions dans un seul état et définir jusqu'à six dimensions par compétence.
Vous pouvez définir plusieurs dimensions dans un seul état et définir jusqu'à six dimensions par compétence.
Attribut | Description |
---|---|
name |
Nom de la dimension (50 caractères ou moins) tel qu'il apparaît dans le rapport Mesures personnalisées. Utilisez seulement des lettres, des chiffres 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
L'extrait de code suivant illustre comment créer 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 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é dans l'exemple ci-dessus, sont nommés dans les transitions.
États de mesure personnalisés pour la dimension Transfert d'agent | Valeur | Utilisez |
---|---|---|
setInsightsCustomMetrics |
Aucun agent nécessaire | Indique le nombre de conversations réussies où des commandes ont été passées sans aide. |
setInsightsCustomMetrics1 |
Entrée incorrecte | Indique le nombre de conversations où l'entrée non résolue a entraîné le transfert des utilisateurs vers un agent humain. |
setInsightsCustomMetrics2 |
Nombre maximal d'erreurs | Reflète le nombre de conversations où les utilisateurs ont été dirigés vers des agents humains parce qu'ils ont atteint le m |
setInsightsCustomMetrics3 |
Agent demandé | Indique le nombre de conversations pour lesquelles les utilisateurs ont demandé un agent humain. |
Exemple : Suivi des mesures sur la rétroaction d'utilisateur
Pour suivre les mesures de rétroaction, 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"