Acciones y parámetros

En esta página se describen los ajustes de acciones y parámetros de las intenciones, así como su uso cuando se identifican intenciones en el tiempo de ejecución.

Dónde encontrar estos datos

Cuando se crea un agente, lo más habitual es usar la consola de Dialogflow ES (consulta la documentación o abre la consola). Las instrucciones que se indican a continuación se centran en el uso de la consola. Para acceder a los datos de acciones y parámetros, siga estos pasos:

  1. Ve a la consola de Dialogflow ES.
  2. Selecciona un agente.
  3. Selecciona Intenciones en el menú de la barra lateral de la izquierda.
  4. Selecciona una intención.
  5. Desplázate hacia abajo hasta la sección Acción y parámetros.

Captura de pantalla de los campos de acción y parámetros

Si vas a crear un agente con la API en lugar de con la consola, consulta la referencia de intents. Los nombres de los campos de la API son similares a los nombres de los campos de la consola. Las instrucciones que se indican a continuación destacan las diferencias importantes entre la consola y la API.

Acciones

El campo action es un campo sencillo que te ayuda a ejecutar la lógica en tu servicio.

Cuando crees un agente, puedes asignar a este campo el texto que te resulte útil.

Cuando se encuentra una coincidencia con una intención en el tiempo de ejecución, Dialogflow proporciona el valor de la acción a la solicitud del webhook de cumplimiento o a la respuesta de interacción de la API. Se puede usar para activar una lógica específica en tu servicio.

Parámetros

Cuando se encuentra una coincidencia con una intención en el tiempo de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final como parámetros. Cada parámetro tiene un tipo, denominado tipo de entidad, que determina exactamente cómo se extraen los datos. A diferencia de las entradas sin procesar de los usuarios finales, los parámetros son datos estructurados que se pueden usar fácilmente para realizar alguna lógica o generar respuestas.

Cuando creas un agente, controlas cómo se extraen los datos anotando partes de tus frases de entrenamiento y configurando los parámetros asociados.

En la siguiente lista se muestran los campos de una configuración de parámetros. Se muestran ejemplos de la frase de entrenamiento "book a room on Tuesday" (reserva una habitación el martes), donde se anota "Tuesday" (martes).

  • Obligatorio: marca esta casilla si el parámetro es obligatorio para que se complete la intención. Consulta la sección Relleno de espacios con parámetros obligatorios más abajo.
  • Nombre del parámetro: nombre que identifica el parámetro. Ejemplo: date
  • Entidad: el tipo de entidad asociado al parámetro. Ejemplo: @sys.date
  • Valor: En la mayoría de los casos, se asigna una referencia de parámetro, como $parameter-name, que se usa como marcador de posición del valor extraído en el tiempo de ejecución. Sin embargo, este campo también se puede usar para seleccionar valores alternativos. Consulta la sección Valores y referencias de parámetros a continuación. Ejemplo: $date
  • Es una lista: marca esta casilla si los valores se deben devolver como una lista. Consulta la sección Lista de parámetros que aparece más abajo.
  • Peticiones: preguntas que el agente hará al usuario final si no se ha proporcionado este parámetro. Este campo solo se usa si se marca el campo Obligatorio. Consulta la sección Relleno de espacios con parámetros obligatorios más abajo.
  • Valor predeterminado: Es el valor predeterminado del parámetro cuando el usuario final no proporciona ninguno. Para cambiar el valor predeterminado con la consola, debes colocar el cursor sobre la fila del parámetro y hacer clic en el menú de la derecha.

Cuando se encuentra una coincidencia con una intención en el tiempo de ejecución, Dialogflow proporciona datos de parámetros a la solicitud de webhook de cumplimiento o a la respuesta de interacción de la API. Se proporcionan como una asignación de nombres de parámetros a valores de parámetros.

Cuando creas un agente, tus respuestas pueden incluir valores de parámetros. Consulte la sección Valores y referencias de parámetros más abajo.

Mostrar parámetros

Cuando creas un agente con la consola, si marcas la opción Es una lista, el parámetro se configura como una lista. Las listas pueden contener varios elementos. Por ejemplo, un agente de pedidos de productos puede esperar las siguientes expresiones del usuario final:

  • "Quiero manzanas"
  • "Quiero manzanas y naranjas"
  • "Quiero manzanas, naranjas y plátanos"

Cuando anotes frases de entrenamiento con parámetros de lista, tus frases pueden contener uno o varios ejemplos de parámetros, y debes anotar cada uno por separado:

Captura de pantalla de la anotación de parámetros de lista.

Una vez que anotes al menos dos palabras o frases con el mismo parámetro en una sola frase de entrenamiento, la opción Es una lista se habilitará automáticamente. Si inhabilita esta opción, pero mantiene la misma anotación, la opción Es lista se volverá a marcar automáticamente cuando abra la página con esta anotación.

En los agentes multilingües, la opción Es lista no es específica de un idioma.

Valores y referencias de parámetros

Las referencias de parámetros son variables que contienen valores de parámetros extraídos en el tiempo de ejecución. Cuando creas un agente, puedes usar referencias de parámetros en las respuestas de las intenciones, en las peticiones de parámetros y en el campo Valor del parámetro.

Por ejemplo, puedes usar $parameter-name en una respuesta de intención. Cuando Dialogflow responda al usuario, sustituirá esa referencia de parámetro por el valor del parámetro extraído en el tiempo de ejecución. Esto es útil para resumir la información proporcionada por el usuario final. Por ejemplo, la respuesta de tu intención podría ser la siguiente: "De acuerdo, te he reservado una habitación para el $date".

Referencia de parámetros básicos

Para hacer referencia a un valor de parámetro extraído por la entidad asociada, usa el siguiente formato:

$parameter-name

Por ejemplo, si el nombre del parámetro es date, puede hacer referencia a él como $date.

Referencia de parámetro de un valor original

Cuando el texto coincide con una entidad concreta, a menudo se convierte en texto que es más cómodo de procesar. Por ejemplo, la palabra "manzanas" en una expresión de usuario final se puede extraer como "manzana" para una entidad de fruta. Para hacer referencia a un valor de parámetro exactamente como lo ha escrito o dicho el usuario final, usa el siguiente formato:

$parameter-name.original

Por ejemplo, si el nombre del parámetro es date, puede hacer referencia al valor original como $date.original.

Referencia de parámetros para fechas ambiguas

Cuando un parámetro se asocia a la entidad de sistema @sys.date y el usuario final proporciona una fecha parcial (sin especificar el mes, el día y el año), Dialogflow buscará la fecha más próxima en el futuro. Sin embargo, también puedes obtener variaciones de esta fecha.

Puedes obtener la concordancia parcial explícita, donde Dialogflow sustituye la parte desconocida por Us, con el siguiente formato:

$parameter-name.partial

Puedes obtener la fecha más cercana del pasado con el siguiente formato:

$parameter-name.recent

Por ejemplo, si hoy es 11 de agosto del 2021, el nombre del parámetro es date y el usuario dice "13 de agosto":

Referencia de parámetros Valor resuelto
$date 2021-08-13
$date.partial UUUU-08-13
$date.recent 2020-08-13

Referencia de parámetros de una entidad compuesta

Las entidades compuestas son entidades que contienen otras subentidades. Para hacer referencia al valor de una subentidad de un parámetro, usa el siguiente formato:

$parameter-name.sub-entity-name

Por ejemplo, si el nombre del parámetro es move y el nombre de la subentidad es direction, puede hacer referencia al valor de la subentidad como $move.direction.

Referencia de parámetros de un contexto activo

Los contextos pueden servir como almacenamiento temporal de los valores de los parámetros. Para hacer referencia a un valor de parámetro obtenido de un contexto activo, use el siguiente formato:

#context-name.parameter-name

Por ejemplo, si el nombre del parámetro es room y reservation es un contexto activo, puede hacer referencia al valor del parámetro como #reservation.room.

Referencia de parámetros de un parámetro de evento

Para hacer referencia a un parámetro de evento, usa el siguiente formato:

#event-name.parameter-name

Por ejemplo, si el nombre del parámetro es duration y el nombre del evento es alarm, puede hacer referencia al parámetro de evento como #alarm.duration.

Campo Valor del parámetro

Las referencias de parámetros en el campo Valor del parámetro tienen un significado especial. El contenido de este campo determina el valor resuelto de $parameter-name en las respuestas de intención y las peticiones de parámetros. Dialogflow procesa los datos de los parámetros en el siguiente orden:

  1. Extrae el valor del parámetro de la expresión del usuario final mediante la entidad asociada.
  2. Resuelve el contenido del campo Valor del parámetro.
  3. Asigna a $parameter-name el contenido resuelto del campo Valor del parámetro. Si el campo Valor no tiene el valor $parameter-name, se restablecerá el valor de $parameter-name a otro valor.
  4. Resuelve el contenido de las respuestas de intenciones y las peticiones de parámetros.

A continuación, se muestran algunos ejemplos para ilustrar los efectos de este orden en la expresión de un usuario final "Quiero comprar una camiseta pequeña".

Ubicación de referencia de parámetros Contenido configurado Contenido resuelto
Campo Valor del parámetro $size S
Respuesta de intent Has elegido la talla: $size Has elegido la talla S
Ubicación de referencia de parámetros Contenido configurado Contenido resuelto
Campo Valor del parámetro $size.original pequeña
Respuesta de intent Has elegido la talla: $size Has elegido el tamaño pequeño
Ubicación de referencia de parámetros Contenido configurado Contenido resuelto
Campo Valor del parámetro $size S
Respuesta de intent Has elegido el tamaño: $size.original. Has elegido el tamaño pequeño

Relleno de espacios con parámetros obligatorios

Cuando creas un agente, puedes marcar los parámetros como obligatorios. Una intención no se completa hasta que el usuario final ha proporcionado datos para cada uno de estos parámetros obligatorios.

Captura de pantalla de los campos de parámetros obligatorios

Cuando se encuentra una coincidencia con una intención en el tiempo de ejecución, el agente de Dialogflow sigue recogiendo información del usuario final hasta que este proporciona datos para cada uno de los parámetros obligatorios. Este proceso se denomina relleno de espacios.

Dialogflow no envía una solicitud de webhook de respuesta hasta que ha recogido todos los datos obligatorios del usuario final, a menos que se haya habilitado la opción webhook para rellenar espacios.

Dialogflow envía una respuesta de interacción de la API en cada paso de la asignación de ranuras. En cada una de estas respuestas de relleno de espacios, la intención y la acción serán las mismas, y se proporcionarán los parámetros recogidos hasta el momento.

Cuando creas un agente, le proporcionas las peticiones que usará para obtener datos de parámetros del usuario final. También puedes proporcionar variaciones de la petición para que el agente no siempre haga la misma pregunta.

Captura de pantalla de las peticiones de parámetros

Por ejemplo, supongamos que el agente de tu tienda de ropa tiene una intención con parámetros obligatorios para lo siguiente:

  • Tipo de ropa
  • quantity
  • size
  • color

Completar una intención puede tener el siguiente aspecto:

Usuario: Me gustaría comprar una camiseta.
Agente: ¿Cuántos quieres?
Usuario: 3
Agente: ¿De qué color quieres que sea?
Usuario: Negro
Agente: ¿Qué talla?
Usuario: Mediana
Agente: Entendido. Son tres camisetas negras de la talla mediana.

Si el usuario final proporciona datos de más de un parámetro en una sola expresión, Dialogflow recoge los datos proporcionados y sigue pidiendo los que faltan. Por ejemplo, el usuario final puede decir "Quiero comprar tres camisetas negras". Dialogflow le preguntaría al usuario el tamaño.

Parámetros de orden

Cuando creas un agente, puedes ordenar los parámetros, lo que determina el orden en el que el agente pedirá al usuario final los datos que falten.

Cuando creas un agente desde la consola, al colocar el cursor sobre un parámetro, se muestra un icono de reordenar a la derecha. Puedes arrastrar este icono para cambiar la posición del parámetro en la lista.

Referencias de parámetros en las peticiones

Cuando creas un agente, puedes usar referencias de parámetros en las peticiones, pero solo para los parámetros obligatorios antes de la petición. Por ejemplo, si el parámetro color está antes que el parámetro quantity, puedes usar la siguiente petición para el parámetro quantity: How many $color t-shirts would you like to buy?

Cancelar el relleno de espacios

Cuando el usuario final dice una frase para salir, como "Cancelar", "Para", "Ya está", etc., el agente responde con "De acuerdo, cancelado" y borra los contextos de relleno de espacios.

Si usas la API, el campo DetectIntentResponse.queryResult.cancelsSlotFilling se define como true cuando se cancela el relleno de espacios. Para obtener más información, consulta la documentación de detectIntent sobre el tipo Sessions.