Construye tus propios bots (Codemotion 2016)

40
... Construye tus propios bots o cómo construír un bot para que de una charla contigo @rafbermudez

Transcript of Construye tus propios bots (Codemotion 2016)

...

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

[email protected]

Esta historia comienza...

¿Cuándo hacer un bot?

¿Qué es un bot?

¿Qué rol juega?

¿Mejora el proceso?

Riesgos y oportunidades

¿Cuándo hacer un bot?

¿Qué es un bot?

¿Qué rol juega?

¿Mejora el proceso?

Riesgos y oportunidades

¿Cuándo hacer un bot?

Bots

¿Qué es un bot?

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?

Qué hace

¿Qué es un bot?

web crawler

chat bot

videogame bot

spammer bothacker bot

monitoring 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?

Cuánta inteligencia tiene

¿Qué es un bot?

IA

NeuralNetworks

NLP

SistemasExpertos

LógicaDifusa

Cuán interactivo es

Alertas UI Conversacional Input/Output

¿Qué es un bot?

Dónde habita

¿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?

Cómo se creaArquitectura más seria

¿Qué es un bot?

¿Qué es un bot?

¿Qué rol juega?

¿Mejora el proceso?

Riesgos y oportunidades

¿Cuándo hacer 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?

¿Qué es un bot?

¿Qué rol juega?

¿Mejora el proceso?

Riesgos y oportunidades

¿Cuándo hacer 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

¿Qué es un bot?

¿Qué rol juega?

¿Mejora el proceso?

Riesgos y oportunidades

¿Cuándo hacer un bot?

Cambia las relaciones entre las personas

Riesgos y oportunidades

● Más escalable ● Menos personal

Ofusca el proceso

Riesgos y oportunidades

● Independencia de contexto ● Se pierde el conocimiento

Reduce la diferenciación

Riesgos y oportunidades

● Gana en foco ● Obvia aprendizaje● Menos felicidad

Cuidado con lo que deseas

Riesgos y oportunidades

¿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

El bot de mi charla

Dada una temática crea charlas buenas para codemotion

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

Solución

Y el resultado es ...

Solución

Estudio previo: ¿Cuándo hacer un bot?

Identificar Warnings

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