Cuando haces Bot ya no hay Stop !!
Microsoft Bot Framework
Presentación:
Guillermo Antón Crespo
Ganton@solidq.com
Chema Pérez Calvo
Jperez@solidq.com
@Db_sChema
Objetivos
• Que es un bot?
• El Bot Service de Microsoft
• Crear un Bot con .Net SDK
• Diálogos, Formularios, Tarjetas
• Publicación en Canales
• LUIS
• Casos de uso
• El futuro de los bots
¿Qué es un bot?
‘Aplicación con la que los usuarios interactúan de forma
conversacional’
Mediante
• Texto
• Tarjetas
• Diálogos
• Voz
• …
Cómo funciona
• Coincidencia de patrones básicos de respuesta.
• Tejido sofisticado de técnicas:
• Inteligencia artificial
• Integración con servicios existentes.
¿Por qué quiero un bot?
• Alta disponibilidad
• Rapidez
• Precisión
• Escalabilidad
• Reducción de costes
• Automatización de tareas mecánicas
• Capacidad para gestionar múltiples problemas individuales a la vez
Se comenta…
• Más de tres cuartas partes de las marcas aportará experiencia de usuario a
través de realidad virtual y bots en los próximos cuatro años (Oracle 2016).
• Para 2020, sobre el 50% de las compañías de medianas a grandes habrá
desarrollado algún servicio basado en Bots. (Gartner Predicitons 2017)
• Ray Kurzwell (Google) ha afirmado que en 2029 no se podrán distinguir de los
humanos.
Popularidad del termino chatbot Google trends 02-01-2016 – 01-03-2018
Ecosistema Microsoft
Canales
Plataformas y SDKs
Servicios adicionales: Azure Cognitive Services
• Comprensión de lenguaje
• LUIS
• Text Analytics API
• ...
• Extraction de conocimiento
• QnA Maker
• …
• Reconocimiento de voz
• Custom Recognition Intelligent Service (CRIS)
• …
• Comprensión de imagen
• Búsqueda Web
Demo I:
Mi primer Bot con .NET SDK
1. Componentes necesarios:
Visual Studio 2017 (Actualizado)
Plantillas Proyecto tipo Bot C#
Emulador de Bot
2. Configuración y creación del proyecto
3. Primer test de funcionamiento en Emulador
¡¡Hola MunBot !!
Flujo de conversación
• Diálogos
• Formularios
• Tarjetas
Pantalla Principal
Pantalla Nuevo
Pedido
Pantalla Búsqueda
de Producto
Dialogo Raíz
Dialogo Nuevo
Pedido
Dialogo Búsqueda
de Producto
Diálogos: La piedra angular
Los diálogos permiten al desarrollador separar distintas áreas de
funcionalidad del bot, de forma lógica, guiándose con el flujo conversacional.
Pueden tener, o no, algún tipo de interfaz como botones o tarjetas, o ser
simplemente basados en conversación.
Ejemplo flujo
de conversación
simple
Contar palabrasContar letras
Como se implementa esto en un dialogo?
• Siempre que se genere una salida usamos:
await context.PostAsync
• Cuando haya una entrada usamos:
context.Wait
• Implementamos el flujo con condicionales
• Valido para casos simples (muy)
• Problema a la hora de mantenerlo o ampliar funcionalidades
Anidando diálogos
• Cuando se invoca un dialogo este toma el control del ‘flujo de
conversación’.
• Cada mensaje será procesado en este dialogo hasta que termine, o redireccione
a otro dialogo.
context.Wait() para especificar la llamada correspondiente la próxima vez que el usuario mande un
mensaje.
context.Done() cerramos el dialogo y lo quitamos del Dialog Stack
context.Forward() Redirección a otro dialogo
context.Call()
context.Fail() Excepción
Root Dialog
Menu
Dialog 1Dialog 2
Help
Root Dialog
Menu Dialog
Dialog 2
Dialogo jerárquico Dialog Stack
Scorable Dialogs
Root Dialog Menu Help
Dialog Stack
Root Dialog
Menu Dialog
Dialog 2
Menu Help
Dialog 1 Dialog 2
Help
Formularios
Nos permiten delegar en el framework la solicitud de datos al usuario
Tarjetas
• Adaptive Card
• Animation Card
• Audio Card
• Hero Card
• Thumbnail Card
• Receipt Card
• Signin Card
• Video Card
Channel inspector
Canales de comunicación
A tener en cuenta:
• Varios canales disponibles
• Cada uno con sus peculiaridades
a la hora de desplegar
• Ciertas funcionalidades no están
disponibles en ciertos canales
• En ocasiones hay que adaptar la
respuesta del bot en función del
canal
Integración con los canales:
• Web Chat
• Skype
• Skype Empresarial
• Telegram
• Facebook Msg
• Slack
• Twilio (SMS)
• Kik
• e-Mail
• GroupMe
• Microsoft Teams
• Cortana (to do)
LUIS
(Language Understanding Intelligent Service)
Hola, soy un bot de comida rápida, las
opciones son: Pedido, Menú, Ayuda
Hola, soy un bot de comida rápida, ¿En
qué puedo ayudarte?
Conversación
guiada
Conversación
abierta
Demo: LUIS Configuración y entrenamiento
LUIS conceptos básicos:
1. Definición de intenciones
2. Definición de Entidades
3. Integración con nuestro Bot
Diagrama de diálogos (integración con LUIS):
SQ_Fast_Food
@SQ_Fast_Food_bot
Intenciones que detecta:
Consultar Menú
“Qué hay para comer?”
Información sobre alérgenos
“No puedo tomar lactosa”
Menú para celíacos
“Tenéis comida para celíacos?”
Hacer un pedido
“quiero realizar un pedido”
Revisar datos de usuario almacenados
“quiero revisar mis datos”
Casos de uso
El futuro de los bots
• Más de mil millones de usuarios de servicios de
mensajería instantánea … y aumentando.
• Uno de los usos que mas tiempo consume el
usuario en su dispositivo.
• Estos bots se están utilizando más… haciendo que
mejoren.
• Nos existe quorum sobre cuando se llegará al nivel
de ‘naturalidad’ del bot como para ser aceptado de
forma mayoritaria… algunos dicen en 2 o 3 años,
otros en una decada.
¿Preguntas?
Gracias por su atención

Cuando haces bot ya no hay stop!!

  • 1.
    Cuando haces Botya no hay Stop !! Microsoft Bot Framework
  • 2.
  • 3.
    Objetivos • Que esun bot? • El Bot Service de Microsoft • Crear un Bot con .Net SDK • Diálogos, Formularios, Tarjetas • Publicación en Canales • LUIS • Casos de uso • El futuro de los bots
  • 4.
    ¿Qué es unbot? ‘Aplicación con la que los usuarios interactúan de forma conversacional’ Mediante • Texto • Tarjetas • Diálogos • Voz • … Cómo funciona • Coincidencia de patrones básicos de respuesta. • Tejido sofisticado de técnicas: • Inteligencia artificial • Integración con servicios existentes.
  • 5.
    ¿Por qué quieroun bot? • Alta disponibilidad • Rapidez • Precisión • Escalabilidad • Reducción de costes • Automatización de tareas mecánicas • Capacidad para gestionar múltiples problemas individuales a la vez
  • 6.
    Se comenta… • Másde tres cuartas partes de las marcas aportará experiencia de usuario a través de realidad virtual y bots en los próximos cuatro años (Oracle 2016). • Para 2020, sobre el 50% de las compañías de medianas a grandes habrá desarrollado algún servicio basado en Bots. (Gartner Predicitons 2017) • Ray Kurzwell (Google) ha afirmado que en 2029 no se podrán distinguir de los humanos. Popularidad del termino chatbot Google trends 02-01-2016 – 01-03-2018
  • 7.
  • 8.
    Servicios adicionales: AzureCognitive Services • Comprensión de lenguaje • LUIS • Text Analytics API • ... • Extraction de conocimiento • QnA Maker • … • Reconocimiento de voz • Custom Recognition Intelligent Service (CRIS) • … • Comprensión de imagen • Búsqueda Web
  • 9.
    Demo I: Mi primerBot con .NET SDK 1. Componentes necesarios: Visual Studio 2017 (Actualizado) Plantillas Proyecto tipo Bot C# Emulador de Bot 2. Configuración y creación del proyecto 3. Primer test de funcionamiento en Emulador ¡¡Hola MunBot !!
  • 10.
    Flujo de conversación •Diálogos • Formularios • Tarjetas Pantalla Principal Pantalla Nuevo Pedido Pantalla Búsqueda de Producto Dialogo Raíz Dialogo Nuevo Pedido Dialogo Búsqueda de Producto
  • 11.
    Diálogos: La piedraangular Los diálogos permiten al desarrollador separar distintas áreas de funcionalidad del bot, de forma lógica, guiándose con el flujo conversacional. Pueden tener, o no, algún tipo de interfaz como botones o tarjetas, o ser simplemente basados en conversación.
  • 12.
  • 13.
    Como se implementaesto en un dialogo? • Siempre que se genere una salida usamos: await context.PostAsync • Cuando haya una entrada usamos: context.Wait • Implementamos el flujo con condicionales • Valido para casos simples (muy) • Problema a la hora de mantenerlo o ampliar funcionalidades
  • 14.
    Anidando diálogos • Cuandose invoca un dialogo este toma el control del ‘flujo de conversación’. • Cada mensaje será procesado en este dialogo hasta que termine, o redireccione a otro dialogo. context.Wait() para especificar la llamada correspondiente la próxima vez que el usuario mande un mensaje. context.Done() cerramos el dialogo y lo quitamos del Dialog Stack context.Forward() Redirección a otro dialogo context.Call() context.Fail() Excepción
  • 15.
    Root Dialog Menu Dialog 1Dialog2 Help Root Dialog Menu Dialog Dialog 2 Dialogo jerárquico Dialog Stack
  • 16.
    Scorable Dialogs Root DialogMenu Help Dialog Stack Root Dialog Menu Dialog Dialog 2 Menu Help Dialog 1 Dialog 2 Help
  • 17.
    Formularios Nos permiten delegaren el framework la solicitud de datos al usuario
  • 18.
    Tarjetas • Adaptive Card •Animation Card • Audio Card • Hero Card • Thumbnail Card • Receipt Card • Signin Card • Video Card
  • 19.
  • 20.
    Canales de comunicación Atener en cuenta: • Varios canales disponibles • Cada uno con sus peculiaridades a la hora de desplegar • Ciertas funcionalidades no están disponibles en ciertos canales • En ocasiones hay que adaptar la respuesta del bot en función del canal
  • 21.
    Integración con loscanales: • Web Chat • Skype • Skype Empresarial • Telegram • Facebook Msg • Slack • Twilio (SMS) • Kik • e-Mail • GroupMe • Microsoft Teams • Cortana (to do)
  • 22.
    LUIS (Language Understanding IntelligentService) Hola, soy un bot de comida rápida, las opciones son: Pedido, Menú, Ayuda Hola, soy un bot de comida rápida, ¿En qué puedo ayudarte? Conversación guiada Conversación abierta
  • 23.
    Demo: LUIS Configuracióny entrenamiento LUIS conceptos básicos: 1. Definición de intenciones 2. Definición de Entidades 3. Integración con nuestro Bot
  • 24.
    Diagrama de diálogos(integración con LUIS):
  • 25.
    SQ_Fast_Food @SQ_Fast_Food_bot Intenciones que detecta: ConsultarMenú “Qué hay para comer?” Información sobre alérgenos “No puedo tomar lactosa” Menú para celíacos “Tenéis comida para celíacos?” Hacer un pedido “quiero realizar un pedido” Revisar datos de usuario almacenados “quiero revisar mis datos”
  • 26.
  • 27.
    El futuro delos bots • Más de mil millones de usuarios de servicios de mensajería instantánea … y aumentando. • Uno de los usos que mas tiempo consume el usuario en su dispositivo. • Estos bots se están utilizando más… haciendo que mejoren. • Nos existe quorum sobre cuando se llegará al nivel de ‘naturalidad’ del bot como para ser aceptado de forma mayoritaria… algunos dicen en 2 o 3 años, otros en una decada.
  • 28.