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.jsoninto your Watson Conversation workspaces, - Install client and server dependencies
- Create
.envfiles 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 installInstall 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 startNavigate 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-nationalparksNavigate 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
USERNAMEandPASSWORDe.g.const conversation = new ConversationV1({ username: 'your-username', password: 'your-password', version_date: ConversationV1.VERSION_DATE_2016_09_20 });
or
- Rename the
USERNAMEenv- Edit
.env, changeUSERNAMEtoNP_USERNAME - in step 3., change
USERNAMEtoNP_USERNAME
- Edit
