Contextos de entrada y salida

Se aplican contextos de entrada y salida a los intents. En conjunto, estos contextos controlan el flujo de la conversación:

  • Los contextos de salida controlan los contextos activos. Cuando se detecta una coincidencia con un intent, se activan los contextos de salida configurados para ese intent.
  • Los contextos de entrada controlan la detección de coincidencias con intents. Mientras existan contextos activos, Dialogflow será más propenso a detectar coincidencias con intents configurados con contextos de entrada que sean un subconjunto de los contextos activos en el momento.

Los contextos te permiten hacer lo siguiente:

  • Controlar el orden de detección de coincidencias con intents
  • Crear intents para contextos específicos con las mismas frases de entrenamiento

Por ejemplo, considera los siguientes intents:

Nombre del intent Frases de entrenamiento Contextos de entrada Contextos de salida
pet-choose “perros”, “gatos” - $pet
dog-show "Muéstrame una foto" perros -
cat-show "Muéstrame una foto" gatos -

El intent pet-choose (mascota-elegir) le pide al usuario final que seleccione perros o gatos. Una vez que se selecciona una opción, esta se guarda en un parámetro $pets ($mascotas), que se usa como contexto de salida. Los intents dog-show (perro-mostrar) y cat-show (gato-mostrar) muestran una imagen de perros o gatos, según el contexto activo.

Contextos de salida

Se pueden aplicar varios contextos de salida a un intent. Cuando se detecta una coincidencia con un intent, se activan los contextos de salida aplicados a ese intent.

Referencias de parámetros para contextos activos

Cuando se detecta una coincidencia con un intent con contexto de salida, se pueden utilizar los valores de sus parámetros recopilados como almacenamiento temporal con referencias de parámetros para contextos activos. Se podrá acceder a estos valores durante futuras operaciones de determinación de intent, siempre y cuando el contexto permanezca activo.

Por ejemplo, considera la siguiente variación del ejemplo anterior sobre mascotas:

Nombre del intent Frases de entrenamiento Parámetros Contextos de entrada Contextos de salida Respuesta
pet-choose “perros”, “gatos” $pet - pet-chosen “Elegiste $pet”
pet-show "Muéstrame una foto" - pet-chosen - "Aquí tienes una foto de #pet-chosen.pet"

El intent pet-choose (mascota-mostrar) establece el parámetro $pet ($mascota) en el valor elegido por el usuario final y activa el contexto pet-chosen (mascota-elegida). Cuando se detecta una coincidencia con el intent pet-show (mascota-mostrar), la respuesta al intent puede acceder al parámetro $pet ($mascota) a través del contexto activo.

Vida útil

Cada contexto activo tiene una vida útil que define la cantidad de turnos conversacionales durante los que el contexto permanece activo. La vida útil predeterminada es de cinco turnos de conversación para los intents normales y de dos turnos de conversación para los intents de seguimiento. Puedes anular la duración predeterminada de cualquier contexto. Además, todos los contextos caducan 20 minutos después de su activación. Cuando se detecta una coincidencia con un intent que tiene un contexto de salida ya activo, se restablecen la vida útil y el temporizador de vencimiento de ese contexto.

Por ejemplo, considera el siguiente diálogo con un agente de información sobre mascotas. La duración del contexto cats (gatos) es de dos turnos.

Turno Diálogo Explicación
1 Agente: ¿Sobre qué tipo de mascota quieres saber? El detecta la coincidencia con el intent pet-init (mascota-inicio).
2 Usuario: Me gustan los gatos.
Agente: ¿Qué quieres saber sobre los gatos?
El intent pet-select (mascota-elegir) tiene un contexto de salida cats (gatos), que se activa.
3 Usuario: ¿Qué aspecto tienen?
Agente: Aquí tienes una foto de un gato. ¿Qué más quieres saber?
El intent cat-image (imagen-gato) tiene cats (gatos) como contexto de entrada, por lo que se detecta la coincidencia con él. El contexto cats (gatos) está activo desde hace 1 turno.
4 Usuario: ¿Qué sonido hacen?
Agente: Aquí tienes un sonido de gato. ¿Qué más quieres saber?
El intent cat-audio (audio-gato) tiene cats (gatos) como contexto de entrada, por lo que se detecta la coincidencia con él. El contexto cats (gatos) está activo desde hace 2 turnos.
5 Usuario: ¿Qué tamaño tienen?
Agente: ¿Sobre qué tipo de mascota quieres saber?
Vuelve a asignarse el intent pet-init (mascota-elegir) porque el contexto cats (gatos) ya no está activo.

Contextos de entrada

Mientras existan contextos activos, Dialogflow será más propenso a detectar coincidencias con intents configurados con contextos de entrada que correspondan a los contextos activos en ese momento. Las reglas detalladas de detección de coincidencia con intents son las siguientes:

  1. Para que se detecte la coincidencia con un intent, su lista de contextos de entrada debe ser un subconjunto de la lista de contextos activos en ese momento. Esto también se aplica a los intents que no tienen contextos de entrada.
  2. En el caso de los intents que satisfacen la regla 1, es más probable que detecte una coincidencia con aquellos cuya lista de contextos de entrada sea más similar a la lista de contextos activos en el momento.

Por ejemplo:

  • Los intents sin contextos de entrada pueden coincidir en cualquier momento.
  • Si no hay contextos activos, solo se pueden detectar coincidencias con intents que no tengan contextos de entrada.
  • Si están activos los contextos “A” y “B”, no se puede detectar una coincidencia con un intent que tenga los contextos de entrada “A” y “C”.
  • Si están activos los contextos “A”, “B” y “C”, puede detectarse una coincidencia con un intent que tenga contextos de entrada “A” y “B”.
  • Si están activos los contextos “A” y “B”, es más probable que se detecte una coincidencia con un intent que tenga los contextos de entrada “A” y “B” que con un intent que no tenga contextos de entrada o solo tenga el contexto de entrada “A”.