🚀 Watson Assistant (formerly Conversation) Sample Application
This Node.js app demonstrates the Watson Assistant service in a simple interface engaging in a series of simple simulated banking tasks.
<img alt="Travis" src="https://travis-ci.org/watson-developer-cloud/assistant-simple.svg?branch=master">
<img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg">
You can view a demodemourl of this app.
Please note this app uses the Watson Assistant V2 API. To access a version of the V1 app, you can go to v1.4.1.
If you need more information about the V1 API, you can go to the Watson Assistant V1 API page.
Prerequisites
- Sign up for an IBM Cloud account.
- Download the IBM Cloud CLI.
- Create an instance of the Watson Assistant service and get your credentials:
- Go to the [Watson Assistant](https://cloud.ibm.com/catalog/services/conversation) page in the IBM Cloud Catalog.
- Log in to your IBM Cloud account.
- Click **Create**.
- Click **Show** to view the service credentials.
- Copy the `apikey` value, or copy the `username` and `password` values if your service instance doesn't provide an `apikey`.
- Copy the `url` value.
Configuring the application
- In your IBM Cloud console, open the Watson Assistant service instance
- Click the Import workspace icon in the Watson Assistant service tool. Specify the location of the workspace JSON file in your local copy of the app project:
`<project_root>/training/bank_simple_workspace.json`
- Select Everything (Intents, Entities, and Dialog) and then click Import. The car dashboard workspace is created.
- Click the menu icon in the upper-right corner of the workspace tile, and then select View details.
- Click the icon to copy the workspace ID to the clipboard.
![Steps to get credentials](readme_images/assistant-simple.gif)
- In the application folder, copy the .env.example file and create a file called .env
```
cp .env.example .env
```
- Open the .env file and add the service credentials that you obtained in the previous step. The Watson SDK automatically locates the correct environmental variables for either
username
,password
, andurl
or theapikey
andurl
credentials found in the .env file.
Example *.env* file that configures the `apikey` and `url` for a Watson Assistant service instance hosted in the US East region:
```
ASSISTANT_IAM_APIKEY=X4rbi8vwZmKpXfowaS3GAsA7vdy17Qhxxxxxxxx
ASSISTANT_URL=https://gateway-wdc.watsonplatform.net/assistant/api
```
- If your service instance uses `username` and `password` credentials, add the `ASSISTANT_USERNAME` and `ASSISTANT_PASSWORD` variables to the *.env* file.
Example *.env* file that configures the `username`, `password`, and `url` for a Watson Assistant service instance hosted in the US South region:
```
ASSISTANT_USERNAME=522be-7b41-ab44-dec3-xxxxxxxx
ASSISTANT_PASSWORD=A4Z5BdGENxxxx
ASSISTANT_URL=https://gateway.watsonplatform.net/assistant/api
```
However, if your credentials contain an IAM API key, copy the `apikey` and `url` to the relevant fields.
```JSON
{
"apikey": "ca2905e6-7b5d-4408-9192-xxxxxxxx",
"iam_apikey_description": "Auto generated apikey during resource-key ...",
"iam_apikey_name": "auto-generated-apikey-62b71334-3ae3-4609-xxxxxxxx",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Manager",
"iam_serviceid_crn": "crn:v1:bluemix:public:iam...",
"url": "https://gateway-syd.watsonplatform.net/assistant/api"
}
```
```
ASSISTANT_IAM_APIKEY=ca2905e6-7b5d-4408-9192-xxxxxxxx
```
- Add the
ASSISTANT_ID
to the previous properties
```
ASSISTANT_ID=522be-7b41-ab44-dec3-xxxxxxxx
```
Running locally
- Install the dependencies
```
npm install
```
- Run the application
```
npm start
```
- View the application in a browser at
localhost:3000
Deploying to IBM Cloud as a Cloud Foundry Application
- Login to IBM Cloud with the IBM Cloud CLI
```
ibmcloud login
```
- Target a Cloud Foundry organization and space.
```
ibmcloud target --cf
```
- Edit the manifest.yml file. Change the name field to something unique.
- name: my-app-name
.- Deploy the application
```
ibmcloud app push
```
- View the application online at the app URL.
License
This sample code is licensed under Apache 2.0.Full license text is available in LICENSE.