Post on 16-Apr-2017
...
Construye tus propios bots o cómo construír un bot para que de una charla contigo
@rafbermudez
Hoja de personaje
Rafael Bermúdez Míguez
Gallego
Caótico soñador infinitemonkeys @inf_monkeys
I coding
● @rafbermudez
● rafa@rafbermudez.com
Software Bots
¿Qué es un bot?
Aplicación que realiza tareas automatizadas, repetitivas y predefinidasque interacciona con el entorno
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?
Con qué autonomía
Bot inicia la interacción (push)
Usuario inicia la interacción (pull)
Combinación de ambos
¿Qué es un bot?
Cómo se crea
Cualquier lenguaje de programación es válido
Integración a través de APIS
¿Qué es un bot?
Cómo se creaA 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?
Roles de un bot
Bots de entretenimiento
Bots de soporte
Bots de devops
Bots de test
...
¿Qué rol juega un bot?
Cómo desempeña su rol
Ejemplo: Test botAyuda 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?
Cómo desempeña su rol
Ejemplo: Support botInteractú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?
Dinero
Productivo
¿Mejora el proceso?
Eficiente = hace las cosas más rápido
Efectivo = cumple su meta
Eficiente
¿Mejora el proceso?
Automatiza tareas
RepetitivasTediosas
Peligrosas
Ayuda a mantener el flujo
Reduce distraccionesElimina cambios de contexto
¿Mejora el proceso?
Efectivo
Mejora la toma de decisiones
Aporta conocimiento
Regula metas y tareas
Reduce errores
Reduce la diferenciación
Riesgos y oportunidades
● Gana en foco ● Obvia aprendizaje● Menos felicidad
¿Cuándo hacer un bot?
MEJORA EL PROCESOEficienciaEficacia
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 OPORTUNIDADESVentaja competitiva
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ón BD
micro
servicio
micro
servicio micro
servicio ...
...
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, ….
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
Warnings
MEJORA EL PROCESO
Eficiencia: Sin demostrarEficacia: 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ónComunica ritmos de presentación
Habita: Slack
Creación: Groovy + R + Slack API
DESEMPEÑO DE ROL
Guía-supervisor
RIESGOS y OPORTUNIDADES
Incertidumbre técnicaAceptación del resultado
¡Gracias!¿Preguntas?
Construye tus propios bots o cómo construír un bot para que de una charla contigo
@rafbermudez