Bots: Migración de tus Bots a Azure Bot Service

Microsoft ha anunciado de forma oficial que todos los Bots, creados en el Portal Dev Bot Framework deben migrarse al nuevo Servicio para Bots en Azure antes del 31/03/2018.

La nota indica que los Bots no migrados continuarán funcionando durante un tiempo después de la fecha límite de migración, pero es mejor migrarlos a tiempo para evitar la interrupción del servicio en el futuro.

El proceso de migración se debe realizar desde el mismo Portal como vemos en la captura y los botones:

Notas sobre la migración

  • El proceso de migración es automático, es posible hacer un rollback, una vez terminada la migración, el botón de Rollback migration estará disponible para deshacerla.
  • No es necesario  cambiar nada en el código fuente del Bot, solo es el registro de Bot el que se está moviendo al sistema de Azure.
  • Se necesita una cuenta Azure para gestionar el registro de canales Bot desde Azure Bot Service.
  • Los canales disponibles en Azure son de 2 tipos Standard (gratuitos) y Premium (de pago).
  • Al tener un Bot en Azure es importante calcular bien los precios para saber el coste mensual de los servicios: https://azure.microsoft.com/en-us/pricing/details/bot-service

Documentación para la migración

Por último, el anuncio y documentación oficial para realizar el proceso la encontrareis aquí:

https://blog.botframework.com/2017/12/19/bot-state-service-will-soon-retired-march-31st-2018

 

 

 

 

Bots: Channel Inspector explora los estilos y renderizado de cada canal para tu bot

Channel Inspector es una herramienta online que forma parte del Microsoft Dev.BotFramework muy útil para explorar todas las funciones que ofrecen los canales de chat y mensajería de una manera fácil de entender el estilo y las limitaciones de la plataforma seleccionada. Con Channel Inspector, podemos ver rápidamente cómo se renderizará un bot en cada canal sin necesidad de registrarnos y obtener una cuenta en cada plataforma para publicarlo.

Al abrir el Channel Inspector disponemos de todos estos canales para inspeccionar:

 

Veamos algunos ejemplos del Channel Inspector con la opción de HeroCard:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Podéis consultar información y recursos en este link: bot-service-channel-inspector

No perdáis esta herramienta, porque seguro que la utilizareis todos los días 😉

 

Bots: Recursos para formación

Imagen relacionada

Para aprender y entender como construir bots lo mejor es practicando tutoriales que nos permitan ganar skills y conocer todos los recursos que intervienen en la construcción y publicación de bots.

Hoy quiero compartir este link, donde encontrareis mucha información, codigo fuente, presentaciones, etc pensado tanto para instructores como estudiantes: https://github.com/Azure/bot-education

Academic Resources for Computer Science

On satisfying the pre-reqs, begin with the Hands on Labs in the following order:

  1. Getting Started with a Simple Bot: BotsTennisLab
  2. Publishing and Registering: BotsPublishingAndRegisteringLab
  3. Intro to Text Analytics in Cognitive Services: CognitiveServicesTextMiningLab
  4. Integration of Cognitive Services API with Bot Framework: BotsSentimentAnalysisLab
  5. Intro to UI Controls for Bots: BotsRichUILab
  6. Track Bot Application’s Health: BotsTelemetryLab
  7. Developing Unit Tests for Bots: BotsUnitTestingLab
  8. Using Ngrok for Rapid Development and Testing: BotsNgrokLab
  9. Develop a LUIS App for your bots: BotsLuisLab
  10. Logging Conversation Data: BotsLoggingLab
  11. Direct Communication with your bot: BotsDirectLineLab

Source: https://github.com/MSFTImagine/computerscience

Hands on Labs

Bot Samples-1: https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples

Bot Samples-2: https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp

Bot Varios: https://github.com/Microsoft/computerscience/tree/master/Labs/AI%20and%20Machine%20Learning

Bot QnAMaker: https://github.com/Microsoft/computerscience/blob/master/Labs/AI%20and%20Machine%20Learning/Azure%20Bot%20Service/Azure%20Bot%20Service.md

Bots: Microsoft Bot Emulator

bot-emulator-logo

Si estamos desarrollando un bot con Visual Studio o en Azure y queremos testearlo, disponemos del «Bot Framework Emulator» una aplicación desktop para Windows, Linux y OSX que podemos descargar de manera gratuita desde GitHub o instalarnos el ejecutable en nuestro equipo para depurar bots, ya sean locales o remotos.

Arrancando Bot Emulador

El emulador es muy simple, lo iniciamos y veremos la pantalla que se muestra donde indicaremos la url de nuestro bot, recordar que el bot debe estar funcionando y saber la ruta del API donde esta publicado para realizar la conexión, también recordar que no es necesario tener el AppID y password para las pruebas desde el Emulador.

bot-emulator-demo.png

El emulador nos permite escribir nuestro mensaje para interactuar con el bot, ver los mensajes E/S en json en «details» y también «logs» en la misma ventana.

Probando Bot Emulator

Podemos realizar pruebas desde el Emulador contra nuestro bot de 3 formas:

Descargas

La pagina oficial es: https://github.com/Microsoft/BotFramework-Emulator y encontraremos toda la información y descargas para usar el emulador.

Bots: Tips para crear ChatBots

bot-framework-logo2

A la hora de construir nuestros chatbots, se deben tener en cuenta una serie de conceptos y buenas prácticas para crearlos, revisando varios articulos sobre este tema, encontre este del autor Des Flanagan que me gusto bastante y quiero compartir con todos.

El articulo original esta en ingles, pero lo dejo traducido en castellano:

1) Bots e Inteligencia Artificial no son lo mismo: Puedes crear un Bot funcional en muy poco tiempo que no será muy útil porque no responderá a la entrada del usuario. Desarrollar un Bot inteligente con personalidad puede llevar meses trabajando con herramientas de procesamiento de lenguaje natural, como Microsoft LUIS o Watson de IBM. Un Bot inteligente lleva su tiempo.

2) Definir alcance del Bot para el usuario: Permite al usuario conocer qué puede y qué no puede hacer tu Bot. Compartir el alcance de su conocimiento. Pero primero, debes tener una comprensión clara de lo que hace su Bot. Escriba su propósito. Si no puedes definir su propósito por escrito, entonces ni siquiera está claro para ti.

3) Comprender que los usuarios probarán los límites: Los usuarios probarán los límites de su Bot, desde el uso de un lenguaje incorrecto hasta otros comentarios obscenos. Deberás decidir cómo responderá su Bot a estas observaciones; si le conviene a su marca participar en chit-chat o si los comentarios son cortésmente, o si simplemente son ignorados.

4) Controlar flujo de la conversación: Controla el flujo de la conversación tanto como sea posible. Lleva a una mejor comprensión de la intención del usuario, lo que lleva a respuestas más precisas de su Bot. Puede hacerlo utilizando los botones para manejar la entrada del usuario. Sin embargo, no hagas que el flujo de conversación sea demasiado rígido. Después de todo, es una plataforma conversacional, por lo que deberá encontrar la combinación correcta de botones y texto para manejar la entrada del usuario.

5) Desarrollar un prototipo: Antes de invertir tiempo y dinero en su Bot, desarrolle un prototipo para ver si se ajusta a sus necesidades. Tomar un caso de uso del mundo real y escriba las historias de usuario para él. Esto te dará un objetivo muy claro de lo que hará tu Bot. Obtenga comentarios de usuarios reales.

6) Mantener respuestas cortas: Si las pruebas de usuario me han mostrado una cosa, es el usuario preferido para recibir mensajes cortos y concisos. No envíe párrafos de texto a un usuario. Puede lograr esto dividiendo trozos de texto en varios mensajes, enviados por separado al usuario, uno tras otro. Cuando corresponda, envíe una imagen al usuario para mostrar una comparación de productos, una lista de características del producto, etc.

7) Mantener el estado de la conversación: Para crear un poderoso Bot de conversación, deberá comprender el estado de la conversación. En otras palabras, ¿qué fue lo que el usuario discutió con el Bot anteriormente en la conversación (por ejemplo, el usuario pregunta «A qué hora comienza Lord of the Rings», seguido de «¿Cuánto tiempo durará?»). Comprender las preguntas de seguimiento llenas de respuestas es un gran desafío. Un enfoque es almacenar el último tema de la conversación en estado, por lo que su Bot sabrá el contexto de lo que el usuario estaba hablando anteriormente.

8) No pretendas que tu Bot sea humano: Tu Bot es una máquina. Evite decirle al usuario cualquier otra cosa. No se comporta como un ser humano, por lo que es directo para los usuarios sobre lo que es su Bot y lo que sabe.

9) Haga uso de los datos almacenados que pertenecen a los usuarios: Si su Bot tiene acceso a la información almacenada del usuario, en una base de datos, por ejemplo, use esa información en lugar de pedirle al usuario nuevamente. La gente odia dar información sobre sí mismos que esperan que usted ya sepa. Muestra el poder de tu Bot usando los datos almacenados para obtener una respuesta precisa a la consulta de un usuario.

10) Tener una ‘salida’ para el usuario: Hágales saber cuando su Bot no sabe algo, y pregunte si les gustaría ser transferidos a una persona real, o tome su correo electrónico / número de teléfono y dígales que alguien los contactará. ¡No los dejes colgando sin ningún lugar adonde ir cuando tu Bot no tenga la respuesta!

Link original: 10-quick-tips-for-building-a-successful-chatbot

 

Cuestiones claves para nuestro ChatBot

A parte de los consejos anteriores hay ciertas preguntas claves que siempre hay que tener en mente y debemos ser capaces de responder antes de empezar el desarrollo de un ChatBot.

  • ¿Cuál es el objetivo principal del bot?
  • ¿Qué tipos de usuarios van a utilizarlo?
  • ¿Qué canales usaremos para publicarlo?
  • ¿Qué arquitectura e integración definimos para el bot?
  • ¿Cuanto me costará el bot mensualmente?

Para calcular los costes estimados, tenemos la calculadora de Azure: https://azure.microsoft.com/es-es/pricing/details/bot-service

Ademas es importante estas recomendaciones de MS:

Como siempre, espero que esta información sea de utilidad para vuestros bots 😉

Visual Studio 2017: Bot Application Template no encontrada

Por defecto, Visual Studio no incluye ninguna plantilla de «Bot Application», también podemos crear bots desde cero importando los paquetes Nuget correspondientes, pero como sabeis, es mejor usar la plantilla que ya viene configurada con todo lo necesario para desarrollar bots.

La plantilla sirve para Visual Studio 2015 y 2017, podemos descargarla aqui (recordar solo válida para C#):

De forma predeterminada, el directorio de plantillas de proyectos de Visual Studio se encuentra en:

%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\

o bien, poniendo la ruta:

C:\Users\MyUser\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#

Copiamos el archivo «Bot Application.zip» descargado dentro de la carpeta y listo:

Abrimos nuestro Visual Studio y ya veremos la plantilla lista para seleccionar.

Creamos el proyecto y vemos que ha cargado la plantilla, realizamos la compilación para ver que funciona correctamente.

Es posible que la primera vez no descargue todos los paquetes Nuget, pero al compilar se soluciona automáticamente, sino, hay que actualizar los paquetes de la solución y listo.

Para configurar la plantilla tambien dejo estos enlaces a GitHub:

 

Happy Codding!!