Coder Social home page Coder Social logo

cactusin-bot's Introduction

Cactusín Bot

Proyecto de un Bot conversacional para proveer al usuario de información referente al blog y al equipo de No Country for Geeks.

Bot Framework con Node.js

Para el desarrollo de este bot hemos trabajado con el Bot Framework de Microsoft sobre Node.js.

En la documentación podéis ver cómo empezar a trabajar con Node.js para crear vuestro propio bot con Bot Framework.

Publicación

Bot Framework te ofrece la posibilidad de crear un solo bot y desplegarlo en múltiples plataformas como Skype, Facebook Messenger, Slack, Telegram, etc.

En nuestro caso hemos decidido publicarlo para Facebook. De esta forma la gente que entre a la página de Facebook de No Country for Geeks podrá interactuar con nuestro bot para saber más sobre nosotros y nuestro blog.

Registro en Facebook

Para configurar el bot en Facebook debemos acceder al portal de desarrolladores de Facebook, crear una nueva aplicación y configurar el acceso al Facebook Messenger.

En la documentación de Microsoft podemos ver paso a paso como conectar Bot Framework con Facebook.

Objetivo

El objetivo del proyecto es crear un bot que sea capaz de dar información al usuario sobre los miembros y el blog de No Country for Geeks.

Información referente al blog como los posts filtrados por fecha, categoría, autor etc.

Además, ofrecer información sobre los miembros como por ejemplo la información de contacto, proyectos, etc.

Todo el flujo del bot lo hemos definido en el post de Elena que tenemos publicado en nuestro blog.

Para eso vamos a separar el desarrollo en diferentes fases.

Fase 0

En la fase 0 el objetivo es tener un Bot publicado en nuestra página de Facebook que sea capaz de dar al usuario la información básica y llevarlo al blog.

Esto es básicamente el proyecto por defecto de un bot en Node.js pero con unos mensajes personalizados.

Aquí aún no entra a jugar LUIS ya que no tenemos que identificar nada sobre los mensajes del usuario puesto que siempre vamos a contestar con la misma información.

Fase 1

En la fase 1 tenemos que integrar LUIS con nuestro Bot para poder identificar las intenciones del usuario y actuar en consecuencia.

En esta fase el Bot solo será capaz de contestar a la información referente a los posts.

Además, debe ser capaz llevar al usuario al blog para el resto de temas que no sepa responder.

Fase 2

En esta última fase el bot tiene que estar completamente terminado con acceso a todo lo que hemos mostrado en el flujo.

Flujo del bot

A continuación podéis ver el flujo completo que tiene el bot.

Flow del Bot

Configuración del despliegue

Para desplegar el bot es necesario el AppId y PasswordId que los obtenemos desde la configuración de nuestra aplicación en el portal de Bot Framework.

En nuestro caso el bot obtiene estos valores desde las variables de entorno. Por tanto, donde despleguemos el bot debemos crear las variables MICROSOFT_APP_ID y MICROSOFT_APP_PASSWORD.

var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

Si desplegamos en Azure con un App Service de Linux podemos crear las variables de entorno desde la Configuración de la Aplicación.

Datos de contacto

Puedes ponerte en contacto con nosotros para cualquier duda del proyecto.

cactusin-bot's People

Contributors

ikeinyyo avatar

Watchers

James Cloos avatar  avatar Daniel Martin Gonzalez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.