Crea un asistente virtual que se conecta a una base de datos estructurada y hace consultas en ella!
• Tener instalado Node.js.
• Tener una cuenta de IBM Cloud.
• Tener una cuenta en Github.
• Instalar CLI de IBM Cloud
• Instalar CLI de Github
• Clonar este Repositorio.
• Instalar el plugin de Cloud Functions
ibmcloud plugin install cloud-functions
- Acceder al portal de IBM Academic Initiative y seleccionar la opción "Register now" si aun no tienes cuenta.
- Realizar el registro correspondiente utilizando la cuenta de correo académica y confirma tu cuenta.
- Despues de confirmar tu cuenta, y con la sesion iniciada en IBM Academic Initiative, en la parte de "Most Popular Topics covered", encontraremos IBM Cloud y damos click en "Learn more".
- Bajamos de la pagina hasta encontrar "Software". Le damos click, nos dara un apartado que se llama "Request Feature Code".
- Nos dara nuestro codigo. Lo copiamos y lo llevamos a IBM Cloud.
- En la parte superior derecha, buscaremos la parte de "MANAGE"/"GESTIONAR", nos desplegara una lista y seleccionaremos "Account"/"Cuenta".
- De lado izquierdo, tendremos una opción "Account settings"/"Configuracion de cuenta".
- Bajamos un poco hasta encontrar "Subscription and feature codes"/"Codigos de suscripción y carateristicas".
- Da click en "Apply code"/"Aplicar codigo".
- Ingresamos el codigo y click en "Apply"/"Aplicar".
- Abrimos la terminal, clonamos este repositorio y entramos a la carpeta clonada utilizando el siguiente comando:
git clone https://github.com/IBM-Cloud/slack-chatbot-database-watson
cd slack-chatbot-database-watson
- Iniciamos sesión en IBM Cloud con el siguiente comando (Utiliza el correo y contraseña de tu cuenta) :
ibmcloud login
- Hacemos un target a un resource group utilizando el siguiente comando:
ibmcloud target -g RESOURCE_GROUP
donde RESOURCE_GROUP es el grupo a apuntar. Si quieres saber qué grupos están disponibles puedes utilizar el siguiente comando:
ibmcloud resource groups
Para efectos prácticos de este tutorial, apuntaremos a un resource group default:
ibmcloud target -g default
- Creamos un servicio DB2 en una instancia de cloud y la nombramos "eventDB"
ibmcloud resource service-instance-create eventDB dashdb-for-transactions free us-south
- Para acceder al servicio de base de datos de Cloud Functions más adelante, necesitamos autorización. Por lo tanto, crearemos credenciales de servicio y las etiquetaremos con el nombre "slackbotkey":
ibmcloud resource service-key-create slackbotkey Manager --instance-name eventDB
- Registraremos acciones para Cloud Functions y a enlazaremos credenciales de servicio a dichas acciones. La acción dispatch se habilita como una acción web y se establece una palabra secreta para evitar invocaciones no autorizadas. Elejimos una palabra secreta y la utilizaremos como parámetro; sustituimos YOURSECRET con la palabra secreta en el comando que se muestra abajo.
En este comando se invoca una de las acciones para crear una tabla en Db2 on Cloud mediante el uso de una acción de Cloud Functions. Para realizar el registro y la configuración, ejecute la línea siguiente; esto ejecutará el script setup.sh (Se encuentra en la carpeta clonada del repositorio). Si el sistema no da soporte a comandos de shell, copie cada línea fuera del archivo setup.sh y ejecútela individualmente en la terminal.
sh setup.sh YOURSECRET "dashdb-for-transactions"
**Nota: de forma predeterminada, el script también inserta unas pocas filas de datos de ejemplo. Para inhabilitarlo, comente la siguiente línea en el script anterior:
ibmcloud fn action invoke slackdemo/db2Setup -p mode "[\"sampledata\"]" -r
- Obtenemos el URI correspondiente a la acción dispatch desplegada.
ibmcloud fn action get slackdemo/dispatch --url
- Entrar al portal de IBM Cloud
- Ir al catalogo
- Seleccionar la opción AI del menú lateral y dar clic en el servicio “WatsonAssistant”.
- Le damos un nombre al servicio y lo creamos
- Del menú izquierdo, seleccionamos el apartado Manage y damos clic en "Launch Watson Assistant" para empezar con nuestro servicio.
- Una vez que hayamos lanzado la herramienta damos clic en el apartado skills del lado izquierdo y damos clic en "Create Skill".
- Damos clic en "Dialog Skill" y damos clic en next.
- Damos clic en "Import Skill" y damos clic en "Choose JSON File", cargamos el skill.json que está en este repositorio y damos clic en "Import".
- En la parte izquierda, damos clic en "Dialog" para ver los nodos del diálogo. Podemos ampliarlos para ver una estructura como la que se muestra a continuación.
El diálogo tiene nodos para manejar las preguntas de ayuda y de agradecimiento. El nodo "nuevo evento" recopila la entrada necesaria y luego invoca el webhook para insertar un nuevo registro de sucesos en Db2.
El nodo "buscar eventos" clarifica si los sucesos se buscan por su identificador o por fecha. Realizan la búsqueda real y la recopilación de los datos necesarios en los nodos hijo query events by shortname y query event by dates.
- En la parte izquierda de la interfaz, pulse Opciones y luego Webhooks. Sustituye el valor de URL por el que obtuvimos en la sección anterior. Añada .json al URL para indicar que se deben devolver datos JSON. No olvides sustituir el valor HEADER VALUE por el valor "YOURSECRET" que establecimos anteriormente.
- Hacemos clic en el botón "Try it" en la parte superior derecha para ver al chatbot en acción. Podemos escribir cosas como "Quiero crear un nuevo evento" para que podamos registrar un nuevo evento, o podemos escribir algo como "mostrar información de eventos" para que podamos consultar los eventos guardados.
- Damos clic en "Assistant" en el área de navegación superior izquierda y, a continuación, damos clic en "Create assistant".
- Le damos un nombre y creamos el asistente. Una vez creado nos redirige a otra landing page, damos clic en "Add dialog skill"
Añadimos el skill que acabamos de importar.
-
Damos clic en los 3 puntos que se encuentra en la esquina superior derecha y damos clic en el apartado "settings"
-
Damos clic en el apartado "API DETAILS" y copiamos los valores "Assistant URL" Y "API KEY"
**Nota: para esta parte del chatbot, necesitas tener una cuenta de wordpress creada con un dominio arriba, si quieres utilizar un dominio de prueba, puedes utilizar el proporcionado por el sitio de cognitiveclass, ahí podrás desplegar un assistant desde cero, ingresa a esta LIGA **e inscribete al curso (Modulo 5, laboratorio 8).
Para enlazar este asistente a wordpress, buscamos el plugin de watson assistant desde el apartado "Plugins" y damos clic en "install now"
Una vez instalado podemos visualizar el plugin desde el apartado de "settings", en el apartado "Watson", por ahora, en ese apartado damos clic en el apartado "Main Setup", ahí vamos a colocar las credenciales del chatbot qué obtuvimos previamente. Colocamos en el apartado "Username" la palabra "apikey", en el apartado "Assistant URL" el url que copiamos previamente y en "API KEY" la clave de API que copiamos previamente. Finalmente damos clic en "Save changes"
Si se ejecuta el script de limpieza en el directorio principal, se suprime la tabla de sucesos de Db2 on Cloud y se eliminan las acciones de Cloud Functions. Esto puede resultar útil cuando empieza a modificar o a ampliar el código. El script de limpieza no modifica el espacio de trabajo de Watson Assistant ni el conocimiento.
sh cleanup.sh