Usar entidades y llenado de ranuras en agentes
Una gran parte de las conversaciones de agente en Copilot Studio es la comprensión del lenguaje natural, que es la capacidad de la IA para comprender la intención de un usuario. Por ejemplo, si le usuario dice "Intenté usar mi tarjeta de regalo, pero no funciona", el agente puede dirigir al usuario al tema relacionado con las tarjetas de regalo que no funcionan, aunque esa frase exacta no se incluya como frase desencadenadora.
Un aspecto fundamental del reconocimiento del lenguaje natural es identificar las entidades que se utilizan en un cuadro de diálogo de usuario. Vea el vídeo para comenzar con las entidades.
Una entidad puede concebirse como una unidad de información que representa un determinado tipo de tema del mundo real, como un número de teléfono, código postal, ciudad o el nombre de una persona. Con el conocimiento otorgado por las entidades, un agente puede reconocer de manera inteligente la información relevante de una entrada del usuario y guardarla para su uso posterior.
Entidades precompiladas
Las entidades de los agentes de chat le permiten almacenar información en grupos similares.
De manera estándar, Copilot Studio viene con un conjunto de entidades precompiladas, que representan los tipos de información más utilizados en los diálogos del mundo real, como la edad, los colores, los números y los nombres.
Con el conocimiento otorgado por las entidades, un agente puede reconocer de manera inteligente la información relevante de una entrada del usuario y guardarla para su uso posterior.
Para ayudar a entender esa noción, la entidad Dinero se puede utilizar como ejemplo.
Abra su agente en Copilot Studio, seleccione Configuración en la parte superior de la página y luego seleccione Entidades en el menú.
Verá la lista de las entidades precompiladas disponibles.
Seleccione la entidad Dinero para abrir el panel de detalles de la entidad.
Aquí puede ver una explicación de esta entidad y las formas en que se puede usar para buscar información relacionada con el dinero o la divisa a partir de la entrada de un usuario.
Por ejemplo, si un usuario introduce "Cuesta 1000 dólares", utilizando esta entidad de dinero, el agente sabe que "1000 dólares" representa el tipo de dinero de la información. Cuando el agente extrae esta entidad y la guarda en una variable, guardará "1000" como un número, aunque la información circundante sea texto.
Entidades personalizadas
Las entidades preconstruidas cubren los tipos de información más utilizados. En algunas ocasiones, como cuando se crea un agente que tiene un propósito específico, deberá enseñarle al modelo de comprensión del lenguaje del agente algún conocimiento específico del dominio.
Por ejemplo, supongamos que desea crear un agente para una tienda de excursionismo. En este caso, deberá enseñar al agente a reconocer la categoría "producto de equipos de excursionismo" en un diálogo.
Primero, cree una entidad personalizada. En este caso, puede crear una entidad que le de al agente el conocimiento de todas las categorías de productos de excursionismo.
Abra su agente en Copilot Studio, seleccione Configuración en la parte superior de la página y luego seleccione Entidades en el menú.
Seleccione Agregar una entidad>Nueva entidad.
Esto abre un panel donde puede elegir el tipo de entidad: ya sea una entidad Lista cerrada o una entidad Expresión regular (regex).
Entidades de lista cerrada
Las entidades de lista cerrada le permiten definir una lista de elementos. Estas entidades se usan mejor para listas pequeñas, que son fáciles de administrar y que tienen etiquetas de elementos simples.
Al seleccionar esta opción al crear una entidad, se muestra un panel donde puede especificar el nombre de la entidad, una descripción opcional e ingresar los elementos que desea incluir en la entidad.
Cuando introduce elementos, puede hacer lo siguiente:
- Seleccionar cada elemento y cambie su nombre.
- Seleccionar el icono de papelera para eliminar el elemento de la lista.
- Seleccione + Sinónimos (o seleccione los sinónimos enumerados si ya se han agregado) para abrir el panel Editar sinónimos.
Puede agregar sinónimos para expandir manualmente la lógica de coincidencia para cada elemento de la lista de la entidad. Por ejemplo, en el elemento "senderismo", puede agregar "senderismo de montaña" y "montañismo" como sinónimos.
Para cada entidad, también puede habilitar la Coincidencia inteligente.
La coincidencia inteligente es parte de la inteligencia respaldada por el modelo de reconocimiento del lenguaje del agente. Con esta opción habilitada, el agente interpretará la entrada del usuario utilizando lógica difusa, según los elementos enumerados en la entidad.
En particular, el agente corregirá automáticamente los errores ortográficos y expandirá su lógica de coincidencia semánticamente. Por ejemplo, el agente puede hacer coincidir automáticamente "softbol" con "béisbol".
Cuando haya terminado de crear o editar su entidad, seleccione Guardar para guardar y volver a la lista de entidades. Para descartar los cambios, seleccione Cerrar.
Entidades de expresión regular (regex)
Las entidades de expresión regular (regex) le permiten definir patrones lógicos que puede usar para hacer coincidir y extraer información de una entrada. Las entidades regex son excelentes para la comparación de patrones complejos frente a la entrada de un usuario, o si necesita permitir variaciones específicas en cómo un usuario puede formatear o introducir su entrada en una conversación.
Por ejemplo, podría usar una entidad Regex para identificar elementos como un identificador de seguimiento, un número de licencia, un número de tarjeta de crédito o una dirección IP en una cadena que escribe el usuario en el agente.
Tras seleccionar esta opción, puede especificar el nombre de la entidad, una descripción opcional e introducir el patrón de regex que debería usarse para hacer coincidir y extraer artículos de entidad desde la entrada.
Una entidad regex de Copilot Studio usa la Sintaxis de expresiones regulares .NET.
De forma predeterminada, la búsqueda de patrón distingue mayúsculas y minúsculas. Para que no distinga entre mayúsculas y minúsculas, utilice la opción de expresión regular (?i)
en su cadena de patrón. En el panel de entidades regex se incluyen algunos ejemplos básicos. Para obtener más información sobre la sintaxis y más ejemplos, vea Lenguaje de expresiones regulares: referencia rápida.
Si necesita hacer que la expresión regular se adapte a varios patrones, puede usar el operador de alternancia |
para concatenar expresiones regulares. Por ejemplo, puede combinar dos patrones regex para buscar tanto el formato antiguo como el nuevo de un código de id. de producto.
Cuando haya terminado de crear o editar su entidad, seleccione Guardar para guardar y volver a la lista de entidades. Para descartar los cambios, seleccione Cerrar.
Usar entidades en una conversación
Ahora que ha hecho el trabajo de dar al agente el conocimiento sobre los equipos de excursionismo al crear esa entidad de categoría de producto y algunas otras entidades personalizadas, puede comenzar a usarlas al crear una conversación de agente.
Vaya a la pestaña Temas para el agente que desea editar.
Abra el tema de una entidad que desee recopilar.
Seleccione el icono Agregar nodo y, a continuación, seleccione Formular una pregunta.
En Identificar, seleccione la entidad que ha creado en Entidades personalizadas.
Opcionalmente, también puede seleccionar elementos para mostrar como botones. Por ejemplo, si desea mostrar algunas categorías como botones para que los usuarios puedan elegirlas cómodamente como entrada, puede elegir Seleccionar opciones para el usuario y luego seleccionarlas de la lista que contiene los elementos que agregó cuando creó la entidad personalizada.
Nombre la variable para la salida de la respuesta del usuario, si es necesario.
Llenado de ranuras
El Llenado de ranuras es un concepto de comprensión del lenguaje natural que significa guardar una entidad extraída en un objeto. Sin embargo, en Copilot Studio, el llenado de ranuras significa colocar el valor de la entidad extraída en una variable.
Seguiremos usando el tema de las actividades de excursionismo como ejemplo, que se activa escribiendo "Quiero comprar algo" en el chat de prueba.
El tema se activa con éxito y el agente solicita el tipo de actividad, que también muestra las opciones de botón especificadas al crear el nodo Formular una pregunta. En el árbol de diálogo, el seguimiento entre temas también muestra que el agente se está ejecutando en el nodo de preguntas que acaba de editar.
Un usuario puede usar las opciones predefinidas seleccionando uno de los botones. Alternativamente, también pueden escribir algo como "trekking" y ver que se asigna a "senderismo", ya que esas palabras se definieron como sinónimos.
En el seguimiento entre temas, se muestra que el cuadro de diálogo se ha enrutado correctamente a la ruta en la que el valor de la categoría del producto es "senderismo". Puede inspeccionar el valor de la variable desde la ventana de observación de variable en la parte inferior del lienzo de creación. En la ventana de observación, se muestra que el valor de la variable es "senderismo".
Esencialmente, el llenado de ranuras se ha realizado al insertar la entidad extraída "senderismo" en la variable VarCampType
.
También puede usar lo que se conoce como "llenado de ranuras proactivo", donde el usuario puede especificar múltiples piezas de información que se asignan a múltiples entidades. El agente puede entender automáticamente qué información pertenece a qué entidad. En los casos en que no esté seguro de la asignación prevista, solicitará al usuario que sea más específico al proporcionar opciones.
En este ejemplo, el usuario escribió "Estoy aburrido, pero me gusta el montañismo". Este mensaje incluye una frase desencadenadora de que el usuario desea ayuda con actividades al aire libre y también proporciona una segunda información: "montañismo", que es un sinónimo de senderismo definido por la entidad. En este caso, el agente completa tanto la entidad para elegir la actividad de excursionismo como el tipo de actividad.
Al realizar un seguimiento entre los temas, puede ver que el agente toma esta entrada del usuario y omite de forma inteligente el nodo de pregunta que solicita el tipo de actividad.
El agente siempre está escuchando activamente la entrada del usuario, recordando la información de antemano para que pueda omitir los pasos innecesarios según corresponda.
Reiniciemos las pruebas nuevamente e intentemos otro caso. En esta ronda, puede agregar un par de nodos de preguntas más que piden cosas como el tiempo que tiene para la actividad (usando la entidad Duración) y el rango de precios (usando la entidad Dinero).
Esta vez, cuando se presenta la pregunta de la categoría del producto, en lugar de decirle al agente solo la categoría del producto, el usuario puede decir "Quiero comprar un par de botas de montaña por menos de 100 $". En este ejemplo, el agente no solo puede enrutar a la ruta correcta de la categoría de productos de senderismo, sino también llenar activamente los espacios solicitando el tipo de equipo de senderismo y la información del rango de precios objetivo.
El llenado proactivo de ranuras se puede controlar manualmente a nivel de nodo. Si desea formular siempre la pregunta dentro de un nodo específico, independientemente de si la ranura se ha llenado con las respuestas de los usuarios anteriores, puede deshabilitar la opción Saltar pregunta para ese nodo de pregunta. Realice los siguientes pasos para desactivar la opción Omitir pregunta.
Selecciona el icono Más (…) del nodo Pregunta y luego seleccione Propiedades. Aparece el panel de Propiedades de pregunta.
En el panel Propiedades de la pregunta, seleccione Comportamiento de la pregunta.
En el panel Comportamiento de la pregunta, en Omitir pregunta, seleccione Preguntar cada vez y luego seleccione Guardar en la parte superior de la página.