Вы находитесь на странице: 1из 30

https://planetachatbot.

com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

CONSTRUYE TU PRIMER BOT CON SAP CONVERSATIONAL AI


¡En este tutorial, aprenderás cómo construir tu primer chatbot desde cero con nuestro potente software bot!

SAP Conversational AI
Feb 1 · 13 min read

Cuando eres un desarrollador de chatbots principiante, aprender sobre la comprensión del lenguaje natural, los flujos de
conversación y las plataformas de mensajería puede ser un poco abrumador. En esta guía, te ayudaré a construir tu primer
bot en SAP Conversational AI. Al final de este tutorial, tendrás un chatbot funcional y sabrás cómo:

 Hacer que tu bot entienda el lenguaje humano

 Construir un flujo de conversación

 Implementar tu bot en un canal externo (Facebook Messenger, Twitter, …)

Con SAP Conversational AI, puedes diseñar fácilmente flujos de conversación complejos impulsados por una poderosa
inteligencia artificial.

Necesitarás una cuenta para seguir este tutorial, haz click aquí si aún no tienes una … ¡es completamente gratis!

Vamos a empezar con un bot simple:


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Necesitaremos:

1. Comprender saludos y despedidas.

2. Comprender que el usuario está pidiendo una broma y envíar una seleccionada al azar de una lista.

3. Comprender al menos dos reacciones: se ríe o sonríe, y reaccionar con un divertido gif o tus más sinceras disculpas.

4. Desplegar nuestro bot en Facebook Messenger.

Requerimientos

1. Para comenzar, crea una cuenta en SAP Conversational AI! Es gratis.

2. Una vez que hayas iniciado sesión, es el momento de crear tu primer bot. Haz clic en el botón “Comenzar con una
plantilla”, o simplemente en + NEW BOT en la sección del encabezado.

Creando un nuevo bot

3. Puedes elegir una o muchas habilidades predefinidas para tu bot. Esto te ayudará a comenzar más rápido. Por ahora
selecciona solo “saludos”, pero te animo a que revises los demás más tarde.

4. Elige tu nombre. “Broma-bot” sería el más adecuado.

5. Añade una descripción. “Mi increíble y divertido chiste bot” aunque quizá algo menos engreído sería lo correcto.

6. Puedes configurar hasta 6 temas para mejorar tu entrenamiento de bot. Los temas son palabras clave que pueden definir
tu bot como “moda”, “juegos” o “trabajos”.

7. Dependiendo del uso de los datos, elige la opción de Política de datosapropiada. Ten en cuenta que no permitimos bots
de “Salud” (que solicitan información personal de salud a sus usuarios) por el momento.

8. Establece el inglés como idioma predeterminado.

9. Puedes mantener tu bot público ya que no hay información privada, pero en caso de que cambies de opinión, puedes
cambiar esta configuración más adelante.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Escogiendo las opciones de tu bot.

¡Ya estás listo para construirlo!

Las etapas de la construcción de un bot

Hay 5 fases en la vida de tu bot, todas ellas representadas en nuestra plataforma a través del uso de 5 pestañas:

1. Entrenamiento: Enseña a tu bot lo que necesita entender.

2. Construcción: Crea tu flujo de conversación con nuestra herramienta de Generador de Bot.


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
3. Código: conecta tu bot con API externas o una base de datos.

4. Conectar: envía tu bot a una o varias plataformas de mensajería.

5. Monitor: entrena a tu bot para hacerlo más nítido y obtén información sobre su uso.

En el post de hoy, omitiremos la parte del “Código”, porque no necesitaremos información externa. Si quieres conectar tu
bot con algún código, te animo a que consultes este tutorial.

PASO 1 / 9 — Entrena a tu bot para entender el lenguaje humano

Este es el cerebro de tu bot, donde se reúne toda su comprensión, dividida en Intents.

Un intent (o intención) es una “caja” de oraciones que tienen el mismo significado, aunque pueden ser muy diferentes
entre sí. Cuando un usuario envía un texto a tu bot, nuestro algoritmo lo compara con las frases de tus intents. Luego
verifica si está lo suficientemente cerca de uno de ellos y decide cuál es la intención del mensaje.

Por ejemplo:

 ¿Eres un bot?

 Usted responde tan rápido, estoy seguro de que debe ser algún tipo de robot.

 ¿Estoy hablando con un humano o no?

Todos estos inputs son diferentes, pero todos hacen la misma pregunta que podemos resumir como: ¿Eres un bot? Bueno,
eso sería un gran intento! Si tu bot es capaz de reconocer esta pregunta, puedes preparar una reacción inteligente, como
“Soy un robot y estoy orgulloso de ello”.

Intenciones de tenedor

Todos los bots deben entender cosas básicas como ‘saludos’, ‘estar de acuerdo’, ‘no estar de acuerdo’, o cuando un
usuario pide ayuda.

Si elegiste los “saludos” de habilidades predefinidos cuando configuraste tu bot, ya tendrás dos intenciones: adiós y
saludos.

Como SAP Conversational AI es colaborativo, ¡no tienes que recrear cada intent! Puedes “bifurcar” una intención que
alguien ya creó para clonarla directamente en tu bot. Ya que debemos entender que nuestro usuario desea que se nos
cuente un chiste, veamos si la comunidad ya ha creado esta intención para nosotros.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Buscando un intento de broma

Escribe “broma” en la entrada de búsqueda.

Puedes hacer clic en los nombres de intención si deseas verificar su contenido completo. El primer resultado se adapta a lo
que estoy buscando.

Los resultados de la búsqueda, la bifurcación está a solo un clic de distancia!

Crear una nueva intención

Si quieres una intención personalizada, puedes construirla desde cero. Aquí, queremos que el robot entienda cuando
alguien se ríe de la broma.

Haz clic en + CREAR a la derecha del campo de búsqueda, y elige un nombre para tu intención:
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Creando un nuevo intento — risas

Repite este proceso para la intención que reúne reacciones negativas a tus chistes:

Creando un nuevo intento — cojo

Paso 1/9 completado!

PASO 2 / 9 — Añadir expresiones

Ahora que tenemos intenciones, debemos rellenarlos con varias expresiones. Una expresión es el nombre de una oración
agregada a un intento.

Una regla de oro sería agregar al menos 30 expresiones a un intento, e idealmente más de 50 .

Haz clic en un intento y agrega oraciones que quieras que tu bot entienda.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Añadiendo una nueva expresión

Ponte en los zapatos de las personas que hablan con tu bot. ¿Qué podrían pedir? Ingresa una nueva expresión
escribiéndola en el campo Agregar una expresión. Aquí hay unos ejemplos:

Risas

 Jajaja eso es hilarante

 ROFL eres bueno!

 Eso, amigo mío, fue una broma increíble.

 ¡No me he reído tanto en mucho tiempo!

Cojo

 No tienes sentido del humor en absoluto.

 Eso es a la vez terrible y ofensivo.

 ¿Qué diablos fue eso?

 Inténtalo más, fue una broma muy mala.


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Visión general de las expresiones en el intento cojo

Consejo: haz clic en el mensaje “Tienes X expresiones sugeridas para enriquecer tu intención “ para ver ejemplos de frases
que puedes agregar a tu bot. Una buena manera de acelerar tu entrenamiento!

Paso 2/9 completado!

PASO 3 / 9 — Prueba tu bot

Ahora que tu bot está lleno de expresiones, probémoslo con la consola: Haz clic en el icono de burbuja de PRUEBA en la
parte superior derecha. Escribe una oración con la que no hayas entrenado a tu bot: “Botty bot, ¿puedes contarme una
broma, por favor?”
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Probando tu bot en SAP Conversational AI

Con respecto a lo que escribiste, verás qué intento se detectó en “Se está refiriendo a”. Si el algoritmo no detectó un
intento, o detectó un intento no válido, eso significa que necesitas entrenar a tu bot con más expresiones. Vuelve a tus
intentos y añade o modifica expresiones. Entonces, prueba de nuevo. Esto puede parecer un poco repetitivo, pero es la
mejor manera de asegurar que tu bot detecte correctamente las oraciones de los usuarios.

Una vez que estés satisfecho con la detección de la intención de tu bot, es hora de pasar a la siguiente fase: crear el flujo de
tu bot.

Paso 3/9 completado!

PASO 4 / 9 — Construye y administra el flujo de conversación

Ahora que el “cerebro” de tu bot está completo, haz clic en la pestaña Crear.

La pestaña Construir es donde encuentras el Generador de Bot. Te ayuda a construir el flujo de conversación de tu bot
usando Skills.

¿Qué es una Skill?

Cada skill representa una cosa que tu bot sabe cómo hacer, y pueden interactuar entre sí. Tu skill puede ser complicada,
como gestionar el pago con crédito o simplemente, responder preguntas básicas.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Cuando creas un nuevo bot, las habilidades de bifurcación que ya creaste en el nuevo seguirán haciendo que tus bots sean
más poderosos. ¡También puedes unir las skills creadas por otras personas en la plataforma, para que no tengas que
reinventar la rueda!

Si escogiste la habilidad predefinida “Saludos” durante la creación de tu bot, ya estará en tu interfaz.

El resumen de habilidades

Haga clic en su nombre para ver sus detalles:

Detalles de una habilidad

Una habilidad tiene cuatro partes:

 Léame: ¿Dónde explicas el propósito de tu habilidad?

 Desencadenadores: donde defines por qué esta skill debe activarse después de un mensaje de usuario.

 Requisitos: Describe qué información debe recopilar esta skill y qué preguntas deben formularse para cumplir los
requisitos
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
 Acciones: Qué hacer una vez cumplidos los requisitos.

Si navegas por las pestañas, verás que esta skill está estructurada de la siguiente manera:

 Se desencadena si coinciden los saludos de intención o de despedida.

 No tiene requisitos, ya que no necesita recopilar información adicional. Eso significa que ejecutará acciones
directamente después de un trigger.

 Tiene dos acciones posibles: si la intención coincidente son saludos, envía un mensaje de bienvenida al azar elegido de
una lista, y si la intención es adiós, hace lo mismo, pero selecciona el mensaje de una lista diferente.

Es hora de crear nuestra propia Skill con la misma estructura.

Paso 4/9 completado!

PASO 5 / 9 — Construye tu propia habilidad

Regresa a la pestaña Construir y haz clic en + Crear habilidad en el lado izquierdo.

Tienes tres tipos diferentes de skills: Business, Floating y Fallback

 Business y Floating no tienen diferencias estructurales. Sin embargo, la diferenciación de los dos tipos de habilidades
ayuda cuando tienes muchas de ellas.

 Las habilidades de fallback se activan cuando ninguna otra habilidad tiene sus desencadenantes cumplidos después de
un mensaje de usuario. La mayoría de las veces, solo tendrás uno de este tipo, en el que podrás recordar al usuario
qué puede hacer tu robot y pedirle que lo reformule.

Nuestra skilll será de tipo floating. Dale el nombre que quieras, yo elegí “hacerle una broma”.

Creando una nueva habilidad flotante


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Haz clic en tu skill recién creada, luego ve a la pestaña de triggers. Queremos activar nuestra skill si una de las tres
intenciones que creamos coincide.

Los disparadores de una habilidad.

No te olvides de cambiar la condición a OR — haciendo clic en uno de los botones azules “Y” — ya que es una condición
AND por defecto, y queremos activar nuestra skill cuando alguna de estas intenciones coincida.

No tendremos que hacer nada en los Requisitos, porque no tenemos nada que preguntar. Pero puedes mejorar el bot
pidiendo información, como qué tipo de bromas prefieren, o qué edad tienen si quieres agregar algunas bromas para
adultos.

Dirígete a la pestaña Acciones y crea tu primer grupo de mensajes.

Haz clic en AGREGAR NUEVO GRUPO DE MENSAJES, luego AGREGA CONDICIÓN para activar los mensajes y agrega la
condición: Si @ ask-joke está presente. La “@” significa tipo de intención. Vamos a cubrir otros tipos más tarde.

Luego elige el tipo de acción “ENVIAR MENSAJE”, elige Formato de texto y escribe la mejor broma que conozcas:
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Enviar un mensaje cuando se cumplen ciertos desencadenantes

También puedes establecer un retraso (opcional) entre dos mensajes, hasta cinco segundos. Esto puede ser útil cuando los
mensajes que envía tu bot son bastante largos y necesitan tiempo para que los lea el usuario.

Paso 5/9 completado!

PASO 6 / 9 — Da diferentes respuestas posibles a tu bot

Haz clic en el little + sobre tu mensaje para agregar un nuevo mensaje a tu lista aleatoria, para que no siempre estés
enviando el mismo chiste. Si vuelves a hacer clic en ENVIAR MENSAJE, puedes enviar varios mensajes al mismo tiempo.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Tres mensajes diferentes activados en las mismas condiciones.

Deja que tu creatividad hable!

Una vez que te sientas cómodo con tus chistes, vamos a cubrir los otros dos intentos.

Haz clic en ADD A NEW MESSAGE GROUP y establece como condición: Si @laughs está presente…

En este caso yo decidí enviar gifts, así que hice clic en ENVIAR MENSAJE y en Formato de imagen.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Puedes, por supuesto, enviar imágenes y GIFs.

Aquí están las URL de mis GIFs si quieres usarlos: 1, 2 y 3 .

Luego, repetimos el proceso para nuestro último intento:


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Como puedes ver, el formato de mensajes enriquecidos es compatible.

Paso 6/9 completado!

PASO 7 / 9 — Chatea con tu bot

Último paso antes de lanzar tu bot a tu audiencia: chatea con él en una situación real. Esto te mostrará exactamente cómo
es el bot y cómo reacciona como si estuvieras en la piel de cualquier otro usuario, y podrás volver a verificar cualquier error
en el flujo de la conversación (respuestas incorrectas, error de recuperación, comportamiento extraño…) y corregirlo antes
de que se haga público. De hecho, te recomiendo que converses con tu robot tan a menudo como puedas durante su
construcción, ya que será más fácil identificar de dónde viene un error final.

Haz clic en el botón azul de abajo a la derecha “CHAT WITH YOUR BOT” y comienza a enviar algunos mensajes. Utiliza
“Clear” para actualizar el chat.

Chatea con tu bot: la mejor manera de probarlo.

Paso 7/9 completado!


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
PASO 8 / 9 — Conecta tu bot a una plataforma de mensajería

¿Tu bot está listo? Es hora de implementarlo en una plataforma de mensajería pública.

Ves a la pestaña Conect, elige la plataforma de mensajería que prefieras y sigue las instrucciones paso a paso.

No tendrás que hacer nada más que la configuración inicial para implementar tu bot en un nuevo canal. Por esta razón, ¡no
debes dudar en configurar los múltiplos para ampliar tu audiencia!

Ten en cuenta que algunas plataformas no son tan poderosas como otras. Por ejemplo, Telegram es muy fácil de configurar
pero no admite imágenes GIF, por lo que debes adaptar tu bot como corresponda.

Si no sabes por dónde empezar, Facebook Messenger es una plataforma muy poderosa con una gran audiencia.

Con Bot Connector, agregar un nuevo canal se puede llevar a cabo en cuestión de minutos, no requiere mantenimiento.

Ahora, ves a Messenger, Kik o cualquier otro canal que elijas y busca tu bot, ¡Sí, está ahí, está listo para usarse!

Paso 8/9 completado!

PASO 9 / 9 — Monitorea y entrena a tu bot

La pestaña Monitor te ayudará a agudizar tu “inteligencia bot” con el tiempo.

Reúne todos los mensajes que recibe tu robot y muestra la intención que coincidió.

Mantén un ojo en esta pestaña y entrena a tu bot regularmente:

 Archiva el mensaje si coincide con la intención correcta.

 Asigne el intento correcto si un intento inválido fue emparejado o no se le asignó absolutamente nada.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Resumen de la pestaña del monitor

Aquí, el último mensaje enviado a mi bot no coincide con ninguna intención. Si los mensajes similares siguen llegando con
el tiempo, crearé una nueva intención para este caso.

Paso 9/9 completado!

¿Qué tendrás que construir a continuación?

Ya has hecho un gran trabajo por hoy. Ahora es el momento de tomar un descanso, divertirte viendo a las personas hablar
con tu bot y pulir tu identidad.

Cuando estés listo para continuar, puedes intentar lo siguiente:

 Aprender a usar entidades para extraer información clave de los mensajes.

 Conectar tu bot a tu código para interactuar con APIs externas.

 Haz tu bot multilingüe para ampliar tu audiencia.

La próxima vez que hagas un bot, ¡no olvides incluir tu joke skill! Una y otra vez, tus bots sabrán más y más. Sé iterativo y
reutiliza lo que ya has hecho.

Aquí hay algunos recursos para ayudarte a ir más lejos:

 22 reglas que nunca deberías romper cuando construyes un bot.

 El arte del diseño de bot.


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

CONSTRUYE UN POKÉMON BOT CON SAP CONVERSATIONAL AI NODEJS


Aprende cómo construir tu Pokémon Bot que te ayude a responder preguntas sobre cualquier Pokémon usando NodeJS.

¡Hazte con todos!

SAP Conversational AI
Apr 2 · 9 min read

Pokémon es uno de los primeros juegos a los que recuerdo haber jugado. Tenía todo lo necesario para triunfar: una historia
que enganchaba, unas mecánicas profundas pero sencillas y un diseño de personajes increíble.

Sin embargo, con el volumen de Pokémon que hay actualmente disponibles, es muy complicado seguir la pista a todos los
Pokémon que puedes encontrarte. En los últimos juegos, Sol y Luna, ¡hay más de 807 Pokémon por capturar! Es por esto
que quiero construir un bot que me ayude a seguirles la pista: Quiero un compañero que me ayude a recordar de qué tipo
es Gyarados o cómo hacer que mi Stufful evolucione.

Además, el objetivo de este tutorial es enseñarte cómo usar Gazettes para mejorar detección de entidad del bot y cómo
interactuar con un Node.JS API que recupera información desde una base de datos para crear una experiencia rica e
interactiva para los usuarios.

Este tutorial asume que tienes un conocimiento básico sobre la plataforma de SAP Conversational AI. Si eres un
principiante, te recomiendo que empieces leyendo este tutorial y creando tu propio chatbot gratis.

Pre-requisitos para el Pokémon Bot

Para seguir este tutorial necesitas:


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
 Una cuenta en SAP Conversational AI. ¡Es gratis!

 Una versión alta (6.0 o mayor) de Node.JS instalada en tu ordenador.

 Un indicador de línea de comandos similar a Unix. Si estás usando un Windows y no puedes instalar un Bash para
Windows tendrás que adaptar algunos pasos a tus herramientas. Estaremos encantados de ayudarte si necesitas algo.

Nota: Si quisieras omitir la creación del bot en SAP Conversational AI e ir directamente al lado del servidor, puedes hacerlo
desde aquí.

Vamos a empezar

Crea un nuevo bot en la plataforma, elige Greetings and Small Talk como cualidades predefinidas:

Entrenando el motor NLP del bot

Nos centraremos en entrenar al bot en 2 intents:


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
 Dar información general sobre los Pokémon.

 Aprender sobre sus evoluciones.

Crea un nuevo intent llamado pokemon-informations, y añade las siguientes frases para empezar con:

Puedes añadir muchas más frases, contra más ejemplos añadas, tu bot se hará más fuerte.

Necesitas etiquetar el nombre del Pokémon con la entidad POKEMON:


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Esto puede ser muy, muy tedioso si tenemos que enseñarle el algoritmo con cada uno de los nombres de cada Pokémon.

Por ello, usaremos la herramienta llamada Gazattes.

Creando tu primera Gazette

Las Gazettes están hechas para mejorar la detección de entidades cuando puedes proporcionar una lista de sinónimos para
cada entidad. Una Gazette mantiene una lista de término que se llama Synonyms, y el algoritmo la usa para conseguir que
tu bot sea más listo.

Puedes crear una Gazette para una entidad en el botón de Train:

Hay dos ajustes para una Gazette; puede ser abierta o cerrada:

 Si es abierta (la configuración por defento), simplemente mejorará la entidad de detección. Para hacerlo, va de la
mano con los ejemplos de entidades que etiquetaste en tus expresiones de intents. Piensa en ello como un
entrenamiento extra.

 Si es cerrado, el synonyms en la Gazette representa cada uno de los valores que la entidad puede tener. Olvídate del
contexto y de todas esas características tan sofisticadas que los motores de PLN utilizan para extraer entidades, si una
palabra se guarda en una Gazette cerrada, se etiquetará, si no lo está, no.

La única excepción es que la Gazette cerrada utiliza la coincidencia aproximada para permitir pequeños errores y errores
tipográficos, pero puedes ajustar su rigor (100 significa que se requiere una coincidencia perfecta, 1 significa que todo se
etiquetará con la entidad).

La buena noticia es que puedes subir archivos cvs conteniendo synonyms de tu Gazette. Yo cree uno que contenía cada
uno de los nombres de los Pokémonque existen: Puedes descargarlos aquí.

Pincha en UPLOAD A .CSV FILEen tu página de Gazette. Puede tardar en descargarse.

Ahora que el bot ha aprendido cada nombre de los Pokémon, es perfecto para una Gazette cerrada. Ve a las opciones y
activa el botón para cerrarla.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Pero ¿por qué necesitaría entrenar mi bot una vez que la Gazette está creada?

Bueno, entidades e intents, incluso vinculados, son conceptos distintos. Sigues necesitando entrenar tu bot para detectar
correctamente los intents incluso cuando las entidades están bien entrenadas.

Añadir el intent final

Termina el entrenamiento de tu bot añadiendo el último intent,pokemon-evolutions.

Añade las siguientes frases:

Deberías notar que la entidad POKEMONes etiquetada en la creación de tus expresiones, ¡Sin ninguna acción!

Creando las skills


https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Una gran parte de la lógica de este bot ocurre en el NodeJS API, por lo que sus habilidades son sencillas.

Habilidades:

 Se activan si uno de los intents que creaste está presentes.

 Requieren una instancia desde la entidad POKEMONpara estar presente.

 Manda una solicitud al NodeJS API con la información recolectada.

Junto a las 2 habilidades que ya tienes en la pestaña Build, crea una nueva habilidad, llamada pokemon-informations.

Esta se activará cuando el intent pokemon-informationsesté presente:

Comprueba que la entidad POKEMONestá configurada.

Configura un mensaje si falta #pokemon, algo como “¿Sobre qué Pokemon quieres saber más?

Manda una solicitud a la API una vez que Pokémon esté registrado, y después limpia la memoria:
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb

Crea otra habilidad llamada pokemon-evolutionsy estructúrala de la misma forma, pero que esté desencadenado si el
intent pokemon-evolutionsestá presente, y ten una URL webhook de /pokemon-evolutions.

Construyendo la API

El núcleo de la API no es más que una aplicación Express.js. Tendrá dos rutas principales: una para información general y
otra para preguntas sobre las evoluciones de los Pokémon. También manejará las solicitudes de POST on /errors, que el bot
builder utilizará para avisarte cuando algo vaya mal.

Configuración del proyecto

Comienza creando un espacio de trabajo e instala las dependencias:


mkdir ~/pokebot && cd ~/pokebot
npm init # you can accept all the default settings
npm install --save express body-parser
npm touch index.js

En lugar de usar una base de datos remota, crea un archivo JSON que contenga todo el conocimiento de los Pokémon
necesario para tu bot. Dado que NodeJS puede requerir archivos JSON o JavaScriot, será muy sencillo de usar, y es lo
suficientemente pequeño como para cargarlo en la RAM sin tener que preocuparse de nada (son “solo” cerca de 500kb).

Puedes descargarlo usando este enlace y moviéndolo a la carpeta que acabas de crear o también usar el siguiente
comando de curl:
curl -O https://cdn.cai.tools.sap/blog/pokebot/pokedex.json

Este archivo es una matriz de objetos estructurados como tales:


[
{
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
"id": 1,
"height": "7",
"weight": "69",
"base_experience": "64",
"description": "A strange seed was planted on its back at birth. The plant sprouts and grows with this POKéMON.",
"types": [
"grass",
"poison"
],
"name": "Bulbasaur",
"image": "https://cdn.cai.tools.sap/blog/pokebot/1.png", "evolutions": [
{
"id": 1,
"name": "Bulbasaur"
},
{
"id": 2,
"from": 1,
"trigger": "leveling",
"trigger_lvl": 16,
"name": "Ivysaur"
},
{
"id": 3,
"from": 2,
"trigger": "leveling",
"trigger_lvl": 32,
"name": "Venusaur"
}
]
},
...
]

No todos los datos incluidos se utilizarán en este tutorial, así que siéntete libre de agregar funciones a tu bot, o incluso de
mejorar el JSON si es necesario. ¡Tus solicitudes serán bienvenidas!

Creando las rutas

Ahora abre el archivo index.js con tu editor favorito. Empezaremos cargando las dependencias e iniciando la aplicación
exprés.
const express = require('express');
const bodyParser = require('body-parser');
const db = require('./pokedex.json');const app = express();
app.use(bodyParser.json());
// Load routes
app.post('/pokemon-informations', getPokemonInformations); app.post('/pokemon-evolutions', getPokemonEvolutions);
app.post('/errors', function (req, res) {
console.error(req.body);
res.sendStatus(200);
});// Start server
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`App is listening on port ${PORT}`));

Ambas rutas necesitarán información sobre un Pokémon desde el archivo JSON. Escribamos una función para que haga
esto:
function findPokemonByName(name) {
const data = db.find(p => p.name.toLowerCase() === name.toLowerCase());
if (!data) {
return null;
}
return data;
};

El controlador para la ruta /pokemon-informationsextrae el nombre del Pokémon de la memoria, tal y como está
configurado en la skill correspondiente, obteniendo su información de JSON.

Después vuelve a una lista de mensajes donde muestra los datos de una forma más amigable y sencilla.

Existe un fallback en caso de que la entidad Pokémon extraída de SAP Conversational AI no se encuentre en la base de
datos.
function getPokemonInformations(req, res) {
const pokemon = req.body.conversation.memory.pokemon;
const pokemonInfos = findPokemonByName(pokemon.value);if (!pokemonInfos) {
res.json({
replies: [
{ type: 'text', content: `I don't know a Pokémon called ${pokemon} :(` },
],
});
} else {
res.json({
replies: [
{ type: 'text', content: `${pokemonInfos.name} infos` },
{ type: 'text', content: `Type(s): ${pokemonInfos.types.join(' and ')}` },
{ type: 'text', content: pokemonInfos.description },
{ type: 'picture', content: pokemonInfos.image },
],
});
}
}

El controlador para la ruta /pokemon-informationses similar, solo que devuelve diferentes datos.

Dado que el formato del mensaje muestra los requisitos de evolución de una manera muy densa, es mejor moverlo a su
propia función,formatEvolutionString.

Además del fallback en caso de que no pueda encontrar el Pokémon, este controlador también necesita una alternativa si
el Pokémon no tiene ninguna evolución.
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
function getPokemonEvolutions(req, res) {
const pokemon = req.body.conversation.memory.pokemon;
const pokemonInfos = findPokemonByName(pokemon.value);if (!pokemonInfos) {
res.json({
replies: [
{ type: 'text', content: `I don't know a Pokémon called ${pokemon} :(` },
],
});
} else if (pokemonInfos.evolutions.length === 1) {
res.json({
replies: [{ type: 'text', content: `${pokemonInfos.name} has no evolutions.` }],
});
} else {
res.json({
replies: [
{ type: 'text', content: `${pokemonInfos.name} family` },
{
type: 'text',
content: pokemonInfos.evolutions.map(formatEvolutionString).join('\n'), },
{
type: 'card',
content: {
title: 'See more about them',
buttons: pokemonInfos.evolutions
.filter(p => p.id !== pokemonInfos.id) // Remove initial pokemon from list
.map(p => ({
type: 'postback',
title: p.name,
value: `Tell me more about ${p.name}`,
})),
},
},
],
});
}
}

Ahora puedes lanzar la API:


npm start
# You can type `PORT=XXX npm start` if you don't want to use the default port (5000)

El programa debería lanzar este mensaje al empezar:


App is listening on port 5000

Si este no es tu caso, intenta leer el código de nuevo para verificar si hay algún error, ¡también puede pasar por
nuestra Slack se te atascas!

Publicando tu API
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Dado que SAP Conversational AI debe poder acceder de forma pública a tu API, debes alojarla en un servidor público o usar
Ngrok.

Ngrok te permite exponer un puerto de tu ordenador al mundo exterior. Descarga Ngrok y ejecútalo usando el siguiente
comando:
ngrok http 5000

Ahora puedes pegar la URL de redirección de http en la base del bot en tu URL, en su configuración en la plataforma de SAP
Conversational AI.

¡Tú bot ahora está vivo! Puedes conectarte a varios canales de mensajería siguiendo los pasos en la pestaña Conectar.

Vamos más lejos con Pokebot

Ahora ya tienes un bot de Pokémon en marcha. Esto ya está bien, pero con lo que has aprendido en este tutorial puedes
hacer mucho más. Aquí hay algunas consultas que tu bot podría procesar si quieres ir más lejos:

 Preguntas sobre los movimientos y cuando cada Pokémon los aprende.

 Dónde encontrar cada Pokémon en los juegos.

 Coincidencia de tipos: ¿cuál es el modificador de un tipo dado frente a otro? ¡Mega-bonus si puedes manejar tipos
dobles!

 Adapta las respuestas en función de la versión de Pokémon (¡Buena suerte con esta!)
https://planetachatbot.com/primer-bot-con-sap-conversational-ai-e2aeec25e9fb
Construir un Pokémon bot exhaustivo, todo en uno y que todo lo sepa es una misión para una vida. Solo un verdadero
Pokefan podría lograrlo. ¿Serías tú el único? Y recuerda que puedes ponerte en contacto con nosotros si necesitas ayuda, a
través de la sección de comentarios que se muestra a continuación o por medio de Slack.

Originally published on SAP Conversational AI blog.

Вам также может понравиться