Chatbots and Watson: Let’s talk about national parks: course source code
The chatbot uses Watson Conversation, Weather Company Data, React, Nodejs, and IBM Cloud to create a chatbot about National Parks.
The complete course content and videos lives here
Try the live demo here
Ask:
- which parks can you talk about
- Tell me about zion
- What animals live there
- What's the weather like
- What animals live at Denali National Park
- What's the weather like there
- Clone this repo
- Create an IBM Cloud account
- Provision an instance of Watson Conversation on IBM Cloud
- Create a new conversation workspace by importing
./resources/conversation_workspace.json
into your Watson Conversation workspaces, - Install client and server dependencies
- Create
.env
files in the project root with the following contents
APP_ID=parks-conversation
PORT=3004
LOG_LEVEL=debug
SESSION_SECRET=test
WATSON_CONVERSATION_API_ROOT=https://gateway.watsonplatform.net/conversation/api
WATSON_CONVERSATION_VERSION=v1
WATSON_CONVERSATION_VERSION_DATE=2016-07-11
WATSON_CONVERSATION_USERNAME=<USERNAME>
WATSON_CONVERSATION_PASSWORD=<PASSWORD>
WATSON_CONVERSATION_WORKSPACE_ID=<WORKSPACE>
Install server dependencies
npm install
Install client dependencies
cd client
npm install
- Start the server
npm start
- Start the client
cd client && npm start
- Navigate to http://localhost:3000
cd client
npm run build
cd ..
npm start
Navigate to http://localhost:3000
- Install CloudFoundry Tools
Follow the first 3 steps in the "Build / Run (Production)" section above, then run.
cf push USER_ID-nationalparks
Navigate to https://USER_ID-nationalparks.mybluemix.net
Q: In Lab 5: "Programmatically interact with Watson Conversation", I get an authentication error. What do I do?
A:
This occurs on Windows. Windows sets the USERNAME
variable to the logged in OS user. Ultimately, it ends up overriding the value for USERNAME
specified in .env
. The problem can be solved in two ways:
-
on step 3., hard code the
USERNAME
andPASSWORD
e.g.const conversation = new ConversationV1({ username: 'your-username', password: 'your-password', version_date: ConversationV1.VERSION_DATE_2016_09_20 });
or
- Rename the
USERNAME
env- Edit
.env
, changeUSERNAME
toNP_USERNAME
- in step 3., change
USERNAME
toNP_USERNAME
- Edit