4. Presentación
Desarrollador de bots con ~20 años de experiencia..
Colaborado/Fundado empresas de desarrollo de bots.
Asesoría a empresas en tecnologías de automatización.
Doctorado enfocado a la Investigación en el uso de bots a gran escala.
5. ¿Qué es un Bot?
Aplicación de software que ejecuta tareas automatizadas.
Ejecutan tareas que son estructuralmente repetitivas a una
escala mayor a la que un humano puede ejecutarlas.
6. Tipos de Bots
Web crawler
Chatbots
Botnets
Bots que procesan Texto, Audio, Imagenes, Video, etc.
7. ¿Qué he aprendido en todo este tiempo?
Un Bot no es solo un ChatBot
Uno se desenamora de flujos incompletos
Es bueno ver a un “Bot” como un “Sistema”
Cuando tengas un “Sistema” funcional entonces si ponle un nombre de “Bot”
8. Ejemplos: MATT
Descripción
Chatbot que distribuye contenido educativo y asigna tareas.
Las tareas son recogidas por el chatbot y enviadas a expertos.
Los expertos evalúan las tareas y envían la retroalimentación a los estudiantes.
9. Ejemplos: MATT
Implementación:
Un tutorial es enviado a una plataforma de CrowdSourcing para ser
descompuesto en micro lecciones.
Un bot busca en Linkedin expertos en un tema y los invita a participar (flujo de
reclutamiento).
Implementación de máquinas de estados
La plataforma administra cuando deben ser enviados los mensajes conforme a
la disponibilidad del experto y balancea cargas.
El chatbot es solo una interfaz de consulta y recolección de información.
10. Ejemplos: MATT
Lecciones aprendidas:
El verdadero valor de la plataforma fue el reclutamiento automatizado.
Lograr que expertos participen es complejo
Aprender desde un chat es complejo
11. Ejemplos: TaskBot
Descripción:
Bot que al ser incluido en un correo asigna las tareas propuestas a los
participantes.
Da seguimiento de cada tarea con cada participante.
Mantiene enterado al creador de la tarea de los avances.
12. Ejemplos: TaskBot
Implementación:
Integración con herramientas de administración de tareas (Wunderlist, etc)
Sistema de programación de tareas (crons)
Modelos de NLP (LUIS)
Implementación sobre correo, chats de equipos y sociales.
13. Ejemplos: TaskBot
Lecciones aprendidas:
Simples reglas de formato reducen la fricción del usuario
Las personas se sienten cómodas pidiéndole a través de un Bot en vez de
pedirlo directo a la persona.
Las reglas de los chats como por ejemplo poner el símbolo @ antes de un
nombre, son comúnmente olvidadas.
14. Otros: ExperTwin
Descripción:
Sistema que es capaz de traer solo los temas que te interesan a tu ambiente de
trabajo y buscar sobre ellos (como un Google personal).
Comentarios:
Implementar crawlers que trabajen para ti es muy conveniente, lo que es
complejo es crear redes de crawlers para cada usuario.
15. Otros: AlexaDesktop
Descripción:
Sistema que es capaz de ejecutar acciones en la computadora que fueron
solicitadas por voz mediante un asistente de voz.
Comentarios:
Implementar con Sikuli flujos de interacción de la interfaz que fueran invocados
desde un webhook que recibe el comando transcrito.
16. Otros: Hum2Song
Descripción:
Sistema que es capaz de crear el acompañamiento musical de una melodía
cantada o tarareada.
Comentarios:
El primer paso es transcribir la voz, pero no a texto, sino a notas. Una vez
transcrita se hacen análisi de series de tiempo, predicciones por medio de
distintas arquitecturas de redes neuronales.
17. Otros: DeepPiracy
Descripción:
Sistema que es capaz de ver el contenido que se está proyectando en
televisores, monitores o pantallas y mencionar si es contenido con derechos de
autor.
Comentarios:
Los bots pueden tener como entrada texto, voz, imagenes, video, etc. El análisis
de video altamente distorsionado es complejo pero las técnicas de Redes
Neuronales Convolutivas ayudan mucho al proceso.
18. Mucho más
Muchas actividades rutinarias pueden ser automatizadas con algoritmos que
interpreten las señales que nosotros percibimos con nuestros sentidos.
Por ejemplo, podemos editar un video recortando las partes donde no se habla
o donde se dice algo mal, esto solo transcribiendo a texto lo hablado y
recortando los intervalos sin texto.
19. RPA (Robotic Process Automation)
Es la rama de automatización por software que se encarga de los procesos que
simulan la interacción humana y perciben por sensores las señales que nosotros
como humanos percibimos por medio de los sentidos.
20. Herramientas
Como vimos un bot es capaz de entender señales de múltiples fuentes.
Si la información proviene de texto, se pueden usar herramientas como
DialogFlow, NLTK, SpaCy, entre otras para analizarla.
Si la información proviene de imágenes podemos usar herramientas en la nube
o implementar modelos como Tesseract, YOLO, MobileNet, etc, con datasets
como COCO que reconocen muchas categorías.
Si la información proviene de vídeo igualmente podemos segmentarla en
imágenes y analizar cuadro por cuadro.
21. Si lo que queremos es automatizar la interfaz de usuario entonces
herramientas como Sikuli o Automator nos permiten generar las secuencias.
Si lo que queremos es automatizar audio, las herramientas en la nube suelen
ser las más eficientes, hay algunas offline como Sphinx pero son difíciles de
implementar.
Si lo que queremos es automatizar la navegación entonces Selenium,
BeutifulSoup, Scrapy, entre otras son buenas opciones.
Herramientas
22. Tipos de análisis de texto
Análisis manual por palabras (bolsa de palabras)
Análisis de palabras con contexto (Word2Vec)
Análisis de frases (Doc2Vec)
Análisis con significado (Sense2Vec)
Herramientas para cualquiera de ellas: SpaCy, NLTK, Stanford NLP, POS, NER,
OpeNER project
23. Con Machine Learning
Clasificadores entrenados con Bag of Words o vectores:
MLP, RandomForest, SVM, etc
Generadores con Recurrent Neural Networks
LSTM, Attention, etc.
24. Algunos Bots que se me hacen útiles
Bots que ligan servicios de mensajería (hacer amistades)
Bots que te notifican cuando algo sucede (multas, cobros)
Bots que crean certificados (CertBot)
Bots que organizan la información (Google)
Bot de los buenos días (hora, clima y noticias juntos)
Bots de felicitación de cumpleaños
25. Bots en todo
En LinkedIn
En GitHub
En Marketing
Bots de extracción de datos.
Si los usas en plataformas restrictivas es importante mantener un
comportamiento humano.
La información colectada bajo usuario y contraseña no deberá ser publicada.
26. Conclusiones
Es importante ver a un Bot como una solución completa, no solo como una
interfaz de entrada.
El verdadero reto es tener una integración robusta entre los distintos flujos que
conforman una solución.
Apliquen bots a todo lo que puedan y experimenten mejoras 10x en las
actividades que van ligadas a la interacción humana.