Entregas

Para el turno de conversación de un agente, este debe responder al usuario final con una respuesta a una pregunta, una consulta de información o una finalización de la sesión. Es posible que el agente también deba comunicarse con el servicio para generar respuestas dinámicas o tomar medidas durante un turno. La entrega se usa para lograr todo esto.

Una entrega puede contener cualquiera de los siguientes elementos:

  • Mensajes de respuesta estática.
  • Webhook llama para obtener respuestas dinámicas o para realizar acciones.
  • Ajustes predeterminados de parámetros para establecer o anular los valores del parámetro

Durante el turno de un agente, es posible (y, a veces, conveniente) llamar a varias entregas, cada una de las cuales puede generar un mensaje de respuesta. Dialogflow mantiene estas respuestas en una cola de respuestas. Una vez que el turno del agente termina, Dialogflow envía las respuestas ordenadas al usuario final.

La entrega de ES se limita a conectar un servicio de webhook. Se aumentó el alcance de la entrega para CX, por lo que ahora abarca todos los tipos de mensajes y respuestas.

Casos prácticos de entrega

La entrega se usa en todas partes en que se necesita un mensaje de respuesta:

Para cada uno de estos casos de uso, la consola abrirá un panel de edición de entregas.

Captura de pantalla de la entrega

Mensajes de respuesta estática (opciones de diálogo)

Los mensajes de respuesta estáticos son respuestas del agente que defines en el momento del diseño. Se definen durante la creación de la entrega. En el entorno de ejecución, estas respuestas se agregan a la cola de respuestas.

Existen varios tipos de mensajes de respuesta, que se describen en las subsecciones que siguen. Cuando uses la consola, un panel de entregas tendrá una tarjeta inicial de mensaje de respuesta de texto, pero puedes hacer clic en Agregar opción de diálogo para agregar más tarjetas para otros tipos de mensajes de respuesta.

Texto

Los mensajes de respuesta de texto envían el diálogo al texto al usuario final. Si tus llamadas a la API de detección de intent o las llamadas de integración usan síntesis de voz, este texto se usará para generar contenido de audio. En este caso, en el texto proporcionado, se puede usar el lenguaje de marcación de síntesis de voz (SSML) de forma opcional.

Puedes definir varias tarjetas de respuesta de texto y varias respuestas de texto dentro de cada tarjeta. Si defines varias tarjetas, se concatenan para una sola respuesta en el entorno de ejecución. Si defines varias respuestas dentro de una tarjeta, uno de los mensajes de la tarjeta se elige de forma aleatoria en el entorno de ejecución.

Estos mensajes de texto pueden contener referencias de parámetros y funciones del sistema intercaladas.

Carga útil personalizada

Algunas integraciones son compatibles con una respuesta de carga útil personalizada para administrar respuestas enriquecidas. Estas cargas útiles personalizadas se suministran en un formato JSON definido en la documentación de la integración. Por ejemplo, consulta el formato de carga útil personalizado de Dialogflow Messenger.

Puedes incluir referencias de parámetros en el JSON de carga útil personalizado. Deben tratarse como valores de string JSON, por lo que debes colocarlos entre comillas dobles. Por ejemplo:

{
  "someField": "$session.params.date"
}

También puedes enviar una carga útil personalizada a las integraciones que desarrollas. Dialogflow no se encargará del procesamiento, por lo que tendrás que manejarlo con tu propia lógica empresarial.

Consulta también las plantillas de carga útil personalizadas a continuación.

Transferencia del agente humano

Esta respuesta le indica al emisor de la API de detección de intent que la conversación se debe transferir a un agente humano. Dialogflow solo usa esta señal para identificar las conversaciones que se entregarán con fines de medición y no altera el estado de la sesión de ninguna manera. El sistema o la integración pueden usar esta señal para realizar cualquier acción que sea necesaria para transferir la conversación. Dialogflow no impone ninguna estructura en estos datos, por lo que puedes elegir cualquier estructura que se adapte a tu sistema.

Metadatos de la conversación correcta

Esta respuesta le indica al emisor de la API de detección de intent que la conversación con el agente de Dialogflow se realizó correctamente. Dialogflow solo usa esta señal para identificar las conversaciones que se completaron de forma correcta con fines de medición y no altera el estado de la sesión de ninguna manera. El sistema o la integración pueden usar esta señal para realizar cualquier acción que sea necesaria. Dialogflow no impone ninguna estructura en estos datos, por lo que puedes elegir cualquier estructura que se adapte a tu sistema.

Reproduce el audio grabado previamente

Esta respuesta reproduce un archivo de audio para las integraciones que admiten esta característica.

Los requisitos de formato de archivo de audio pueden variar según las diferentes integraciones. Por ejemplo, consulta los requisitos. para Dialogflow CX Phone Gateway.

Para integraciones de telefonía de socios, El socio debe poder acceder a la URL del archivo de audio. Una URL disponible públicamente, como una archivo público en Cloud Storage siempre es accesible para el socio. El socio también puede otorgar acceso restringido a los archivos de audio. Consulta la documentación del socio para obtener más detalles.

Texto de audio de salida

Esta respuesta es similar a la texto, sin embargo, solo se aplica a la síntesis de voz. Si tu agente puede manejar sesiones de texto y de voz, puedes usar respuestas únicas de texto y texto de audio de salida a fin de crear una experiencia del usuario diferente para texto en comparación con voz Si se proporciona texto de audio de salida para una sesión de voz, se ignoran las respuestas de texto sin formato.

Si tu agente maneja sesiones de texto y voz, y deseas los mismos mensajes de respuesta, solo usa respuestas de texto para sesiones de texto y voz.

El texto de audio de salida se concatena entre las respuestas de texto. Si las respuestas de texto del audio de salida son una mezcla de texto y SSML, el resultado concatenado se trata como SSML. Lo ideal es que el diseñador del agente use texto o SSML de manera coherente.

Respuesta condicional

Este tipo de respuesta se usa para las respuestas condicionales. El formato general es el siguiente:

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

Donde:

  • [condition] es el mismo formato que se usa para las condiciones de enrutamiento.
  • [response] es una respuesta de texto
  • Los bloques elif y else son opcionales

Por ejemplo:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

[condition] y [response] pueden usar funciones del sistema intercaladas para generar valores dinámicos durante las conversaciones. Para obtener más información, consulta las referencias de las funciones del sistema y las condiciones de enrutamiento. El [condition] se resuelve en función del estado de la sesión al comienzo de la la entrega de datos. Si [response] depende del estado de la sesión, se resuelve. según el estado actualizado de la sesión al final de la entrega.

En el caso de los agentes multilingües, [condition] es común para todos los idiomas, mientras que [response] es específico de un idioma. Cuando cambias [condition] para un idioma en la consola, esta parte se actualiza en todos los idiomas del agente y, desde que se vuelve una condición nueva, se borra [response] para todos los idiomas que no sea el idioma que seleccionaste cuando actualizaste [condition].

Llamada de transferencia telefónica

En algunas integraciones de telefonía, puedes especificar un número de teléfono de EE.UU. para la transferencia de llamadas. En el entorno de ejecución, cuando el agente virtual de Dialogflow llama a una entrega con transferencia de llamadas, la llamada se transfiere al número especificado y se suspende el control del agente virtual.

Mensajes de respuesta específicos del canal

Cuando defines la entrega, puedes crear mensajes de respuesta específicos del canal, para que puedas crear respuestas orientadas a chat de texto, voz, SMS, integraciones específicas que respaldan canales, etcétera. Cualquier mensaje de respuesta que no sea específico de un canal se denominan mensajes de respuesta predeterminados.

Durante el tiempo de ejecución, Dialogflow seleccionará el mensaje de respuesta predeterminado, o un mensaje de respuesta específico del canal Cuando una solicitud de detección de intent especifica un canal. Como práctica recomendada, debes definir mensajes de respuesta predeterminados, incluso si usas mensajes de respuesta específicos del canal. Los mensajes de respuesta predeterminados pueden actuar como resguardo cuando el sistema no proporciona un canal válido.

El nombre del canal es un campo personalizado que puedes configurar con cualquier texto. Si usas la API de Dialogflow directamente para llamadas al entorno de ejecución, puedes usar el nombre que quieras. Si usas una integración existente, debes usar los nombres de los canales que reconoce la integración.

Configuración de mensajes de respuesta específicos del canal al momento de diseñar

Proporcionar mensajes de respuesta específicos del canal para la entrega cuando uses la consola:

  • Haz clic en Agregar canal después de agregar los mensajes de respuesta predeterminados. La interfaz de usuario te permitirá agregar mensajes de respuesta específicos del canal. Vuelve a hacer clic en Agregar canal para agregar un canal diferente.

Proporcionar mensajes de respuesta específicos del canal para la entrega cuando uses la API:

  • Establece el campo Fulfillment.messages[i].channel en el canal deseado para cada mensaje de respuesta. Si este campo no está configurado, la respuesta es un mensaje de respuesta predeterminado.

Utiliza mensajes de respuesta específicos del canal en el tiempo de ejecución

Para recibir un mensaje de respuesta específico del canal, haz lo siguiente: Se debe especificar el canal en el mensaje de solicitud de detección de intent. Consulta el campo queryParams.channel en el método detectIntent. del tipo Sessions.

Selecciona un protocolo y una versión para la referencia de sesión:

Protocolo V3 V3beta1
REST Recurso de sesión Recurso de sesión
RPC Interfaz de sesión Interfaz de sesión
C++ SessionsClient No disponible
C# SessionsClient No disponible
Go SessionsClient No disponible
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP No disponible No disponible
Python SessionsClient SessionsClient
Ruby No disponible No disponible

Si no se define ningún canal en una solicitud, o no se encuentre un canal coincidente en la entrega, el mensaje de respuesta predeterminado será devuelto por Dialogflow.

Plantillas de carga útil personalizadas

Si usas cargas útiles personalizadas con frecuencia, Deberías usar plantillas de carga útil personalizadas. Las cargas útiles personalizadas a veces son grandes y complejas, por lo que el uso de plantillas puede facilitar el proceso de creación de agentes.

Puedes proporcionar estas plantillas en la configuración de tu agente por lo que están disponibles para su selección cada vez que crees una entrega para tu agente.

Por ejemplo: la carga útil de JSON para “sí” y "no" los botones pueden definirse como plantillas de carga útil personalizadas. Cuando crees una entrega que requiera estos botones, solo debes seleccionar la plantilla cuando creas la entrega.

Cuando seleccionas una plantilla para una carga útil personalizada de entrega, el contenido de la plantilla se inserta en la carga útil. Luego, puedes editar la carga útil según sea necesario.

Si cambias una plantilla, el cambio no se propaga automáticamente a todas las cargas útiles de entrega en los que se hace referencia.

Para crear una plantilla de carga útil personalizada, consulta la configuración general del agente.

Para seleccionar una plantilla de carga útil personalizada cuando creas una entrega, Haz clic en Seleccionar plantilla cuando crees una carga útil personalizada de entrega.

Llamadas de webhook

Cuando se llama a una entrega y esta tiene un webhook, el agente envía una solicitud a tu webhook. El webhook puede realizar cualquier acción necesaria dentro de tu servicio, proporcionar un mensaje de respuesta dinámica, anular los valores de los parámetros y cambiar la página actual.

A continuación, se describe la configuración de webhook para la entrega:

Término Definición
Habilitar webhook Esto habilita el webhook para la entrega.
Webhook Selecciona el recurso de webhook.
Etiqueta La etiqueta de texto que proporciones aquí se propagará en el campo WebhookRequest.fulfillmentInfo.tag de la solicitud de webhook que se envía a tu servicio de webhook. Se puede usar para controlar el comportamiento del webhook de una manera específica de la entrega.
Mostrar respuesta parcial Permite cancelar la reproducción de una respuesta parcial. Consulta la configuración de voz avanzada para obtener más detalles.

Ajustes predeterminados de los parámetros

Puedes usar una entrega para proporcionar ajustes predeterminados que establezcan o anulen los valores de parámetros actuales. Estos ajustes predeterminados se aplicarán antes de resolver los mensajes de respuesta estática o llamar a un webhook.

También puedes usar las funciones del sistema para ajustar el parámetro a un valor generado de forma dinámica.

A continuación, se muestran algunos ejemplos:

  • Establece un parámetro now en la hora actual:

    Parámetro Valor
    ahora $sys.func.NOW()
  • Incrementa un parámetro existente counter en 1:

    Parámetro Valor
    contador $sys.func.ADD($session.params.counter, 1)
  • Configura un parámetro new-cost con el valor del parámetro other-cost. y, al mismo tiempo, mantener el valor completo del objeto compuesto:

    Parámetro Valor
    nuevo-costo $sys.func.IDENTITY($session.params.other-cost)

Configuración avanzada de voz

Estos parámetros de configuración de voz avanzada opcionalmente puede anular el mismo configuración de voz de la página, la configuración de flujo de voz, y configuración de voz del agente.

Cola de respuestas

Durante el turno de un agente, es posible (y, a veces, conveniente) llamar a varias entregas, cada una de las cuales puede generar un mensaje de respuesta. Dialogflow mantiene estas respuestas en una cola de respuestas.

Respuesta parcial para la API de transmisión

De forma predeterminada, Dialogflow solo envía las respuestas ordenadas al usuario final una vez que el turno del agente termina. También puedes habilitar la opción Mostrar una respuesta parcial en la entrega para que muestre respuestas en cola como una respuesta parcial cuando usas las API de transmisión. Consulta Ciclo de vida de una página para obtener más detalles.

Por ejemplo, si tu webhook probablemente se ejecute por mucho tiempo, puedes agregar una respuesta estática en la entrega y habilitar la respuesta parcial. Esto hace que Dialogflow limpie la cola de respuestas y envíe todos los mensajes como una respuesta parcial antes de llamar al webhook.

Por el momento, la respuesta parcial no es compatible con lo siguiente: pero se admitirá más adelante:

Para probar esta función en el simulador, debes activar la respuesta parcial.

Captura de pantalla de la respuesta parcial del simulador

En el siguiente ejemplo, considera que tu webhook tarda 5 segundos en completarse y que no habilitas la respuesta parcial. El turno de conversación del agente de Dialogflow no se completará hasta que se complete el webhook. Durante este turno de 5 segundos, las respuestas se ponen en cola mientras esperan el webhook y no se muestran al usuario final hasta que se completa el turno. Esto genera una mala experiencia del usuario.

Sin respuesta parcial.

Si habilitas la respuesta parcial en la primera entrega, Dialogflow muestra el primer mensaje de entrega con rapidez y llama al webhook. Una vez que se completa el webhook, Dialogflow muestra la respuesta final. La experiencia del usuario final se mejora en esta situación, ya que se les pide que esperen una breve espera. Además, la llamada de webhook se ejecuta de forma simultánea con una respuesta que se envía al usuario final.

Con respuesta parcial.

Lenguaje de marcación de síntesis de voz (SSML)

Puedes usar el lenguaje de marcación de síntesis de voz (SSML) en campos de entrega de texto de audio o audio de salida. Esto te permite personalizar tu respuesta de audio proporcionando detalles sobre las pausas y el formato de audio para siglas, fechas, horarios, abreviaturas o texto que se debe censurar.

Para obtener detalles sobre la sintaxis, consulta la Documentación de SSML de texto a voz.