Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

content(14-chatbot): añade cambios propuestos por @ccardensa #474

Merged
merged 4 commits into from
Jan 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 7 additions & 19 deletions 14-chatbot/01-challenge/00-opening/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ herramienta/portal de desarrollo y las API de Servicios Cognitivos para
inteligencia, uniendo los dos en la creación de un bot inteligente de chat para
plataformas conversacionales.

Para comenzar este curso necesitarás tener instalado en tu computador lo siguiente:

* [Node.js](https://nodejs.org)
* [Visual Studio Code](https://code.visualstudio.com/download)
* [Microsoft Bot Framwork Emulator](https://docs.microsoft.com/en-us/bot-framework/bot-service-debug-emulator)

...

## Entregables y evaluación
Expand All @@ -48,22 +54,4 @@ Los ejercicios fuera de lo que es el proyecto/producto no serán calificados.

## Hoja de ruta

### Semana 1

* **Sesión 1: presencial 3h => Presentación de retos, principios de diseño, tipos
de bots y Microsoft Bot Framework**
* Sesión 2: webinar 1.5h => Servicios cognitivos

### Semana 2

* Sesión 3: presencial 3h => Hacking
* Sesión 4: webinar 1.5h => Prueba de bots

### Semana 3

* Sesión 5: presencial 3h => Hacking
* Sesión 6: webinar 1.5h => Vigilar la salud de los bots - Telemetría

### Semana 4

* Sesión 7: presencial 3h => Hacking + Demos
![kickoff chatbot con azure - sclene18](https://user-images.githubusercontent.com/110297/34795694-1f114566-f621-11e7-8d99-7edd1c30aa97.png)
25 changes: 24 additions & 1 deletion 14-chatbot/01-challenge/02-env/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@

***

## ¿Qué es la Nube?

La definición de la nube puede parecer poco clara, pero, básicamente, es un
término que se utiliza para describir una red mundial de servidores, cada uno
con una función única. La nube no es una entidad física, sino una red enorme de
servidores remotos de todo el mundo que están conectados para funcionar como un
único ecosistema. Estos servidores están diseñados para almacenar y administrar
datos, ejecutar aplicaciones o entregar contenido o servicios, como streaming de
vídeos, correo web, software de ofimática o medios sociales. En lugar de acceder
a archivos y datos desde un equipo personal o local, accede a ellos en línea
desde cualquier dispositivo conectado a Internet, es decir, la información está
disponible dondequiera que vaya y siempre que la necesite.

Existen 3 Tipo de Nubes

* Nube pública: comparte recursos y ofrece servicios al público a través de
Internet,
* Nube privada: no se comparte y ofrece servicios a través de una red interna
privada, normalmente hospedada en el entorno local.
* Nube híbrida: comparte servicios entre nubes públicas y privadas

## ¿Qué es Azure?

...
Azure es un conjunto de servicios en la nube que los desarrolladores y los
profesionales de TI utilizan para crear, implementar y administrar aplicaciones
a través de nuestra red global de centros de datos.
72 changes: 47 additions & 25 deletions 14-chatbot/02-getting-started/01-design-principles/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,47 @@
# Principios de diseño y tipos de bots

* Tipo: `seminario`
* Formato: `guiado`
* Duración: `30min`

## Objetivos del seminario

* Hacer un resumen de lo que vamos a aprender en esta unidad
* Aclarar la _hoja de ruta_ de la unidad en el contexto del curso
* Preguntas y conceptos clave de esta unidad

***

## ¿Qué es un Bot y porque implementarlo en Azure?

...

## Tipos de Bot

...

## ¿Qué utilidades le podemos dar a los bots?

...
# Principios de diseño y tipos de bots

* Tipo: `seminario`
* Formato: `guiado`
* Duración: `30min`

## Objetivos del seminario

* Hacer un resumen de lo que vamos a aprender en esta unidad
* Aclarar la _hoja de ruta_ de la unidad en el contexto del curso
* Preguntas y conceptos clave de esta unidad

***

## ¿Qué es un Bot y porque implementarlo en Azure?

Los bots son sistemas que permiten a los usuarios interactuar con aplicaciones o
servicios de la misma forma que lo harían si estuviera hablando con otra
persona. Esto permite llevar a cabo acciones como encargar comida o pedir un
taxi de manera cómoda y natural. Los bots no solo pueden interactuar con las
personas, sino que también pueden comunicarse entre ellos para llevar a cabo
tareas.

Podemos resumir que un bot es una aplicación que realizá tareas automatizadas,
evitandonos trabajos repetitivos

## Tipos de Bot

* Crawlers
* Bots Informativos
* Chat Bots (Bots conversacionales)
* Bots Transaccionales
* Hacker bots
* Spam bots
* Game bots
* Scraper bots

[Acá podrán ver una galeria de bot publicos](https://bots.botframework.com/)

## ¿Qué utilidades le podemos dar a los bots?

Los usos más habituales de los bots son:

* Automatización de pedidos
* Solicitar reservas en restaurantes
* Atención al cliente
* Solicitud de asistencia médica
130 changes: 129 additions & 1 deletion 14-chatbot/02-getting-started/02-ms-bot-framework/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,132 @@

***

...
## ¿Qué es Microsoft Bot Framework?

Microsoft Bot Framework es un conjunto de herramientas para ayudarte a crear
bots, este conjunto de herramientas se dividen principalmente en 3 grandes
componentes Bot Builder SDK, Bot Connector y Bot Directory.

Nuestros bots siempre estarán compuestos por una lógica que corresponderá al
servicio que queramos ofrecer o la problemática que queramos solucionar, también
contará con una lógica de conversación esta lógica de conversación se puede
implementar con Bot Builder SDK.

Bot Builder SDK es una librería con la cual puedes desarrollar tus bot tanto en
Node.js como con C#, el código que generamos estará incorporado en el proyecto
del bot y se encargará de gestionar las conversaciones., también podemos agregar
a LUIS (Languaje Understanding Inteligent Service), LUIS se encarga de
enriquecer nuestros bots integrándole "Compresión del Lenguaje Natural".

Otro componente es el Bot Connector, este componente es un servicio online que
nos permite conectar a nuestro bot con alguno de los servicios más conocidos
como Skype, Facebook Messenger, Slack, entro otros.

El último componente es Bot Directory es un directorio publico donde se
encuentran todos los bots registrados por medio de bots Connector.

Si quieres conocer más sobre Bot Framework ingresa a los siguientes enlaces:

* [Microsoft Bot Framework](https://dev.botframework.com/)
* [Create a bot with the Bot Builder SDK for Node.js - Bot Service | Microsoft Docs](https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-quickstart)
* [Intro to Bot Framework | APAC DevSquad Showcase | Channel 9](https://channel9.msdn.com/Series/APAC-DevSquad-Showcase/Intro-to-Bot-Framework)

## Tecnologias con las cuales podemos diseñar Bot en Azure

Bot Builder SDK nos permite desarrolar bots con Node.js y C#

## Servicios Cognitivos

Los Servicios Cognitivos nos permiten agregar inteligencia artificial a nuestros
bots (Algoritmos Inteligentes) la cual nos permite ver, oír, hablar, comprender
e interpretar las necesidades de los usuarios con formas de comunicación
naturales.

Dentro de los servicios Cognitivos podemos encontrar:

* Visión: Algoritmos de procesamiento de imágenes para identificar, moderar y
poner una leyenda de forma inteligente a sus imágenes.
* Conocimiento: Cree mapas de información y datos complejos para resolver tareas
como recomendaciones inteligentes y búsqueda semántica.
* Voz: Convierta voz en texto, use la voz con fines de comprobación o agregue
reconocimiento del hablante a sus aplicaciones.
* Búsqueda: Agregue Bing Search APIs a sus aplicaciones y aproveche la capacidad
de buscar en miles de millones de páginas web, imágenes, vídeos y noticias con
una sola llamada API.
* Lenguaje: Permita que las aplicaciones procesen lenguaje natural con scripts
precompilados, evalúen los sentimientos y aprendan a reconocer lo que los
usuarios desean.

Si quieres conocer más detalles sobre los Servicios Cognitivos ingresa a
[este enlace](https://azure.microsoft.com/es-es/services/cognitive-services/).

## Configuración de ambiente para desarrollar nuestro primer bot

Para configurar nuestro ambiente, realizaremos los siguientes pasos:

1. Instalarán Node.js

2. Abrir Visual Studio Code

3. Ir al menú ver->terminal Integrado y verificarán si node.js esta funcionando
correctamente

4. Instalaremos `restify` y `botbuilder` con el siguiente comando:

```sh
npm install --save restify botbuilder
```

## Construcción de bots simples

### Ejemplo 1: Creando nuestro primer bot

```js
var builder = require('botbuilder');
var conector = new builder.ConsoleConnector().listen();
var bot = new builder.UniversalBot(conector);

bot.dialog('/', [
function(session){
session.send('Hola Laboratoria!');
}
])
```

### Ejemplo 2: Bot Web

Para este ejemplo debemos tener instalado nuestro emulador bot framework.

```js
//command: npm install botbuilder -save
var builder = require('botbuilder');
//command: npm install restify -save
var restify = require('restify');

//Creamos el server para comunicarno con nuestro bot
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s escuchando %s', server.name, server.url);
});

//Por ahora esto queda en blanco
var conector = new builder.ChatConnector({
appId: '',
appPassword: ''
});

var bot = new builder.UniversalBot(conector);
//Este será nuestro endpoint de nuetro bot
server.post('/api/mensajes', conector.listen());

//acá es donde sucede la magia de nuestro bot
bot.dialog('/', [
function (session) {
builder.Prompts.text(session, '¿Cómo te llamas?');
},
function (session, results) {
let msj = results.response;
session.send(`Hello ${msj}!`);
}
]);
```