For english instructions click English
Presentación APIS de Watson
Esta aplicación demuestra una función en IBM Cloud (basado en Apache OpenWhisk) que conecta Facebook Messenger con Watson Assistant, Visual Recognition y Watson Discovery guardando el historial de la conversación en una base de datos Cloudant.
Una función, o acción, es invocada a través de un web endpoint provisto por IBM Cloud Functions y este es llamado por Facebook Messenger a través de su Webhook. El mensaje es enviado a Watson Assistant para interactuar con un virtual agent, si el mensaje es una imagen es enviado a Watson Visual Recognition.
Después de terminar este pattern usted entenderá como:
- Usar Watson Assistant
- Usar Watson Visual Recognition
- Crear y Desplegar Cloud Functions
- El usuario interactúa con Facebook Messenger
- Facebook Messenger envía al payload a IBM Cloud Functions
- La función (o acción) busca por un historial de chat en la base de datos Cloudant.
- La función envia el mensaje de texto a Watson Assistant.
- Si es necesario la función enviaría una imagen adjunta a Watson Visual Recognition.
- Si es necesario la función buscará en Watson Discovery la respuesta para el usuario.
- La función guarda el historial del chat en la base de datos Cloudant.
- La función envía la respuesta a Facebook Messenger.
- El usuario obtiene la respuesta para su interacción.
- Cloudant: Una base de datos completamente manejada diseñada para aplicaciones web y mobile modernas que usan documentos como JSON.
- Watson Visual Recognition: Visual Recognition usa algoritmos de deep learning para identificar escenas, objetos y rostros en una imagen. Puede crear y entrenar clasificadores customizados para identificar patrones para tus necesidades.
- Watson Assistant: Watson Assistant service combina machine learning, natural language understanding e integra herramientas de dialogo para crear flujos conversacionales entre los usuarios y las aplicaciones.
- IBM Cloud Functions (basado en Apache OpenWhisk): Ejecuta código bajo demanda en un ambiente serverless y altamente escalable.
- Watson: Watson en IBM Cloud permite integrar herramientas de AI en tu aplicación y guardar, entrenar y manejar tu data en una nube segura.
- Serverless: Una plataforma basada en eventos que permite ejecutar código como respuesta a un evento.
-
IBM Cloud Functions CLI para crear cloud functions desde la terminal. Haz una prueba de una acción
ibmcloud wsk action invoke /whisk.system/utils/echo -p message hello --result
para que tu~/.wskprops
apunte a la cuenta correcta. -
Whisk Deploy (wskdeploy) es una herramienta que ayuda a describir y desplegar cualquier componente de OpenWhisk usando un archivo Manifest escrito en YAML. Lo usuarás si deseas hacer el despliegue de todos los recursos de Cloud Functions en una sola línea de comandos. Puedes descargar en releases page y seleccionar el archivo correcto para tu sistema operativo.
Aprende un poco mas acerca de los servicios de inteligencia artificial de Watson
Clona el repositorio fb-watson
localmente. En una terminal, ejecuta:
$ git clone https://github.com/libardolara/fb-watson
Crea un servicio de Watson Assistant.
- Copia el API Key en las Credencials the Credentials y pégala en el archivo
params.json
en el valorwa_api_key
Si el servicio es antiguo y aun usa Basic Authentication, copia el username y password en las Credenciales y pégalos en el archivo
params.json
en los valoreswa_username
ywa_password
- Haz click en el botón Lanzar Herramienta en la página principal del servicio.
- Crea un nuevo Skill en el lenguaje preferido o importa el ejemplo en español sample_workspace.json
Para instrucciones detalladas en como desarrollar un asistente virtual sigue El Instructivo para desarrollar Asistentes Virtuales
- Después de importar y/o desarrollar el asistente, abre los detalles View API Details del Skill, copia el Workspace ID y pégala en el archivo
params.json
en el valorwa_workspace_id
Crea un servicio de Watson Visual Recognition.
- Copia el API Key en las Credenciales y pégala en el archivo
params.json
en el valorvr_api_key
Sigue las instrucciones detalladas de como entrenar un modelo de clasificación en El Instructivo para Custom Models
Crea el servicio Cloudant escogiendo Use both legacy credentials and IAM
para la opción Available authentication method.
- Crea las credenciales para esta instancia y copia la url en el archivo
params.json
en el valorcloudant_url
- Crea un Fan Page en Facebook como un Negocio o Local
- Usa un nombre único y fácil de buscar para tu Fan Page
- Si aun no la tienes, crea una cuenta en Facebook Developers
- Agrega una aplicación
- Agrega a la aplicación el producto Messenger haciendo click en Configurar
- Una vez configurada ve a la sección Generación de token(o identificador) y selecciona el Fan Page (o Pagina) creada.
- Copia el Token de acceso a la página que Facebook te entrega en el archivo
params.json
en el valorfb_page_access_token
- En el archivo
params.json
en el valorfb_verification_token
define una contraseña propia para tu aplicación.
Escoge un método de despliegue
Haz click en el siguinte botón y sigue las instrucciones para desplegar usando el toolchain.
También puedes desplegar directamente desde el CLI siguiendo los pasos de la siguiente sección.
Este método despliega a Cloud Functions con un comando usando el archivo manifest que especifica el ambiente de despliegue.
Asegúrate tener los parámetros correctos en el archivo params.json
. Despliega a Cloud Functions usando wskdeploy
. Esto usa el archivo manifest.yaml
en la raíz del directorio.
$ wskdeploy
Si quieres deshacer el despliegue puedes usar
wskdeploy undeploy
- Copia el Endpoint público de la función desplegada en IBM Cloud
- En el sitio de la aplicación de Facebook Messenger ve a la sección Webhooks
- Haz click en Configurar Webhook
- En el panel desplegable, pega el Endpoint de tu función. Modifica la extensión de la url de
.json
a.text
- En el campo Verificar Token ingresa la contraseña que definiste en el valor de
fb_verification_token
del archivoparams.json
- En los Campos de Suscripción selecciona la opción messages
- Crea el Webhook.
- En Select a page to subscribe your webhook to the page events suscribe la página que se creó.
Buscar en la sección de mensajes la página e iniciar una conversación (desde la cuenta de la persona con la que se creó la página).
Facebook Developer crea todas las aplicaciones por defecto como una aplicación de pruebas, si deseas publicar la aplicación para que cualquier persona pueda chatear con tu asistente virtual debes seguir los procesos de revisión.