Trabajar con variables
Puede utilizar variables paga guardar las respuestas de los clientes y reutilizarlas más adelante en la conversación.
También puede usar variables para crear expresiones lógicas que dirijan dinámicamente al cliente por diferentes rutas de conversación. Por ejemplo, guarde el nombre de un cliente en una variable llamada "customerName" y el agente puede dirigirse al cliente por su nombre mientras continúa la conversación.
Las variables también se pueden pasar y devolver desde otros temas y flujos de Power Automate.
Crear una variable
Cualquier nodo que le solicite seleccionar una variable como salida, como un nodo Pregunta, crea automáticamente una variable de salida del tipo correcto.
Propina
Cambie el nombre de los nodos para que sea más fácil identificarlos. Seleccione el campo de nombre del nodo para actualizar el nombre directamente, o seleccione el icono Más (…) del nodo y seleccione Renombrar desde el menú. También puede renombrar nodos en el editor de código.
No es posible cambiar el nombre de los nodos Gatillo y nodos Ir al paso.
Los nombres de nodo pueden tener hasta 500 caracteres de largo.
Seleccionar la entidad que se va a usar
De forma predeterminada, se crean nodos de pregunta con opciones de selección múltiple. Para usar otra entidad precompilada o personalizada, seleccione el cuadro Identificar y elija el tipo de información que el agente debe escuchar.
Cambiar el nombre de una variable
A las variables se les asigna un nombre automáticamente al crearse. Una práctica recomendada es asignar a las variables nombres significativos para que su propósito quede claro para cualquier otra persona que deba mantener su agente.
Seleccione la variable para abrirla en el panel Propiedades de variables.
En Nombre de la variable, introduzca un nuevo nombre para su variable.
Establecer una variable
Normalmente, se utiliza un nodo Pregunta para almacenar la entrada del usuario en una variable. Sin embargo, puede haber situaciones en las que desee establecer el valor de una variable usted mismo. En esos casos, use un nodo Establecer valor variable.
Seleccione Agregar nodo (+) para agregar un nodo y luego seleccione Administración de variables>Establecer un valor de variable.
Seleccione el cuadro bajo Establecer variable y luego Crear una nueva variable.
Se crea una nueva variable. Su tipo es desconocido hasta que le asigna un valor.
Para Hasta valor, asigne un valor usando una de las siguientes opciones:
- Escriba un valor literal.
- Seleccione una variable existente del mismo tipo. Esta acción establece la variable en el mismo valor que la variable que seleccione.
- Use una fórmula Power Fx. Las fórmulas de Power Fx son útiles para tipos más complejos, donde no se pueden usar valores literales, como los tipos Tabla y Registro.
Nota
Al establecer una variable de tipo de cadena, si encuentra un error de coincidencia entre Establecer variable y En el valor, aparece un mensaje de error y el botón Corregir error de coincidencia de tipo. Seleccione el botón para que Copilot Studio genere automáticamente una Fórmula de Power Fx que resuelva la discrepancia.
Usar variables en nodos de acción
Cuando usa una variable en un nodo de acción, si su tipo base coincide con un tipo de parámetro que se especifica para un flujo o capacidad de Bot Framework, puede alimentarlo a ese parámetro. La salida de los nodos de acción genera nuevas variables.
Usar valores literales para entradas variables
En los nodos en los que puede establecer un valor para los parámetros de entrada, siempre puede introducir un valor literal en lugar de seleccionar otra variable como valor.
El nodo intenta interpretar valores literales como una cadena, un número o un valor booleano. Por ejemplo, 123 se interpreta como un número. Si desea que se interprete como un valor de cadena, puede envolver el valor entre comillas dobles, como: "123".
Para algunos escenarios (por ejemplo, escenarios que usan tipos complejos), es posible que deba usar una Fórmula de Power Fx para establecer un tipo específico.
Usar variables de entorno para secretos de Azure Key Vault
Una variable de entorno puede hacer referencia a un secreto en Key Vault. Las variables de entorno secretas son un caso especial de variables de entorno con consideraciones únicas.
Para crear una variable de entorno secreta en el portal de Power Apps, debe configurar su Key Vault.
Para autorizar a un usuario Copilot Studio la lectura de este Key Vault, debe realizar las siguientes acciones:
Asigne el rol
Key Vault Secrets User
a la aplicaciónMicrosoft Virtual Agents Service
.Para autorizar a todos los agentes del entorno a acceder al secreto, cree una etiqueta
AllowedEnvironments
en el secreto y agregue los ID de entorno permitidos separados por comas.Para autorizar solo a determinados agentes del entorno a utilizar esta Key Vault, cree una etiqueta
AllowedAgents
y ponga el identificador del agente en el formato{envId}/{schemaName}
. Para valores múltiples, separe los valores con comas.
Si alcanza el número máximo de caracteres pero aún necesita agregar más agentes, agregue otra etiqueta con un nombre descriptivo pero único (por ejemplo: AllowedAgents2
).
El valor secreto se almacena en caché en el tiempo de ejecución del diálogo durante cinco minutos. Las lecturas erróneas se almacenan en caché durante 30 segundos.
Advertencia
Al agregar el secreto en el agente, podría exponer el valor de este secreto a todos los usuarios que puedan editar el agente en el entorno, ya que dichos usuarios podrían editar el agente para devolver el valor en el nodo SendMessage
.
Panel Variables
El panel Variables es donde puede ver todas las variables que están disponibles para un tema, independientemente de los nodos en los que estén definidas o se utilicen. Para cada variable, puede seleccionar si puede recibir su valor de otros temas, devolver su valor a otros temas o ambos. También puede seleccionar una variable para editar sus propiedades en el panel Propiedades de variable.
Para abrir el panel de variables, en la barra de menú de tema, seleccione Variables.
Panel Propiedades de variables
En el panel de propiedades de la variable, puede cambiar el nombre de una variable, ver dónde se usa o convertirla en variable global. Sin embargo, no puede volver a convertir una variable global en una variable de tema. También puede seleccionar si una variable de tema puede recibir valores de otros temas o pasar su valor a ellos.
Para abrir el panel Propiedades de variable de una variable, seleccione la variable deseada en el panel Variables. También puede abrir el panel de propiedades de la variable seleccionando una variable en cualquier nodo.
Pasar variables entre temas
Al redirigir un tema a otro, puede pasar los valores de las variables del tema de origen al tema de destino y también devolver valores del tema de destino al tema de origen. Pasar variables entre temas es especialmente útil cuando un tema anterior ya recopiló información que un tema posterior necesita. Sus usuarios agradecerán no tener que volver a responder a las mismas preguntas de nuevo.
Recibir valores de otros temas
Cuando un tema define una variable (por ejemplo, en un nodo de pregunta), el agente formula al usuario la pregunta para completar el valor de la variable. Si el agente ya ha adquirido el valor en un tema anterior, no hay razón para volver a hacer la pregunta. En estos casos, puede establecer la variable en Recibir valores de otros temas. Cuando otro tema redirige a este, puede pasar el valro de una variable o valores literales a esta variable y omitir la pregunta. La experiencia del usuario que habla con el agente es perfecta.
En este ejemplo, usamos dos temas, Saludo y Hablar con el cliente. Ambos temas piden el nombre del cliente. Sin embargo, si el tema Saludo se ejecuta primero, el tema Hablar con el cliente omite su pregunta. En su lugar, utiliza el valor de la variable pasada desde el tema Saludo.
Este es el flujo del tema Conversación con el cliente:
Como se muestra en el panel prueba, si este tema se desencadena primero, pregunta al usuario: "¿Cómo debo llamarle?" Almacena el valor en una variable de cadena llamada customerName. La variable customerName también está configurada para obtener su valor de otros temas. El tema concluye con el mensaje: "¡Espero que esté teniendo un día maravilloso, customerName!"
Este es el flujo del tema de saludo:
Como se muestra en el panel prueba, si este tema se desencadena primero, pregunta al usuario: "¿Cómo se llama?" almacena el valor en una variable de cadena llamada customerName. El tema envía el mensaje: "¡Encantado de conocerle, customerName!" A continuación, redirige al tema Hablar al Cliente , que envía el mensaje: "¡Espero que esté teniendo un día maravilloso, customerName!". Sin embargo, tenga en cuenta que el tema Hablar al Cliente omitió volver a solicitar el nombre del usuario. En su lugar, utiliza el valor de la variable customerName pasada desde el tema Saludo.
Finalmente, aquí está esa segunda conversación nuevamente, esta vez desde la perspectiva del tema Hablar al cliente:
Veamos los pasos para configurar un tema para recibir valores de otros temas. Nuestro escenario de ejemplo usa el tema predefinido Saludo como tema de origen y un nuevo tema Hablar al Cliente como tema de destino, pero los mismos pasos funcionan para cualquier tema que deba usar un valor de un tema anterior cuando sea posible.
Configure el destino tema
El destino tema es el tema al que se redirige, el que recibirá valores de otros temas. En nuestro ejemplo, es Hablar con el cliente.
Cree un nuevo tema y llámelo "Hablar al Cliente".
Añada frases desencadenantes como "hábleme", "hable conmigo", "chatea conmigo".
Agregue un nodo Pregunta y escriba "¿Cómo le puedo llamar?" para el mensaje.
En Identificar, seleccione la entidad preconstruida Nombre de la persona.
Seleccione el nombre de la variable. El panel Propiedades de variables se abre.
Reemplace el nombre predeterminado por "customerName" y, a continuación, seleccione Recibir valores de otros temas.
Agregue un nodo Mensaje.
En el cuadro de mensaje, escriba "Espero que esté teniendo un día maravilloso, ".
Seleccione el icono Insertar variable ({x}) y después seleccione customerName.
Seleccione el espacio después de la variable y escriba "!".
Guarde el tema.
Establecer el tema de origen
El tema de origen es el tema que realiza la redirección, el que proporciona el valor y lo pasa al tema de destino. En nuestro ejemplo, es Saludo.
Vaya al tema Saludo y elimine los nodos predeterminados, excepto el nodo Desencadenador.
Agregue un nodo Pregunta y escriba "¿Cómo se llama?" para el mensaje.
En Identificar, seleccione la entidad preconstruida Nombre de la persona.
Reemplace el nombre predeterminado por "customerNameFromGreeting".
Agregue un nodo Mensaje.
En el cuadro de mensaje, escriba "Encantado de conocerle, ".
Seleccione el icono Insertar variable ({x}) y después seleccione customerNameFromGreeting.
Seleccione el espacio después de la variable y escriba "!".
Agregue un nodo Redireccionamiento y seleccione el tema de destino Hablar con el cliente.
Seleccione Agregar entrada y luego seleccione la variable del tema de destino al que desea pasar el valor.
Seleccione el icono > y, a continuación, seleccione la variable cuyo valor desea pasar, customerNameFromGreeting, en este ejemplo.
El nodo de Redireccionamiento debería tener el siguiente aspecto:
Guarde el tema.
Devolver valores a temas originales
Cuando se redirige un tema y se obtiene una variable haciendo una pregunta o de alguna otra forma, la variable se puede devolver al tema original. La variable pasa a formar parte del tema original y se puede utilizar como cualquier otra variable. Información que obtiene el agente y que por tanto está disponible en todos los temas, lo que reduce la necesidad de variables globales.
Continuemos con el ejemplo de la sección anterior. Hacemos una nueva pregunta en el tema Hablar con el cliente y, a continuación, devolvemos la respuesta al tema Saludo.
Configure la fuente tema para una variable devuelta
Cuando retorna una variable a un tema, el tema de origen es el tema que proporciona el valor para retornar al tema original. En este ejemplo, el tema de origen es Hablar con el cliente.
Vaya al tema de origen.
Agregue un nodo Pregunta y escriba "¿En qué ciudad vive?" para el mensaje.
En Identificar, seleccione la entidad preconstruida Ciudad.
Seleccione la variable para abrirla en el panel de propiedades de variables. Asígnele el nombre "customerCity" y, a continuación, seleccione Retornar valores a los temas originales.
Agregue un nodo Mensaje.
Seleccione el icono Insertar variable ({x}) y después seleccione customerCity.
Después de la variable en el cuadro de mensaje, escriba "¡En esta época del año tiene que ser una maravilla!".
Guarde el tema.
Configurar el tema de destino para una variable devuelta
Cuando devuelve una variable a un tema, el tema de destino es el tema que recibe valores del tema actual. En nuestro ejemplo, el tema de destino es Saludo.
Vaya al tema de destino.
La variable que seleccionó en el tema de origen debería aparecer en el nodo Redireccionamiento como variable de salida.
Guarde el tema.
Nodo analizar valor
El nodo Analizar valor le permite convertir un valor de un tipo en un valor de otro tipo. Al agregar un nodo a un tema, seleccione el icono Agregar nodo , apunte a Administración de variables, y seleccione Analizar valor.
Los escenarios clave que utilizan el nodo Analizar valor se centran en convertir JSON sin procesar o variables sin tipo (cuyo valor o estructura no se conoce hasta el tiempo de ejecución; por ejemplo, ChannelData) en tipos concretos.
El proceso comienza cuando se llama a un Flujo, que a su vez llama a una API. La API devuelve un resultado. Normalmente, tendría que analizar esta respuesta y devolver una o varias variables primitivas. Con el nodo Analizar valor, puede enviar el resultado completo de la API como una cadena. Por ejemplo:
{
"Name": "Parker",
"Position": "Product manager",
"Company": "Contoso",
"FormerPositions": [{
"Position": "Customer service representative"
}
]
}
La variable de cadena que tiene ahora se puede convertir en una variable de registro, con soporte completo de intellisense en Power Fx, utilizando este nuevo nodo. Un ejemplo con datos de muestra ayudará a ilustrar este proceso.
Ejemplo de uso del nodo Analizar valor
Agregue un nodo Analizar valor y seleccione la variable que desea analizar.
Seleccione el tipo de datos. En este caso, elija De datos de muestra.
Seleccione Obtener esquema de JSON de muestra e introduzca el ejemplo de JSON deseado en el editor que se abre.
Finalmente, especifique en qué variable desea colocar el valor analizado. Por lo general, crearía una nueva variable para esto.
Tenga en cuenta que la variable de salida ahora es del tipo correcto: Registro.
Además de parsear las cadenas JSON, un uso clave del nodo Analizar valor es analizar UntypedObjects en tiempo de ejecución. El caso de uso más común es cuando recibe un evento y necesita analizar el valor del evento. O bien, puede analizar la propiedad System.Activity.ChannelData, que varía en tiempo de ejecución según el canal.
Si tuviera que analizar la información de un evento procedente de Teams, tendría que usar la documentación para desarrolladores de Teams para encontrar un ejemplo de cómo podría ser el evento esperado y, a continuación, usar este ejemplo como datos de ejemplo, como se ha descrito anteriormente en esta sección.