All Projects → libardolara → fb-watson

libardolara / fb-watson

Licence: other
Hands-on developing an application using IBM Watson services with Facebook Messenger integrated through serverless functions

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to fb-watson

watson-waste-sorter
Create an iOS phone application that sorts waste into three categories (landfill, recycling, compost) using a Watson Visual Recognition custom classifier
Stars: ✭ 45 (+136.84%)
Mutual labels:  watson-visual-recognition, ibm-cloud
Watson-Unity-ARKit
# WARNING: This repository is no longer maintained ⚠️ This repository will not be updated. The repository will be kept available in read-only mode.
Stars: ✭ 24 (+26.32%)
Mutual labels:  ibm-cloud, watson-assistant
watson-vehicle-damage-analyzer
A server and mobile app to send pictures of vehicle damage to IBM Watson Visual Recognition for classification
Stars: ✭ 62 (+226.32%)
Mutual labels:  watson-visual-recognition, ibm-cloud
watson-discovery-sdu-with-assistant
Build a Node.js chatbot that uses Watson services and webhooks to query an owner's manual
Stars: ✭ 20 (+5.26%)
Mutual labels:  ibm-cloud, watson-assistant
simple-search-service
A faceted search engine and content API.
Stars: ✭ 38 (+100%)
Mutual labels:  ibm-cloud
nodejs-express-app
Start building your next Node.js Express app on IBM Cloud.
Stars: ✭ 42 (+121.05%)
Mutual labels:  ibm-cloud
predict-fraud-using-auto-ai
Use AutoAI to detect fraud
Stars: ✭ 27 (+42.11%)
Mutual labels:  ibm-cloud
argon
Campaign Manager 360 and Display & Video 360 Reports to BigQuery connector
Stars: ✭ 31 (+63.16%)
Mutual labels:  cloud-functions
watson-speech-translator
Use Watson Speech to Text, Language Translator, and Text to Speech in a web app with React components
Stars: ✭ 66 (+247.37%)
Mutual labels:  ibm-cloud
RomanceBreaker
Python script which sends a custom morning message to your significant other every morning at a given time range on Facebook Messenger, WhatsApp, Telegram or SMS, for lazy people
Stars: ✭ 36 (+89.47%)
Mutual labels:  facebook-messenger
openwhisk-slackapp
A serverless Slack app built with Slack Events API and IBM Cloud Functions
Stars: ✭ 24 (+26.32%)
Mutual labels:  ibm-cloud
serverless-ktp-ocr
Serverless Indonesian Identity E-KTP OCR with Google Cloud Platform (GCP) - Cloud Functions, Cloud Storage, and Cloud PubSub
Stars: ✭ 54 (+184.21%)
Mutual labels:  cloud-functions
gdpr-fingerprint-pii
Use Watson Natural Language Understanding and Watson Knowledge Studio to fingerprint personal data from unstructured documents
Stars: ✭ 49 (+157.89%)
Mutual labels:  ibm-cloud
monitoring ui
WARNING: This repository is no longer maintained ⚠️ This repository will not be updated. The repository will be kept available in read-only mode. Use React.js, Watson IoT Platform, and the Hyperledger Fabric Node SDK to interact with an IBM Blockchain service
Stars: ✭ 29 (+52.63%)
Mutual labels:  ibm-cloud
facebook-send-api-emulator
Facebook Messenger Emulator & Facebook Send API Emulator functionality allowing you to test web hooks on developer's machine.
Stars: ✭ 24 (+26.32%)
Mutual labels:  facebook-messenger
alexa-skill-watson-assistant
Alexa Skill using IBM Watson Assistant and IBM Cloud Functions
Stars: ✭ 72 (+278.95%)
Mutual labels:  watson-assistant
barber-shop
Vue + Firebase (cloud functions, auth, firestore, hosting) reservations system
Stars: ✭ 47 (+147.37%)
Mutual labels:  cloud-functions
universal-translator
Demo app using Firebase and Google Cloud products to implement a "universal translator"
Stars: ✭ 37 (+94.74%)
Mutual labels:  cloud-functions
speech-to-text-code-pattern
React app using the Watson Speech to Text service to transform voice audio into written text.
Stars: ✭ 37 (+94.74%)
Mutual labels:  ibm-cloud
openwhisk-workshops
IBM Cloud Functions (Apache OpenWhisk) workshops
Stars: ✭ 16 (-15.79%)
Mutual labels:  ibm-cloud

Conector serverless sencillo para IBM Watson y Facebook Messenger

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

Flujo

  1. El usuario interactúa con Facebook Messenger
  2. Facebook Messenger envía al payload a IBM Cloud Functions
  3. La función (o acción) busca por un historial de chat en la base de datos Cloudant.
  4. La función envia el mensaje de texto a Watson Assistant.
  5. Si es necesario la función enviaría una imagen adjunta a Watson Visual Recognition.
  6. Si es necesario la función buscará en Watson Discovery la respuesta para el usuario.
  7. La función guarda el historial del chat en la base de datos Cloudant.
  8. La función envía la respuesta a Facebook Messenger.
  9. El usuario obtiene la respuesta para su interacción.

Componentes Incluidos

  • 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.

Tecnologías Importantes

  • 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.

Prerrequisitos

  • 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.

Ver los videos

Aprende un poco mas acerca de los servicios de inteligencia artificial de Watson

Paso a Paso

1. Clonar el repo

Clona el repositorio fb-watson localmente. En una terminal, ejecuta:

$ git clone https://github.com/libardolara/fb-watson

2. Crear el servicio Watson Assistant

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 valor wa_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 valores wa_username y wa_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 valor wa_workspace_id

3. Crear el servicio Watson Visual Recognition

Crea un servicio de Watson Visual Recognition.

  • Copia el API Key en las Credenciales y pégala en el archivo params.json en el valor vr_api_key

Sigue las instrucciones detalladas de como entrenar un modelo de clasificación en El Instructivo para Custom Models

4. Crear el servicio Cloudant Database

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 valor cloudant_url

5. Configurar Facebook Messenger

  • 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 valor fb_page_access_token
  • En el archivo params.json en el valor fb_verification_token define una contraseña propia para tu aplicación.

6. Desplegar a Cloud Functions

Escoge un método de despliegue

Desplegar a través de DevOps Toolchain

Haz click en el siguinte botón Deploy to IBM Cloud 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.

Desplegar usando wskdeploy

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

7. Configurar el Webhook de Facebook Messenger

  • 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 archivo params.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ó.

8. Prueba del Asistente Virtual

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].