Google nos ofrece desde enero de 2023 un script para facilitar la migración a Dialogflow CX de asistentes virtuales creados en Essential.
Quizás te hayas planteado realizar la migración de Dialogflow ES a Dialogflow CX. Hasta ahora era un proceso posible, pero muy complejo. Al estar construidos en modelos de datos completamente diferentes, requería realizar tantos procedimientos que se necesitaba la ayuda de developers.
Ambas consolas presentan distintas características para determinadas funciones con el objetivo de adaptarse a las necesidades de cada cliente. DF Essential está más enfocado a pequeñas y medianas empresas, ya que solo admite un agente por cada proyecto. Por su parte, CX es más adecuada para casos de uso complejos y permite asignar más de 100 agentes por proyecto.
Pero este 2023 ha empezado con buenas noticias: Google ha incluido un script que facilita la migración de Dialogflow ES a Dialogflow CX. Y aunque aún no es una herramienta 100% perfecta, al menos te permite realizar el proceso sin necesidad de ser developer ni tener que buscarlo. A continuación te explicamos el procedimiento.
La herramienta de migración
La migración de Dialogflow ES a Dialoglow CX se realiza mediante un proceso híbrido automático/manual. Para ello, tendrás que utilizar el script facilitado por Google que:
- Leerá los datos de tu agente en DF Essential.
- Los escribirá en tu agente Dialogflow CX.
- Capturará una lista de TODO.
Ten en cuenta que el script solo copia tal cual los tipos de entidades personalizadas y frases de entrenamiento de intents. Las entidades son el tipo de datos más fáciles de migrar porque son muy similares en Dialogflow ES y Dialogflow CX.
Por su parte, los intents de DF Essential y de Dialogflow CX son muy diferentes:
- En Dialogflow ES se utilizan como componentes básicos del agente. Contienen frases de entrenamiento, respuestas, contexto para control de conversación, configuraciones de webhook, eventos, acciones y parámetros de llenado de espacios.
- Dialogflow CX ha movido la mayoría de estos datos a otros recursos. Los intents de CX solo tienen frases y parámetros de entrenamiento, lo que hace que sean reutilizables en todo el agente. La herramienta simplemente los copia y los traslada a CX.
En caso de tener que manejar situaciones específicas de tu agente, siempre está la opción de revisar el código del script.
Características exclusivas de Dialogflow CX
Existen varias características que solo proporciona Dialogflow CX y que es importante que tengas en cuenta durante la migración de Dialogflow ES a Dialogflow CX:
- NLU avanzado: funciona mejor que el estándar, especialmente para grandes agentes y flujos. Pero eso sí, la capacitación del modelo llevará más tiempo que la capacitación con NLU estándar.
- Configuraciones de voz avanzadas: como controlar la sensibilidad para reconocer el final del discurso en la entrada de audio del usuario final; sin tiempo de espera para hablar; interrupción del audio de respuesta de Dialogflow por parte del usuario, etc. Aunque solo son compatibles con las integraciones de telefonía como Twilio, Avaya, Voxiimplant, etc.
- Entrada DTMF para integraciones de telefonía: un usuario final de un agente que usa una integración de telefonía puede usar el teclado del teléfono para proporcionar valores de parámetros.
- Acceso al historial de cambios para todos los cambios realizados en un agente: En cada línea podrás ver los datos que se cambiaron, la hora en que se cambiaron y el usuario que realizó la actualización.
- Lógica condicional: puedes establecer condiciones con tres opciones lógicas (“coincide al menos una regla”, “coincide con cada regla” o “personalizar expresión”).
- Webhooks específicos del entorno: así podrás desarrollar y probar de forma segura las actualizaciones de código de webhook antes de implementarlas en producción.
- Experimentos: te permiten comparar el rendimiento de múltiples versiones de flujo (versiones variantes) con una versión de control (normalmente una versión de producción) mientras se maneja el tráfico en vivo.
- Grupos de rutas: al crear un agente, puedes encontrar que muchas páginas tienen un conjunto común de rutas. Si defines los grupos de rutas, podrás hacerlas reutilizables.
- Datos del agente de búsqueda: esta opción te permite buscar, filtrar y acceder a los recursos principales dentro de un agente. Puedes filtrar los resultados de su búsqueda por flujos, páginas, intents, tipos de entidad, grupos de rutas o webhooks.
- Configuración de seguridad (redacción y retención de datos): controla cómo se redactan los datos en el registro de la nube y el registro de interacciones que utiliza el historial de conversaciones.
- Funciones del sistema para respuestas y condiciones avanzadas: puedes aplicarlas en las condiciones de tu agente, en los mensajes de respuesta estática, en los ajustes preestablecidos de parámetros y en los valores de encabezado de webhook para generar valores dinámicos durante las conversaciones.
- Casos de prueba: se utilizan para descubrir errores y evitar regresiones.
- Validación de datos de agentes: los resultados de la validación proporcionan una lista de mensajes clasificados que puedes corregir para mejorar la calidad y el rendimiento de tu agente. Puedes solicitarlos desde Dialogflow Console o la API cuando termines de editar tu agente y vuelvas a entrenar los modelos NLU.
Cómo ejecutar la herramienta de migración
No es necesario seguir estos pasos manuales en orden, incluso es posible realizarlos simultáneamente o en un orden diferente. Lo más importante antes de realizar cualquier cambio es que lo tengas todo bien planificado.
Para empezar, recomendamos crear tu agente de Dialogflow CX. Para ello, utiliza el mismo idioma predeterminado que tu agente de ES. Después, sigue los siguientes pasos:
- Instala Go en la consola.
- Crea un directorio para el código de la herramienta con el nombre “migrate”. Copia el código en un archivo de ese directorio con el nombre “main.go”.
- Modifica el código si es necesario.
- Crea un módulo Go en ese directorio. Por ejemplo, “go mod init migrate”.
- Instala las bibliotecas de cliente Dialogflow ES V2 y Dialogflow CX V3 Go.
- Asegúrate de haber configurado la autenticación de la biblioteca del cliente.
- Ejecuta la herramienta y guarda la salida en el archivo.
Intents, flujos y controladores de estado
Si utilizas una coincidencia de intent de DF Essential para hacer la transición de la conversación de un nodo de conversación en particular a otro, debe haber dos páginas en su agente relacionadas con ese intent:
- La página original que contiene la ruta del intent, que pasará a la página siguiente: puede tener mensajes de cumplimiento de CX similares a las respuestas de intent de ES y muchos intents de ES compartirán la misma página original de CX correspondiente.
- La página siguiente, que es el objetivo de transición para la ruta de intents en la página original: el cumplimiento de entrada de CX para la página siguiente puede tener mensajes de cumplimiento de CX similares a las respuestas de intent de ES.
Si un intent de DF Essential contiene parámetros obligatorios, debes crear una página CX correspondiente con los mismos parámetros en un formulario.
Es común que tanto un intent como una página de CX compartan la misma lista de parámetros, lo que significaría que un único intent de ES se corresponde con un intent y una página de CX. Al hacer coincidir un intent de Dialogflow Customer Experience con parámetros en una ruta de intención, la conversación a menudo pasa a una página con los mismos parámetros. Los parámetros extraídos de la coincidencia de intención se propagan a los parámetros de sesión, que están disponibles para completar parcial o totalmente los parámetros del formulario de página.
Por otro lado, debes crear un flujo para cada tema de conversación de alto nivel. Estos deben ser distintos, de modo que la conversación no salte con frecuencia de un flujo a otro. Si en Dialogflow ES tenías un mega-agente, en Dialogflow CX cada subagente que tenías ahora tienes que convertirlo en un flujo dentro de un Agente de CX.
Lo mejor es probar a tu agente con el simulador mientras iteras sobre los cambios. Por lo tanto, inicialmente céntrate en las rutas de conversación básicas al principio de la conversación y ve probando a medida que realizas cambios. Una vez que los hagas funcionar, pasa a rutas de conversación más detalladas.
Y por último, al crear controladores de estado, considera si deben aplicarse a nivel de flujo o de página. Un controlador a nivel de flujo está dentro del alcance siempre que el flujo esté activo. Y lo mismo ocurre a nivel de página. Los controladores a nivel de flujo son similares a los intents de ES sin contexto de entrada. Sin embargo, los controladores a nivel de página son similares a los intents de ES con contexto de entrada.
Migración de uso de API y otras prácticas recomendadas
La herramienta de migración genera el archivo TODO, un CSV cuyos elementos se centran en datos particulares que pueden necesitar atención. Por eso debes importar el archivo a una hoja de cálculo y resolver cada elemento sobre la misma utilizando una columna para marcar la finalización.
Además, si tu sistema usa la API de Dialogflow ES para llamadas en tiempo de ejecución o en tiempo de diseño, deberás actualizar este código para usar la API de Dialogflow CX. Si solo usas las llamadas de intención de detección en tiempo de ejecución, esta actualización debería ser bastante sencilla.
Por último, te dejamos este listado con otras prácticas recomendadas para realizar la migración:
- Validación: utiliza la validación de agentes para verificar que tu agente siga las mejores prácticas.
- Pruebas: mientras realizas los pasos de migración manual anteriores, debes probar tu agente con el simulador. Una vez que parezca estar funcionando, debes comparar las conversaciones entre tus agentes ES y CX y verificar que el comportamiento sea similar o mejorado. Mientras verificas estas conversaciones con el simulador, debes crear casos de prueba para evitar futuras regresiones.
- Entornos: conviene revisar los entornos de DF Essential y actualizar los de Dialogflow CX según sea necesario.
Limitaciones de la herramienta de migración
La herramienta de migración de Dialogflow ES a Dialogflow CX no admite lo siguiente:
- Mega-agentes: la herramienta no puede leer simultáneamente a los subagentes que forman un mega-agente. Lo que sí puede hacer es leerlos por separado y de forma secuencial. Es decir, si por ejemplo tienes un mega-agente con 4 subagentes, en vez de llamar 1 vez al script, lo haces 4 veces cada vez para un subagente.
- Agentes multilingües: es necesario modificar la herramienta para crear frases de entrenamiento multilingües y entradas de entidades.
- Verificación de entidades del sistema para idiomas distintos del inglés: la herramienta crea elementos TODO cuando encuentra entidades del sistema que no son compatibles con CX, suponiendo por defecto que el inglés es el idioma predeterminado y que utiliza una región de EE. UU. Pero la compatibilidad con entidades del sistema varía según el idioma y la región. Y eso te obliga a modificar la herramienta cada vez que quieras realizar la comprobación para otros idiomas y regiones.
- Aún no admite conectores de conocimiento, tendrás que implementarlos como intenciones normales.
Como ves, la herramienta de migración no es perfecta. Pero no podemos olvidar que Dialogflow ES y Dialogflow CX tienen enfoques diferentes. Por eso, lo más importante es que gracias a este script se elimina parte de la dificultad de trasladar tus agentes de una consola a otra. Además, según ha afirmado Google en la guía de migración, continúan trabajando para mejorarla gracias al feedback de los usuarios.