acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6131The post Tutorial: lanza tu primera skill multiplataforma con Jovo (Parte 3) first appeared on Planeta Chatbot.
]]>Antes de continuar, recuerda que este post forma parte de una saga de publicaciones que podrás encontrar en Planeta Chatbot:
Ya tenemos la skill lista, ahora solo nos queda subirla a Amazon Developer Console y Google Actions y publicarla para que podemos acceder a ella desde nuestros smart speakers.
Para publicar tu skill en Alexa lo primero que necesitas en una cuenta de Amazon Web Services, en la parte 1 de este tutorial ya vimos como instalar en ASK o Alexa Skill Kit, una vez lo tengas instalado ya podremos usar el comando deploy de jovo:
// Subir la skill a Amazon Developer Console $ jovo deploy// Obtener el zip con el código $ jovo deploy --target zip// Ejecuta la skill para poder probarla en desarrollo $ jovo run
Cuando haya terminado de subirse puedes ir a la sección de skills en la consola de Amazon y ver tu skill en desarrollo.

Aquí podrás encontrar el id de tu skill, que nos hará falta más tarde.
La skill está en desarrollo en la consola de Amazon pero el código aún no está subido a AWS, estamos utilizando el webhook de Jovo. Para subirla a AWS vamos a la Consola de administración de AWS, creamos una nueva Lambda Function y añadimos el desencadenador de Alexa Skills poniendo el id de nuestra skill.



Cuando tengas todo listo solo queda subir el zip con el código de la aplicación

Ahora copia el arn del código y cópialo en la configuración de la skill:


Y ya está, tu skill ya funciona sin el webhook de Jovo, prueba a ejecutarla desde un dispositivo Echo o desde la aplicación de Alexa en tu teléfono para confirmarlo.
Para terminar rellena los datos en la pestaña de distribución y envia la skill a publicar.

Para que la skill funcione en Google Assistant necesitaremos hacer un paso adicional.
Lo primero es crear un nuevo agente en Dialogflow:

Una vez creado vamos en configuración a la pestaña Export and Import y hacemos click en RESTORE FROM ZIP, el zip que debes restaurar lo encontrarás aquí:
platforms └── googleAction └── dialogflow_agent.zip

El agente ya está listo, pero en desde Dialogflow no podemos utilizar un ARN como en Alexa, así que tenemos que añadir un endpoint a la skill con Amazon API Gateway:

Ahora añade un método POST en la pestaña de acciones, selecciona tu función lambda e implementa la API.


Ya solo queda copiar la url que se ha generado para API, añadirla a Dialogflow y habilitarla para la intención principal de la skill.


Y ya está listo! Ya puedes ir a Google Actions y probar tu skill,tendrás que darle un nombre de invocación y rellenar el resto de datos para poder terminar su distribución.

Si te has quedado con alguna duda puedes utilizar el tutorial oficial de Jovo:
Espero que te haya gustado este tutorial para aprender a utilzar Jovo, Jovo es un proyecto de código libre con una comunidad muy sana y es muy sencillo de usar, pásate por su canal de Slack!
The post Tutorial: lanza tu primera skill multiplataforma con Jovo (Parte 3) first appeared on Planeta Chatbot.
]]>The post Tutorial: lanza tu primera skill multiplataforma con Jovo (Parte 2) first appeared on Planeta Chatbot.
]]>Tutorial: lanza tu primera skill multiplataforma con Jovo.
Jovo nos permite separar la funcionalidad de las intenciones en varios archivos llamados handlers, nosotros vamos a utilizar dos, uno para las funciones por defecto de Jovo que llamaremos default.ts y otro específico para la función de decir la cantidad de polen, llamado specific.ts. La carpeta /src quedaría de la siguiente manera:
src ├── handlers │ ├── default.ts │ └── specific.ts ├── app.ts ├── config.ts └── index.ts
Jovo tiene varias intenciones por defecto que se ejecutan en distintos puntos de la skill, para este caso solo vamos a utilizar la función de inicio LAUNCH.
En este archivo vamos a programar la funcionalidad principal de la skill. Lo primero que necesitamos es la url que vamos a scrapear, que en este caso es la web de servicios de la Comunidad de Madrid, en la sección de polen.

Estructura básica
Podemos utilizar request-native-promise para obtener el html de la página y después con cheerio podemos navegar por él para extraer la información que nos interesa.
Este es el html que tendríamos en este momento:
Ahora hay que filtar los datos que queremos decir al usuario, en este caso será la fecha de los últimos datos del boletín y la primera línea de cada párrafo que indica si el nivel de polen es alto o bajo.
Con esto conseguimos la lista de datos filtrados:
[ 'ÚLTIMOS DATOS DISPONIBLES: 30 DE JUNIO DE 2019', 'NIVELES BAJOS DE GRAMÍNEAS CON 5 GRANOS DE POLEN POR METRO CÚBICO DE AIRE', 'NIVELES BAJOS DE OLIVO CON 7 GRANOS DE POLEN POR METRO CÚBICO', 'NIVELES BAJOS DE PLANTAGO CON 1 GRANOS DE POLEN POR METRO CÚBICO DE AIRE' ]
Y los juntamos separando cada texto con una coma:
ÚLTIMOS DATOS DISPONIBLES: 30 DE JUNIO DE 2019, NIVELES BAJOS DE GRAMÍNEAS CON 5 GRANOS DE POLEN POR METRO CÚBICO DE AIRE, NIVELES BAJOS DE OLIVO CON 7 GRANOS DE POLEN POR METRO CÚBICO, NIVELES BAJOS DE PLANTAGO CON 1 GRANOS DE POLEN POR METRO CÚBICO DE AIRE
Y ya está, ya podemos decirle el resultado al usuario! Ejecuta los siguientes comandos para compilar el código y abrir el debugger de Jovo:
// Compilar el código de typescript a javascript $ tsc// Crear el bundle del código $ jovo build// Ejecutar el debugger de Jovo $ jovo run
Accede al enlace del debugger provisto por Jovo y prueba a pulsar el botón “LAUNCH” o “Polen” para probar la skill:

Hemos visto como separar la funcionalidad de la skill por diferentes handlers que manejan intenciones concretas, hemos utilizado las funciones por defecto de Jovo y hemos creado la funcionalidad pricipal de la skill. En la siguiente parte de este tutorial veremos como exportar y subir la skill a Alexa y Google Assistant.
The post Tutorial: lanza tu primera skill multiplataforma con Jovo (Parte 2) first appeared on Planeta Chatbot.
]]>The post Tutorial: lanza tu primera skill multiplataforma con Jovo first appeared on Planeta Chatbot.
]]>Aunque acabe de empezar el verano todavía queda al menos un mes por delante hasta que se vayan definitivamente todos los síntomas de la alergia primaveral, ¿no sería útil poder preguntarle a Alexa cuánto polen hay en el aire para saber si salir a correr a la calle es una terrible idea? 
Cuando ya tengamos todo instalado y configurado, la skill hará lo siguiente:
Bueno, pues eso es lo que hace esta skill, es un proceso muy sencillo de desarrollar y es perfecto para aprender a utilizar Jovo.
Jovo es un framework de código libre escrito en typescript que te permite hacer apps de voz para Alexa y Google Assistant (GA) con el mismo código. Además tiene otras herramientas muy útiles que te ayudan a hacer tus skills más rápido:
The Framework for Voice App Development
Si ya has probado a hacer alguna que otra skill, te habrás dado cuenta que hay algunas diferencias entre Alexa y Google Assistant (GA) y que no podemos hacer una app de voz que funcione exactamente igual para las dos, como si pasa por ejemplo con plataformas de chat como WhatsApp y Messenger, en las que puedes hacer un backend común y reutilizarlo.
Si lo que quieres es hacer una skill para ambas plataformas, Jovo puede ser de gran ayuda, el framework tiene un modelo de lenguaje que se exporta en un formato compatible para Alexa y GA y es muy fácil de utilizar, con solo un par de comandos en la terminal puedes compilar, probar y subir a tu skill a la nube.
Además es de código libre y tiene el apoyo de una gran comunidad de desarrolladores. Si te interesa, no olvides pasarte por su Slack.
Jovo funciona con typescript, un superset de javascript (aunque puedes utilizar directamente javascript también), para utilizarlo necesitarás instalar Node.js y npm y añadir algunos paquetes para el desarrollo.
// Instala el cliente de Jovo $ npm install -g jovo-cli// Comprueba que la instalación se hizo correctamente $ jovo -v// Crea una skill en español y con typescript $ jovo new polen-madrid -l es-ES --language typescript
// Request-Promise para obtener el html $ npm install --save request $ npm install --save request-promise-native $ npm install --save @types/request-promise-native// Cheerio para procesar el html $ npm install --save cheerio $ npm install --save @types/cheerio
Para subir la skill a Dialogflow puedes configurar el sdk de Google Cloud, pero por defecto Jovo creará un zip que podrás importar directamente, sin embargo para Alexa no existe esta opción y tendrá que configurar el cliente de Amazon para subir la skill a Amazon Developer Console. Para hacerlo puedes seguir esta guía.
polen-madrid ├── models │ └── es-ES.json ├── platforms │ └── alexaSkill ... ├── src │ ├── app.ts │ ├── config.ts │ └── index.ts ├── test │ └── sample.test.ts └── project.js ...
En la siguiente parte de esta guía veremos como programar la skill, de momento ignora todas las cosas que no conozcas y vamos a hacer una versión inicial básica para poder ver el debugger de Jovo y comprobar que todo funciona bien.
Lo primero es definir las intenciones que vamos a usar. Como esta es una skill muy sencilla solo necesitaremos una sola intención, que es cuando el usuario diga “Polen Madrid” o abra la skill directamente.
models/es-ES.json
Hemos declarado una intención que se llama “Polen” que se activa al decir “polen” o “madrid”, ahora tenemos que definir una función que se ejecute cuando se abre esta intención. Además, la función LAUNCH es la primera en llamarse al abrise la skill y es la que usaremos para llamar a la función “Polen” cuando el usuario active la skill. Estas serán las dos formas de llegar al contenido.
Haz tu primera skill multiplataforma — src/app.ts
Ahora que ya tenemos todo listo, ejecuta los siguientes comandos para compilar el código y abrir el debugger de Jovo:
// Compilar el código de typescript a javascript $ tsc// Crear el bundle del código $ jovo build// Ejecutar el debugger de Jovo $ jovo run
Después de estos pasos, en la terminal verás que Jovo a creado un webhook para que puedas probar la skill en el puerto 3000 de tu localhost. Abre el enlace y podrás ver el debugger de Jovo.

Si pulsas en “Request Buttons” puedes añadir botones para poder activar más intenciones. Si añades la intención “Polen”, ya podrás probar que tanto esta como la de LAUNCH dicen “Polen Madrid”, que es lo que habíamos programado.
Hemos visto para que sirve Jovo y como instalarlo y dar los primeros pasos, en la siguiente parte de esta guía veremos como programar nuestra skill, verás que con menos de 20 líneas de código tendremos la funcionalidad principal lista para probarla y subirla a AWS.
The post Tutorial: lanza tu primera skill multiplataforma con Jovo first appeared on Planeta Chatbot.
]]>The post Los mejores frameworks de desarrollo de chatbots first appeared on Planeta Chatbot.
]]>Hay muchas plataformas que pueden facilitar el desarrollo de tu chatbot, pero la mayoría están orientadas a usuarios no técnicos y eso suele conllevar que tu bot viva en sus servidores. Si tenemos en cuenta que pocas startups duran más de dos años y que algunas son absorbidas por las grandes multinacionales, puede que no te interese que el funcionamiento de tu chatbot dependa de una empresa que podría no durar mucho.
Para bots pequeños o que se basen principalmente en proveer contenido, utilizar una plataforma es ideal, la lógica del bot es muy sencilla de estructurar, en muchas te facilitan un motor de entendimiento y puedes publicar en varios canales con solo pulsar un botón. Si te interesa este tipo de chatbots te recomiendo Xenioo para chatbots y Voiceflow para voicebots.
Sin embargo, para todos aquellos casos más complejos, que necesitan utilizar una base de datos, utilizar ciertos servicios específicos o implementarse con otro software, nos interesa mucho más utilizar un framework de desarrollo.
Hay muchas partes involucradas en el desarrollo de un chatbot, pero podemos centrarnos en los siguientes puntos: herramientas de desarrollo, despliegue y entendimiento.
El desarrollo y el alojamiento normalmente podrás hacerlos con cualquier lenguaje de programación y usando un servidor local, aunque si una plataforma ofrece un SDK que facilite el desarrollo y alojamiento en la nube mejor que mejor.
El entendimiento de las conversaciones suele ser más problemático, sobre todo si no formas parte de una gran empresa que pueda permitirse un equipo de ingenieros de NLP/NLU y por eso será el punto clave de la plataforma.
Haciendo una búsqueda de los mejores frameworks que hay en el mercado, los que más destacan y son más competitivos son los siguientes:
Desarrollado por Microsoft, Bot Framework es la solución más completa y es ideal para grandes empresas con desarrolladores que buscan personalizaciones serias y capacidades robustas. Es la solución más completa y potente, con un arsenal de conectividad detrás.
Utiliza Microsoft Bot Builder, un SDK que ofrece un conjunto de funciones y clases predefinidas en dos lenguajes: C# y Node.js. Las acciones para cada intento del usuario deben crearse desde el lado de la aplicación, lo que significa que los miembros del equipo que no sean técnicos podrían tener dificultades para colaborar. Tiene algunas herramientas muy útiles, como Bot Directory, un repositorio con un montón de ejemplos de chatbots ya creados y Bot Emulator, un emulador que hace muy fácil probar el funcionamiento del chatbot.
Requiere que los usuarios inicien sesión con una cuenta de Azure, desde ahí los desarrolladores pueden utilizar el Azure Bot Service como un recurso para construir, probar, implementar y conectar chatbots. Puedes utilizar también el IDE integrado de Microsoft directamente para escribir tu código.
Microsoft Bot Framework tiene Bot Connector, un servicio que permite desplegar tu chatbot en muchísimos canales, entre ellos Facebook Messenger, Skype, Teams, Slack y Telegram.
Microsoft creó LUIS (Language Understanding Intelligent Service) para proporcionar su propio servicio de procesamiento de lenguaje natural desde Bot Builder y también para su asistente personal, Cortana. Como punto distintivo, LUIS permite que los bots que hagas se aprovechen de recursos de una biblioteca enorme de conocimientos de NLP.
Es el servicio de procesamiento y entendimiento de lenguaje natural de google, con menos herramientas que su competidor de Microsoft, pero eso no siempre es necesariamente malo, Dialogflow es más ligero y sencillo y te da justo lo que necesitas:
Dialogflow tiene un SDK en múltiples lenguajes de programación, soporte para varios idiomas y edición de código en línea. Ofrece dos APIs muy útiles:
Además puedes alojar tu bot en Google Cloud y ampliar su funcionalidad aprovechando todas las herramientas de esta plataforma. Por ejemplo puedes utilizar AutoML para cargar un dataset de conversaciones y hacer que tu chatbot aprenda de ellas.

Un punto importante a destacar aquí es Chatbase. Google ya es un experto en análisis web y de usuarios gracias a su plataforma Google Analytics y con Chatbase provee una funcionalidad y visibilidad similares pero para chatbots, proporcionando información sobre cómo, cuándo y quién está usando tu chatbot.
Con la función de integraciones puedes desplegar tu chatbot en un montón de plataformas al igual que su competidor de Microsoft, pero lo más destacable de Dialogflow en este aspecto es que te permite convertir tu chatbot en un voicebot integrándolo con Google Assistant y además puedes exportar el modelo de tu bot para que sea compatible con Alexa, y aunque esta última opción no es perfecta, puede ahorrarte mucho trabajo a la hora de hacer un chatbot multiplataforma. Solo utilizando Dialogflow puedes hacer un chatbot que funciona en las principales plataformas de mensajería, en una de las principales plataformas de voz y que además te hace más fácil el desarrollo de tu skill de Alexa.
Esta es la parte principal de Dialogflow, su servicio de entendimiento de lenguaje natural es muy fácil de usar, en gran parte por lo sencilla e intuitiva que es su interfaz, crear una conversación es muy rápido y hay muchas opciones por defecto que puedes reutilizar. Un herramienta interesante que provee es el Knowledge Connector, que permite a tu chatbot escanear documentos y artículos para dar respuestas automatizadas, aunque esta opción solo funciona en bots en inglés de momento.
Lex es la solución de Amazon para competir en el sector de los chatbots, a pesar de ser los líderes del mercado en voicebots con Alexa, tener un servicio para plataformas de texto es muy importante para no quedarse atrás.
Los bots creados con Lex se pueden integrar sin problemas con el Kit de habilidades de Alexa (ASK), que contiene decenas de miles de skills con cualquier cosa que los desarrolladores le enseñen a hacer más allá de su funcionalidad por defecto. Puedes exportar su esquema directamente a ASK, creando una versión de tu bot que puede comunicarse a través de la voz sin ningún paso de desarrollo adicional. Además hay un SDK en muchos lenguajes de programación diferentes y un montón de tutoriales, cursos y webinars que facilita Amazon de forma gratuita.
Los desarrolladores pueden usar la consola de administración de AWS para acceder a Lex y crear, almacenar bots y alojarlos en la nube de Amazon con Amazon Lambda de forma muy sencilla y práctica.
Amazon Lex permite desplegar un chatbot en menos plataformas que sus competidores, las dos más destacables aquí son Facebook Messeger y Slack, pero en lo que destaca más es en las capacidades de voz. Un bot creado con Lex puede integrarse fácilmente con Alexa, el asistente de voz más popular (Alexa mantiene una ventaja de cuota de mercado de tres a uno contra Google Home, el competidor líder más cercano). Esto permite a los desarrolladores crear bots que pueden procesar automáticamente la entrada de voz o texto de manera intercambiable.
La interfaz de Amazon Lex para crear diálogos es más básica que que la de Dialogflow y Bot Framework y tiene menos herramientas, pero es completamente funcional y más fácil de usar para principiantes.
Estos tres frameworks cubren la mayoría de necesidades a la hora de desarrollar un chatbot:
El ecosistema de los chatbots no deja de evolucionar y está en constante cambio, cada vez hay más servicios y soluciones que facilitan su desarrollo y hay muchas más plataformas y frameworks en el mercado, sin duda alguna de ellas merecen una mención, ¡échales un vistazo!
The post Los mejores frameworks de desarrollo de chatbots first appeared on Planeta Chatbot.
]]>