Los bots invadirán el mundo antes de que nos demos cuenta.
Han estado conviviendo entre nosotros desde hace mucho tiempo, pero este 2016 será recordado como el año de los bots. Siri, Cortana, Tay... son buena prueba de ello.
¿Nuestros propios bots?
En esta charla abordaremos el estado del arte de los bots, qué ventajas podemos sacar de ellos y qué necesitamos para crear nuestros bots desde cero (arquitectura, lenguajes, integraciones, ...)
Todo esto acompañado por nuestro propio bot, por supuesto ;)
8. Software Bots
¿Qué es un bot?
Aplicación que realiza tareas automatizadas, repetitivas y predefinidas
que interacciona con el entorno
9. Dimensiones de un bot
Qué hace...
Con qué autonomía...
Cuanta inteligencia tiene…
Cuán interactivo es...
Dónde habita...
Cómo se crea
¿Qué es un bot?
10. Qué hace
¿Qué es un bot?
web crawler
chat bot
videogame bot
spammer bot
hacker bot
monitoring bot
...
11. Con qué autonomía
Bot inicia la interacción (push)
Usuario inicia la interacción (pull)
Combinación de ambos
¿Qué es un bot?
15. Cómo se crea
Cualquier lenguaje de programación es válido
Integración a través de APIS
¿Qué es un bot?
16. Cómo se crea
A través de un bot de terceros
// This sends messages as slackbot to slack using groovy
def address = "https://slack.com/api/"
def method = "chat.postMessage"
def token = "Your API Token goes here"
def username = "slackbot"
def channel = "#general" //"@specific.teammember"
def text = "I am sentient slackbot."
def url = “${address}${method}?token=${token}&text=${text}&channel=${channel}&username=${username}”
println new URL(url).text
¿Qué es un bot?
18. ¿Qué es un bot?
¿Qué rol juega?
¿Mejora el proceso?
Riesgos y oportunidades
¿Cuándo hacer un bot?
19. Roles de un bot
Bots de entretenimiento
Bots de soporte
Bots de devops
Bots de test
...
¿Qué rol juega un bot?
20. Cómo desempeña su rol
Ejemplo: Test bot
Ayuda a detectar bugs o incidencias en la calidad del código
● Ejecuta test unitarios/integración
● Ejecuta test de análisis estático
● Monitoriza la deuda técnica a lo largo del tiempo
● Abre incidencias en JIRA
¿Qué rol juega un bot?
21. Cómo desempeña su rol
Ejemplo: Support bot
Interactúa con los usuarios para ofrecerles soporte:
● Responde preguntas frecuentes (consulta y
construye una base de conocimiento)
● Analiza el feedback del usuario, identifica y sugiere
los bugs más prioritarios a corregir
¿Qué rol juega un bot?
22. ¿Qué es un bot?
¿Qué rol juega?
¿Mejora el proceso?
Riesgos y oportunidades
¿Cuándo hacer un bot?
31. ¿Cuándo hacer un bot?
MEJORA EL PROCESO
Eficiencia
Eficacia
Qué tarea hace...
Con qué autonomía...
Cuanta inteligencia tiene…
Cuán interactivo es...
Dónde habita...
Cómo se crea
DESEMPEÑO DE ROL
RIESGOS y OPORTUNIDADES
Ventaja competitiva
33. El bot de mi charla
Dada una temática crea charlas buenas
para codemotion
34. El bot de mi charla
/myBot create “bots”
/myBot status “bots”
estado de la charla“bots”
/myBot list
lista de charlas creadas
/myBot start “bots”
seguimiento “bots”
AplicaciónBD
micro
servicio
micro
servicio
micro
servicio...
...
35. El bot de mi charla
1. Extracción de datos
● Scraping de las charlas mejor valoradas 2015
● Transcripción de slides
2. Transformación de datos
● Generar metadatos
○ Nota, Nº de slides, Nº fotos, Nº gifs, contador de palabras, ….
36. El bot de mi charla
3. Explotación de datos
● Filtrar
● Clasificar
● Generar modelo
4. Integración con Slackbot
● Programar lógica de la integración
39. Warnings
MEJORA EL PROCESO
Eficiencia: Sin demostrar
Eficacia: Sin demostrar
Objetivo: Dada una temática crea charlas buenas
para codemotion
Autonomía: Iniciado por el usuario
Inteligencia: Sistema experto + IA
Interactividad:
Inicio manual de creación
Comunica ritmos de presentación
Habita: Slack
Creación: Groovy + R + Slack API
DESEMPEÑO DE ROL
Guía-supervisor
RIESGOS y OPORTUNIDADES
Incertidumbre técnica
Aceptación del resultado