Componentes de variables
Estos son los componentes que están disponibles en la categoría Variable del editor de flujo de diálogo basado en YAML.
System.SetVariable
El componente System.SetVariable
define el valor de una variable predefinida.
Propiedad | Descripción | ¿Obligatoria? |
---|---|---|
variable |
Nombre de la variable que se define como una de las propiedades context . Puede ser una variable definida para una entidad o un valor predeterminado, como una cadena.
|
Sí |
value |
Valor de destino, que se puede definir como un literal o como una expresión que hace referencia a otra variable. | Sí |
También puede definir un valor predeterminado para una variable mediante una expresión FreeMarker de Apache o, como se muestra en el siguiente fragmentos, un literal. Puede obtener más información sobre FreeMarker aquí.
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:
...
Consulte System.OAuthAccountLink.
Nota
La estructura de la respuesta del motor de intenciones ha cambiado con la versión 21.12. Antes de la versión 21.12, la carga útil de las cargas útiles
La estructura de la respuesta del motor de intenciones ha cambiado con la versión 21.12. Antes de la versión 21.12, la carga útil de las cargas útiles
FullEntityMatches
y entityMatches
de nivel superior en el objeto nlpResult
incluía entidades a las que se hacía referencia en elementos de entidades de bolsa compuesta, pero que no estaban asociadas directamente con la intención. A partir de la versión 21.12, las cargas útiles de los objetos FullEntityMatches
y EntityMatches
ya no incluyen estas entidades (en su lugar, se pueden encontrar dentro de los objetos de elementos de bolsa compuesta de nivel inferior). Como resultado, las aptitudes actualizadas a la versión 21.12 que utilizan System.SetVariable
para definir variables mediante los resultados mantenidos en el objeto nlpResult
con sintaxis como iResult.value.entityMatches
pueden fallar porque los valores de entidad ya no están presentes. Para garantizar el funcionamiento continuo de las aptitudes, y seguir las mejores prácticas, haga referencia a los valores de la bolsa compuesta (<variable_name>.value.<item_name>
) y utilice los componentes System.CommonResponse
o SystemResolveEntities
en lugar del componente System.SetVariable
.
System.ResetVariables
Este componente restablece los valores de las variables a nulos.
Este componente no necesita ninguna transición, pero puede, por ejemplo, devolver una transición al estado System.Intent para permitir a los usuarios introducir nuevos valores.
Propiedad | Descripción | ¿Obligatoria? |
---|---|---|
variableList |
Lista separada por comas de las variables que se deben restablecer.
Utilice la notación de puntos para restablecer el valor de un elemento de bolsa específico en la bolsa compuesta, que se ha declarado como una variable de contexto (
expense en el siguiente ejemplo).
|
Sí |
System.CopyVariables
Copia los valores de la variable.
Defina este componente mediante las propiedades
from
y to
, como en el siguiente fragmento, donde el valor se copia en un contexto de usuario:setupUserContext:
component: "System.CopyVariables"
properties:
from: "lastQuestion,lastResponse"
to: "user.lastQuestion,user.lastResponse"
Este componente necesita ambas propiedades, pero sus definiciones no tienen que ser similares. Si bien puede definir from
y to
como listas de variables, también puede definir from
con una única variable y to
como una lista. Si define una propiedad to
adicional, esta hereda el valor de variable de la propiedad from
siguiente.
System.SetCustomMetrics
Utilice este componente para instrumentar su aptitud para el informe de métricas personalizadas. Por ejemplo:
insights:
component: "System.SetCustomMetrics"
properties:
dimensions:
- name: "Pizza Size"
value: "${size}"
- name: "Pizza Type"
value: "${type}"
- name: "Crust Type"
value: "${crust}"
transitions:
next: "summarizeOrder"
Nota
Puede definir varias dimensiones en un solo estado y puede definir hasta seis dimensiones por aptitud.
Puede definir varias dimensiones en un solo estado y puede definir hasta seis dimensiones por aptitud.
Atributo | Descripción |
---|---|
name |
Nombre de la dimensión (en 50 caracteres o menos) tal y como aparece en el informe de métricas personalizadas. Utilice solo letras, números y espacios. No utilice caracteres especiales. |
value |
Puede definir el valor de dimensión como una expresión FreeMarker o una cadena de texto.
|
Ejemplo: definición de una dimensión única en varios estados
El siguiente fragmento ilustra cómo crear una sola dimensión (
Agent Transfer
) a partir de una serie de estados 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"
...
Cada estado System.SetCustomMetrics
define una categoría diferente para la dimensión de transferencia de agente. El informe de métricas personalizadas registra los datos de estas métricas cuando estos estados se incluyen en un flujo de ejecución y, como se ilustra en el ejemplo anterior, se nombran en las transiciones.
Estados de métricas personalizadas para dimensión de transferencia de agente | Valor | Usar |
---|---|---|
setInsightsCustomMetrics |
No se necesita agente | Refleja el número de conversaciones correctas en las que se cursaron indicaciones sin ayuda. |
setInsightsCustomMetrics1 |
Entrada incorrecta | Refleja el número de conversiones en las que la entrada sin resolver ha provocado que los usuarios se transfieran a un agente activo. |
setInsightsCustomMetrics2 |
Máximo de Errores | Refleja el número de conversaciones a las que se ha dirigido a los usuarios a agentes activos porque han llegado a la m |
setInsightsCustomMetrics3 |
Agente solicitado | Refleja el número de conversaciones en las que los usuarios han solicitado un agente en directo. |
Ejemplo: seguimiento de métricas en comentarios de usuario
Para realizar un seguimiento de las métricas de comentarios, agregue los estados
System.SetCustomMetrics
correspondientes a los estados de transición System.Feedback. Por ejemplo:...
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"