desarrollo-chatbot

En uno de mis artículos anteriores, os expliqué como uso Watson para la creación de chatbots para la salud y el coste y beneficio que este tipo de herramientas ofrecen a la mayoría de las empresas. En otro de mis artículos, continúo con el proceso y analizo cómo hacer actualizaciones para el chatbot y en este artículo nos centramos en analizar cómo hacer algunas pruebas continuas, cómo hacer un control básico de la versión e implementar nuevas actualizaciones dentro del chatbot.

Tabla de contenidos

¿Cómo vamos?

Para comprobar qué tal funciona tu chatbot, debes realizar algunas pruebas automáticas. Esto te ayudará a obtener algunas medidas objetivas de la precisión y el rendimiento del chatbot, y también te dará una idea de las áreas en las que tu chatbot podría mejorar. Ten en cuenta que probar aplicaciones cognitivas es fundamentalmente diferente de probar aplicaciones más tradicionales. Las aplicaciones tradicionales se basaban en pruebas de ruta y cobertura de código. Debido a la naturaleza no determinista de las aplicaciones cognitivas, terminamos teniendo que usar modelos estadísticos para nuestras pruebas.

Permíteme recomendarte SERIAMENTE el uso de los cuadernos de Python que destaco en las siguientes líneas. Se pueden ejecutar en tu consola o desde Watson Studio. Son un excelente punto de partida para el análisis automatizado de tu chatbot. Con el tiempo, puedes mejorar estos cuadernos y ampliar algunas de las técnicas de prueba que contienen:

  • Cuaderno de análisis de skillsde diálogo: un cuaderno que hará un análisis de tu Dialog Skill.
  • Libros de trabajo de análisis de registros: estos dos cuadernos se centran en áreas ligeramente diferentes y realizan un análisis de tu chatbot en función de sus registros.
  • Mi portátil K-Fold: no tiene todas las funciones que los dos portátiles anteriores, pero me gusta el mío porque es simple. Para un nuevo usuario de Python, también tiene un enfoque directo para las pruebas de k-fold que es más fácil de entender.

¿Tienes la sensación de que necesitas saber un poco de Python? Yo también. No tienes que ser un experto en Python para hacer nada de esto, pero al menos debes entender los conceptos básicos de Python y cómo usar y manipular los portátiles de Python. No te dejes intimidar, no necesitas saber TODO antes de comenzar, simplemente entra y aprende cosas sobre la marcha.

Hacer cambios sin afectar al entorno de producción

Algunos escenarios de administración de cambios se habilitan utilizando la nueva capacidad de control de versiones de Watson Assistant. Esta versión es un poco diferente a algunas versiones a las que podrías estar acostumbrado: no es como un típico desarrollo de software, paradigma de verificación. En cambio, es más como un paradigma de establecimiento de línea base, donde se crea una versión (o baseline) como una instantánea del modelo en algún momento. El estado actual del modelo (que se ve en la interfaz de usuario) es siempre la punta o la versión de desarrollo.

Entonces, si entras en tu Watson Assistant Plus y adquieres tu habilidad, simplemente tienes que hacer clic en “Versiones” en la barra de navegación de la izquierda, y verás la pantalla de versiones.

Pantalla de versiones en Watson Assistant

Para soltar una nueva versión (o baseline), simplemente haz clic en el enlace “Save a new versión”, ubicado en la esquina superior derecha. Luego debes completar algo útil (¡piense en convenciones de nombres!) para la descripción, antes de presionar “Save”. Hablaremos más sobre las convenciones de nomenclatura a continuación, cuando comencemos a hablar sobre algunos flujos de trabajo de gestión de cambios típicos.

Flujos de trabajo para la gestión de actualizaciones y cambios

Un flujo de trabajo de gestión de cambios te permitirá examinar, contener y luego implementar cambios fácilmente en tu chatbot. Lo que propongo aquí es algo que podría no satisfacer a un “DevOps Purist”, ya que tenemos recursos de producción y desarrollo / prueba que residen en el mismo servicio.

Ten en cuenta que este enfoque PUEDE modificarse fácilmente para que, en lugar de mover las versiones dentro de una instancia de Watson Assistant, podamos exportar el modelo de un entorno de Watson Assistant (digamos el entorno de prueba) y luego importarlo a otro entorno (digamos El entorno de producción). Estos entornos podrían ubicarse en diferentes grupos de recursos, con acceso individualizado y permisos personalizados para cada entorno / grupo de recursos.

Entonces, sin más explicaciones, aquí hay una vista de alto nivel de un proceso de administración de cambios simple y típico para tu chatbot Watson Covid-19:

  • Consigue los cambios sugeridos para el próximo sprint. Guárdalos en algún formato / herramienta acordado para los cambios del bot Covid-19.
  • Concreta los cambios y el alcance de los cambios para el próximo sprint. Para aquellos de vosotros que están familiarizados con los principios de desarrollo agile, pensad en esto como una simple planificación de un sprint.
  • Aplica estos cambios en la versión de punta (desarrollo) de tu bot Covid-19
  • Prueba la versión del bot Covid-19 de desarrollo — valida los cambios — haz las revisiones finales
  • Realiza pruebas automatizadas contra la versión de bot de desarrollo (sí, no estaba bromeando sobre las pruebas automatizadas antes, haz esto ahora, y me lo agradecerás más adelante)
  • Crea una nueva versión en el bot Covid-19 — llámelo “<YYYY-MM-DD>_Producción”
  • Obten la aprobación formal para la promoción de una nueva versión a producción.
  • Mueve el puntero Asistente para el bot Covid-19 de producción a la nueva versión (“<YYYY-MM-DD>_Producción”)
  • Haz una copia de seguridad del bot Covid-19, con una exportación de la Dialog Skill a JSON — almacena el archivo JSON con el nombre “<YYYY-MM-DD> _Producción.json”
  • Mueve el puntero del Asistente para el bot Covid-19 de desarrollo a la versión tip
  • Vuelve al paso 1 y vuelve a hacerlo.

Ten en cuenta que no he sido específico sobre los tickets / problemas / herramientas que utilizaré. Solo confío en que estás utilizando algún tipo de control de cambios, no importa cuán simple sea. Recuerda que es necesario tener un espacio en el que se vayan subiendo las posibles actualizaciones y cambios para luego APROBAR esas solicitudes. El objetivo de este proceso es evitar la pregunta: “¿Por qué hiciste eso?”. Puedes implementar esto en la nube de IBM (una versión gratuita de GitHub alojada en la nube de IBM), donde puedes hacer una gestión de cambios real, o puedes usar tus herramientas e infraestructura de gestión de cambios existentes. Depende únicamente de ti.

Gestión de cambios para el usuario avanzado

El simple proceso de administración de cambios descrito anteriormente funcionará para implementaciones simples, y probablemente sea lo suficientemente robusto para un chatbot que no se espera que se implemente a largo plazo. ¿Qué pasa con la gestión de cambios para chatbots más establecidos? ¿O para los chatbots que forman parte de un sistema más grande que actualmente se encuentra bajo algún tipo más formal de gestión de cambios? ¿Qué podemos hacer en esos casos?

En esos casos, y para los usuarios que desean una gestión de cambios más sólida y formal o una infraestructura DevOps, querrán leer este artículo de Williamson de Leigh. Leigh es un compañero mío que ha invertido mucho tiempo pensando en esto y, lo que es más importante, ha pasado algún tiempo implementando este tipo de sistemas de gestión de cambios.

¿Qué es lo siguiente?

Entonces, si has estado siguiendo esta serie de publicaciones, es que estás implementado un longtale chatbot que responde las preguntas de Covid-19. Has aprendido cómo actualizar ese chatbot y cómo probar y controlar la versión de los cambios que quieras implementar. ¿Qué queda por hacer? En este punto, ya sabes lo suficiente como para ser peligroso: puede ser el momento de llenar algunos de esos vacíos de aprendizaje. Las publicaciones de mi blog te dicen exactamente lo que necesitas saber, pero hay muchas otras técnicas y capacidades de Watson que puedes usar para mejorar aún más la experiencia del usuario final. Tal vez deberías consultar algunos de los recursos de aprendizaje específicos de Watson Covid-19 que están disponibles.

Por Daniel Toczala

Carrera de alto rendimiento en todo el espectro de software, incluida la experiencia en ventas de software, desarrollo de software, servicios de software, soporte de software y liderazgo intelectual. Un líder cuyos equipos han superado constantemente las expectativas y han utilizado técnicas vanguardistas para lograr resultados comerciales demostrables. Ayudé a lanzar con éxito múltiples productos en el mercado técnico y de consumo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *