Buenas,
la Fundación del Software Libre tiene como una de sus prioridades para 2017 el desarrollo de asistentes personales libres, también conocidos como bots, robots, inteligencias artificiales y cosas peores. 😉 Yo justo llevo unos meses con objetivos mucho más pequeñitos, pero me gusta e interesa el tema, así que voy a poner mi pequeña lluvia de ideas por aquí por si alguien quiere comentarla, ampliarla o simplemente leerla.
Un bot está definido, por ejemplo en la Wikipedia, como un programa de ordenador que imita el comportamiento de humanos.
También podría decirse que se trata de un programa de ordenador, o varios, que son capaces de interactuar con personas, otros programas, y por qué no, otros bots.
El resultado es algo, que parece alguien, a quien puedes hacer consultas, que te puede dar informaciones de tu interés o con quien puedes simplemente conversar de una forma más o menos inteligente.
Para unas jornadas de tecnología y cultura libre, Z3r0 programó un bot para una sala xmpp que tenía varias funciones. Le podías preguntar el calendario de sesiones completo o por una sesión en particular. Y además, quince minutos antes de comenzar cada sesión enviaba un mensaje a la sala xmpp anunciando la sesión y dando los detalles de ubicación.
Si se te olvidaban las palabras clave para consultar le podías también preguntar al bot o pedirle ayuda.
Un bot xmpp en sí es un usuario más dentro de la sala, pero también se puede preparar para que hables directamente con él sin necesidad de estar en una sala, de la misma forma que hablas con otro usuario xmpp. Depende de que cubra necesidades digamos a nivel personal o para un colectivo.
Con una mente un poco imaginativa eso te abre un amplio abanico de posibilidades. En aquel momento yo acababa de crear una sala xmpp para el día a día y la comunicación en un huerto comunitario en el que participo. Y se me ocurrían muchas formas de aplicarlo ahí, así que a partir del código que me pasó Z3r0 y de algunos ejemplos comencé a darle aplicaciones.
Volviendo al propio nombre de bot en sí, dado el pequeño alcance en el que yo iba a trabajar y mi vocación rural, decidí que como mucho se iba a quedar en un bot pequeño o botijo. Y al tener una clara motivación social y estar pensados para su aplicación en colectivos de movimientos sociales, finalmente se han quedado bajo la denominación de botijos sociales.
El primer tipo de aplicación es la que llamo memoria colectiva o más concretamente “liberad a las informáticas”. En casi todos los colectivos vengo observando que las personas que gestionan los recursos informáticos organizan y suministran información por vía digital al grupo, pero cada vez que otra persona la necesita vuelve a solicitársela a la persona que la proporcionó. Nadie recuerda ni guarda nada.
La solución pasa por contárselo al bot y que se lo pregunten a él.
Mediante una serie de palabras clave se puede acceder a una información y devolverla. Por ejemplo, mediante la palabra clave tareas, el bot puede devolver una lista de tareas pendientes. Con archivos, un enlace a una dirección de Internet que puede ser una nube pública o privada gestionada con Nextcloud. Cuadrante, puede llevar a un “duddle” donde las personas pueden apuntarse según sus disponibilidades en qué fechas y horarios van a acudir al huerto. Consumo puede devolver el valor más reciente del contador de agua y el acumulado trimestral. Y asamblea la fecha o información de la próxima cita.
Por aquellos días en el huerto teníamos una especie de mascota. Una planta que nos vino huérfana entre los demás plantones y que alguien pensó que era una berenjena y le pusimos de nombre Eulalia.
Así que busqué una imagen de una berenjena en openclipart.org y enseguida encontré una que ni pintada. La acogida de Eulalia como una más en la sala del huerto fue todo un éxito.
Por eso de parecer humana o al menos caer simpática a las personas con las que interactúa, las respuestas que da se preceden de una frase aleatoria relacionada con la temática de la consulta y una mención a la persona que la hizo. Cuantas más frases “se sepa”, más variación en la respuesta y más, digamos, naturalidad artificial. O al menos más facilidad de que resulte simpática.
No debemos olvidar que todo el proceso se realiza a través de Internet, y que estamos hablando de un programa con conexión a Internet, así que de la misma forma que se conecta a una sala para escuchar y responder, se puede conectar, al menos en teoría, a cualquier servicio disponible en La Red, obtener y enviar información y compartirla con la sala y sus contactos.
En una aplicación sencilla, puede conectarse con los servicios de AEMET y obtener la previsión meteorológica, lo que resulta interesante para un huerto. Y también conectar con estaciones meteorológicas cercanas para obtener las mediciones actuales. O las webcams de la DGT para obtener una imagen en tiempo real y poder mostrarla en la sala.
Proporcionando esa información meteorológica por las mañanas se suministra una información interesante al grupo y es el propio bot el que comienza o invita a crear conversaciones entre el colectivo.
Un cron en el servidor lanza intervenciones a unas horas y/o días predeterminados para recordar quién va a regar ese día o las próximas convocatorias.
Dado que el bot analiza cada frase que se menciona en la sala en busca de posibles peticiones para responder, podemos aprovechar ese análisis para darle más funciones.
La primera es ver si están hablando de ella. Cuando alguien la nombra y no es para que ejecute un comando, se da por aludida y responde a la persona que lo ha hecho con una frase genérica aleatoria que incita a continuar la conversación.
En modo cotilla es capaz también de ver cuando alguien se ha reído y responderle con una gracia o un chiste.
Con unos vocabularios no muy extensos, puede detectar también si se está hablando de determinados temas. Así por ejemplo si cree que estamos hablando de las cosas que tenemos que hacer se mete en la conversación y nos recuerda la lista de tareas pendientes.
O si piensa que estamos hablando de quedar para ir al huerto nos recuerda la URL del cuadrante y las ganas que tiene de vernos.
Aquí puede que a veces se ponga muy pesada metiéndose demasiado en las conversaciones, por lo que terminé enseñándole a morderse la lengua. Es decir, que contase hasta tres antes de intervenir en una conversación por estos temas.
Nunca se sabe cómo serían las cosas si las hiciéramos de otra forma, pero basándome en mi experiencia en grupos, creo que el hecho de entrar a saludar a Eulalia o de que las intervenciones de ésta de vez en cuando animen a otras personas del grupo a participar le ha dado bastante vidilla y no sólo ha sido útil como “asistente” sino también como “animadora” y motivadora.
Y todo esto con unas pocas de código, en poco tiempo y sin apenas complicarse la vida. Pero a pesar de que los informáticos tenemos como principio fundamental eso de que “si algo funciona no lo arregles”, hace algún tiempo decidí liarme la manta a la cabeza y profundizar en hacer algo más completo y versátil.
Pero eso será otra historia… si llega a ser. Y en ese caso lo contaré por aquí.
Saludos,
Colegota