Los bots (chatbots, voicebots,…) son un elemento clave en la transformación digital de nuestra sociedad. Están por todas partes: eCommerce, salud digital, FAQs, turismo,… Pero si habéis usado alguno, probablemente os habrá decepcionado.

Lo confieso, la mayoría de los chatbots que existen son muy malos. Y es que no es nada fácil hacer un bot que sea realmente útil e inteligente. Un chatbot combina toda la complejidad de la ingeniería de software con toda la complejidad del procesamiento de lenguaje natural.

Pensad que muchos chatbots hay que desplegarlos en varios canales (web, telegram, slack,..), conectarlos con motores de lenguaje natural y a menudo tienen que utilzar APIs y servicios externos, acceder a bases de datos internas o integrar modelos de lenguaje preentrenados (por ej. detectores de toxicidad), etc. Y aunque parezca lo contrario, un buen bot depende más de vuestras capacidades como programadores / ingenieros software que de vuestro conocimiento de técnicas de Machine Learning.

Y el problema no es sólo crear el bot, si no también probarlo y evolucionarlo, lo que abre muchas preguntas: ¿cómo se testea un bot?, ¿cómo protegernos de ataques de seguridad que puedan venir vía el bot? ¿si tengo un bot, necesito una GUI? ¿cuál es el mejor lenguaje para definir un nuevo bot (un DSL, una interfaz gráfica, ninguno de los dos…)? ¿hace falta ser un experto en aprendizaje automático para poder crear uno?…

En esta charla que di recientemente como parte de los seminarios Sistedes intenté responder a estas preguntas y ver los mayores desafíos de Ingeniería Software a los que hay que enfrentarse cuando nos encargan un proyecto de desarrollo que incluye un chatbot (pista: la gran mayoría en un futuro no muy lejano) y que problemas son aún hoy en día problemas abiertos de investigación, como la generación automática de chatbots a partir de diferentes tipos de datos preexistentes.

Aquí tenéis el vídeo completo de la charla:

Cómo construir un (chat)bot inteligente sin morir en el intento – Una perspectiva desde la Ingeniería de Software.

Espero que os parezca interesante y espero vuestros comentarios. Y ya sabéis que si queréis empezar a jugar con bots, nada mejor que probar nuestra plataforma de software libre Xatkit. Y si eres profesor de informática, puedes también ver como utilizar un caso práctico de creación de bots como proyecto muy interesante para estudiantes de todos los niveles.