Name: watson-banking-chatbot
Owner: International Business Machines
Description: A chatbot for banking that uses the Watson Assistant, Discovery, Natural Language Understanding and Tone Analyzer services.
Created: 2017-05-07 18:28:08.0
Updated: 2018-05-24 09:49:34.0
Pushed: 2018-05-24 09:49:32.0
Homepage: https://developer.ibm.com/code/patterns/create-cognitive-banking-chatbot/
Size: 13420
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Read this in other languages: ??.
Watson Conversation is now Watson Assistant. Although some images in this code pattern may show the service as Watson Conversation, the steps and processes will still work.
In this developer journey, we will create a chatbot using Node.js and Watson Assistant. The Assistant flow will be enhanced by using Natural Language Understanding to identify entities and using Tone Analyzer to detect customer emotions. For FAQs, a call to the Discovery service will use passage retrieval to pull answers from a collection of documents.
When the reader has completed this journey, they will understand how to:
Want to take your Watson app to the next level? Looking to leverage Watson Brand assets? Join the With Watson program which provides exclusive brand, marketing, and tech resources to amplify and accelerate your Watson embedded commercial solution.
Use the Deploy to IBM Cloud
button OR create the services and run locally.
Press the above Deploy to IBM Cloud
button and then click on Deploy
.
In Toolchains, click on Delivery Pipeline
to watch while the app is deployed. Once deployed, the app can be viewed by clicking ``View app.
To see the app and services created and configured for this journey, use the Bluemix dashboard. The app is named watson-banking-chatbot
with a unique suffix. The following services are created and easily identified by the wbc-
prefix:
NOTE: These steps are only needed when running locally instead of using the
Deploy to IBM Cloud
button.
Clone the watson-banking-chatbot
locally. In a terminal, run:
t clone https://github.com/IBM/watson-banking-chatbot
We?ll be using the file data/conversation/workspaces/banking.json
and the folder
data/conversation/workspaces/
Create the following services:
Launch the Watson Assistant tool. Use the import icon button on the right
Find the local version of data/conversation/workspaces/banking.json
and select
Import. Find the Workspace ID by clicking on the context menu of the new
workspace and select View details. Save this ID for later.
Optionally, to view the conversation dialog select the workspace and choose the Dialog tab, here's a snippet of the dialog:
Launch the Watson Discovery tool. Create a new data collection and give the data collection a unique name.
Save the environment_id and collection_id for your
.env
file in the next step.
Under Add data to this collection
use Drag and drop your documents here or browse from computer
to seed the content with the five documents in data/discovery/docs
.
The credentials for IBM Cloud services (Assistant, Discovery, Tone Analyzer and
Natural Language Understanding), can be found in the Services
menu in IBM Cloud,
by selecting the Service Credentials
option for each service.
The other settings for Assistant and Discovery were collected during the
earlier setup steps (DISCOVERY_COLLECTION_ID
, DISCOVERY_ENVIRONMENT_ID
and
WORKSPACE_ID
).
Copy the env.sample
to .env
.
env.sample .env
Edit the .env
file with the necessary settings.
env.sample:
place the credentials here with your own.
name this file to .env before starting the app.
tson conversation
ERSATION_USERNAME=<add_conversation_username>
ERSATION_PASSWORD=<add_conversation_password>
SPACE_ID=<add_conversation_workspace>
tson Discovery
OVERY_USERNAME=<add_discovery_username>
OVERY_PASSWORD=<add_discovery_password>
OVERY_ENVIRONMENT_ID=<add_discovery_environment>
OVERY_COLLECTION_ID=<add_discovery_collection>
tson Natural Language Understanding
RAL_LANGUAGE_UNDERSTANDING_USERNAME=<add_nlu_username>
RAL_LANGUAGE_UNDERSTANDING_PASSWORD=<add_nlu_password>
tson Tone Analyzer
_ANALYZER_USERNAME=<add_tone_analyzer_username>
_ANALYZER_PASSWORD=<add_tone_analyzer_password>
n locally on a non-default port (default is 3000)
RT=3000
npm install
, followed by npm start
.localhost:3000
.Note: server host can be changed as required in server.js and
PORT
can be set in.env
.
Error: Environment {GUID} is still not active, retry once status is active
This is common during the first run. The app tries to start before the Discovery environment is fully created. Allow a minute or two to pass. The environment should be usable on restart. If you used
Deploy to IBM Cloud
the restart should be automatic.
Error: Only one free environment is allowed per organization
To work with a free trial, a small free Discovery environment is created. If you already have a Discovery environment, this will fail. If you are not using Discovery, check for an old service thay you may want to delete. Otherwise use the .env DISCOVERY_ENVIRONMENT_ID to tell the app which environment you want it to use. A collection will be created in this environment using the default configuration.