Buenas prácticas para el desarrollo de chatbots

Anexo 1 – Requisitos técnicos de la plataforma de chatbots de Agesic

  1. Poder crear bots, con soporte de procesamiento de lenguaje natural (NLP), aprendizaje automático (ML) y árboles de decisión.
  2. Permitir el uso de al menos un motor cognitivo (IBM Watson, Microsoft Luis, similares o propios).
  3. Contemplar modismos utilizados en nuestro lenguaje (Uruguay).
  4. Integración con servicios digitales del Estado uruguayo u otros (especificar mecanismos: web services, web hooks, APIs).
  5. Diseñar flujos de diálogos en forma de árbol desde una interfaz gráfica, permitiendo al usuario configurar de forma sencilla todas las acciones desde la plataforma.
  6. Publicar de forma sencilla los chatbots en los principales canales de comunicación, así como en las redes sociales (Facebook Messenger, chat en la web o Instagram).
  7. Publicar los chatbots por el canal WhatsApp.
  8. Integración con la plataforma de comunicación, de forma tal que permita derivar la atención del bot a una atención humana.
  9. Exportar los datos de las conversaciones, la configuración y/o entrenamiento que posea el bot en un formato standard.
  10. Obtener de forma amigable para cada bot en determinado período de tiempo (día, semana, mes, etc.), los siguientes indicadores como mínimo:
    1. Número de usuarios, número de sesiones, número de mensajes.
    2. Mensajes por sesión (promedio y mayor número).
    3. Tiempos de duración de las sesiones (promedio y mayor duración), tiempos de espera.
    4. Conversaciones en tiempo real.
    5. Desempeño (cantidades y porcentajes de accesos por intención, tasas de error).
    6. Deberá contar con la capacidad de definir otros indicadores a analizar.

 

  1. Contar al menos con 2 (dos) ambientes, uno dedicado al desarrollo/testing y otro al ambiente de producción.
  2. Gestión de contenidos, usuarios, perfiles, permisos y vigencia de estos en la plataforma de forma tal que se le pueda gestionar los roles, los permisos y usuarios por cuentas y/o chatbots dentro de la plataforma.
  3. Permitir controlar el formato de los datos ingresados.
  4. Permitir la intercomunicación entre chatbots de una misma plataforma, de forma tal que sea posible derivar la conversación y sus datos de un bot a otro.
  5. Permitir la integración con otras Plataformas de chatbots, permitiendo derivar la conversación y sus datos de un bot a otro, o la publicación de los chatbots de ambas plataformas por un único canal de WhatsApp.
  6. Cumplir con los requerimientos de seguridad exigidos por Agesic, en particular con el OWASP Top Ten del año corriente y realizar análisis de riesgos de seguridad basados en la arquitectura de la solución.
  7. La arquitectura de la Plataforma de chatbot debe cumplir con los siguientes atributos de calidad:
  • Disponibilidad: es recomendable que el sistema pueda funcionar en esquemas de alta disponibilidad, con funciones de balanceo de carga. Se deben tener en cuenta la forma en que se logran estos requerimientos considerando cuáles componentes de hardware y software están involucrados.
  • Escalabilidad: el sistema deberá permitir configuraciones escalables. En particular, clúster y granja o aportar soluciones alternativas que permitan la escalabilidad.
  • Flexibilidad y Escalabilidad: dada la constante evolución de la tecnología, es recomendable evitar la rigidez en las configuraciones y buscar soluciones flexibles.
  • Extensibilidad: en caso de extender las funcionalidades o cambiar las versiones se deberá asegurar la estabilidad de la solución. Es recomendable especificar detalladamente las consideraciones de diseño y los mecanismos empleados para su cumplimiento.
  • Reutilización: es deseable para un sistema que sus componentes estén diseñados de forma tal que puedan servir para la construcción y/o integración con otros sistemas.
  1. En el caso de que el chatbot sea publicado en un chat en la web, que las interfaces sean personalizables a nivel de estilos y sean accesibles (cumplan con las Pautas WCAG 2.1 de accesibilidad web).
  2. Interpretación de voz (audios) e imágenes por parte del bot y otros mecanismos que mejoren la experiencia del usuario.
  3. Conexión con servicios de reconocimiento de voz.
  4. Poder realizar cambios y previsualizar cómo afectan los mismos el resultado final del bot.
  5. Interfaz de la plataforma intuitiva, responsiva y fácil de usar para la creación, configuración del bot, y reportes analíticos, facilitando así su usabilidad.
  6. Detectar nuevas intenciones de las personas que interactúan con el chatbot, así como tener la capacidad de segmentarlos para definir y gestionar campañas.