SEPTEMBER 2016 UPDATE:
I wrote some R Hooks to talk with Conversation service - here:
https://github.com/rustyoldrake/R_Scripts_for_Watson/blob/master/Watson-CONVERSATION-Code-Backbone.R
_______________________________________
IBM Watson Launched CONVERSATION Service July 2016 - - here is what I found on my 1st tour....
Step 1 - Go To Bluemix https://console.ng.bluemix.net/ and select USE SERVICES OR APIs (signing up to free account takes 2m)
here is bluemix dashboard. click bottom right box to launch a service
Step 2 - Select CONVERSATION SERVICE tile
new tile! Conversation. It's a mashup of NLC, Dialog and other services. with terrific UX/tooling
Step 3 - Think of a nice name and CREATE - you can leave it unbound.
creating the service in bluemix. Takes about 10-20 seconds to be available.
Step 4 - Select LAUNCH TOOL (bottom right)
this is the step I normally go to "Service Credentials" and start hammering service. For now, as of July 2016 - the best way to create the Conversation Service is with Tooling. Launch Tool!
Step 5 - New tooling will launch - select CREATE. Pick a name and some simple example of Chat Bot
my example was a basic intent detector for coffee, cheese, chocolate and wine. Yum!
Step 6 - Start with basic INTENTS - Add a 3 or 4 intents to test - and give service 5-10 examples of user inputs that should MAP to intents. (Classes) - this may look familiar to NL Classifier users.
see NLC and Conversation documentation for details. Links below.
Step 7 - Click on CREATE DIALOG. Then start playing with nodes. FIRST NODE - CREATE "conversation_start" and create new CONDITION (Starting node) - see docs for this.
experiment here - you can test real time, so you'll get hang of basic flow pretty quick
Step 8 - First box is prompt. Then build a decision tree from your INTENTS like below #coffee and #chocolate . Also LOOP back (continue from -> Go to condition)
Also - create a LOOP back to start for testing "Continue From should click to "go to response" in the first conversation node (i.e. reset the talk once it provides answer)
Step 9 - Try it out! Test using icon top right corner
Step 10 - FUTURE - Add downstream functionality - I have some NL CLassifier Ground truths (Coffee, Cheese, Wine) that I'll 'wire in' - so Bot can ask follow up question and then recommend a specific delicacy.
Summary - so in about 30 minutes of playing around we....
-
Created a Bluemix Service called Conversation
-
Launched Tooling
-
Built some simple INTENT detectors
-
Did a logic flow in Dialog
-
Tested a simple bot to detect whether I was interested in Coffee, Wine, Chocolate or Cheese.
I had a bit of a learning curve in Dialog area, so may blog more on that later. Also, I am keen to plug my Code into this (hit APIs) so watch this space.
SUPER SIMPLE & CLEAR 2 Minute Video
Other Conversation Links:
- http://www.ibm.com/watson/developercloud/conversation.html
- https://watson-api-explorer.mybluemix.net/apis/conversation-v1
- https://github.com/rustyoldrake/R_Scripts_for_Watson/blob/master/Watson-CONVERSATION-Code-Snippet.R (Very early code)
- coffee NL Classifier - https://dreamtolearn.com/ryan/r_journey_to_watson/23
- wine NL Classifier - https://dreamtolearn.com/ryan/r_journey_to_watson/24
- Zach Walchuk Customer Service Chat-Bot https://www.linkedin.com/pulse/super-simple-customer-service-chat-bot-you-can-build-ten-zach-walchuk
Build a chatbot in 6 minutes with IBM Watson Conversation
=======
Appendix A - here is an example of curl/command line syntax
SENT - CURL:
Ryans-MacBook-Pro-2:~ ryan$
curl -X POST -u e63f524d-b6f4-9999-905b-e6bXXXe99b87:KQ4d0EggCyGR -H "Content-Type:application/json" -d "{\"input\": {\"text\": \"hot coffee\"}, \"context\": {\"system\": {\"dialog_stack\": [\"root\"], \"dialog_turn_counter\": 1, \"dialog_request_counter\": 1}}}" "https://gateway.watsonplatform.net/conversation/api/v1/workspaces/2ded4293-871d-4b24-XXXX-4c8b1289be81/message?version=2016-07-11"
RESPONSE:
{error: no user with username '"intents":[{"intent":"coffee","confidence":0.9871662023563588' was found}],"entities":[],"input":{"text":"hot coffee"},"output":{"log_messages":[],"text":["I'm sorry. I don't understand. Please try again"],"nodes_visited":["node_9_1468894011999"]},"context":{error: no user with username '"system":{error: no user with username '"dialog_stack":["root"],"dialog_turn_counter":2,"dialog_request_counter":2},"conversation_id":"1f84342f-5aad-XXXX-b40f-dd1XXXb66b4f"' was found}' was found}
=======
Appendix B - here is an example of R syntax:
library(RCurl) # install.packages("RCurl") # if the package is not already installed
library(httr)
library(XML)
url_CON="https://gateway.watsonplatform.net/conversation/api/v1"
version="?version=2016-07-11"
username_CON <- "e63f524d-xxxx-xxxx-905b-e6b1d4e99b87"
password_CON <- "KQ4dxxxxxyGR"
workspace_CON <- "xxxxxxxx-871d-xxxx-xxxx-4c8b1289be81"
## testing
response <- POST(url=paste(url_CON,"/workspaces/",workspace_CON,"/message",version,sep=""),
authenticate(username_CON,password_CON),
add_headers("Content-Type"="application/json"),
body = '{ "input": { "text": "coffee cake" } }',
encode = "json"
)
response
response_text <- content(response, "text", encoding = "UTF-8") # or encoding = "ISO-8859-1"
response_text
##########
> response_text <- content(response, "text", encoding = "UTF-8") # or encoding = "ISO-8859-1"
> response_text
[1] "{error: no user with username '\"intents\":[{\"intent\":\"coffee\",\"confidence\":0.9871662023563588' was found}],\"entities\":[],\"input\":{\"text\":\"coffee cake\"},\"output\":{\"log_messages\":[],\"text\":[\"Welcome to the Tasty Helper! \\nWhat are you looking for?\"],\"nodes_visited\":[\"node_6_146889888885\"]},\"context\":{error: no user with username '\"conversation_id\":\"28c696cd-5694-4377-99a5-688888d3ab266\",\"system\":{error: no user with username '\"dialog_stack\":[\"node_6_14688888593485\"],\"dialog_turn_counter\":1,\"dialog_request_counter\":1}' was found}' was found}"
=====
https://developer.ibm.com/answers/topics/watson-conversation.html
Interested in more content by this author?
sign up and follow RyanAbout this blog
This is an informal blog that explores tools, code and tricks that group members have developed to engage IBM Watson cognitive computing services - from the R Programming Language. Packages include RCURL to access Watson APIs - for services that include Natural Language Classifier and Speech to Text. THIS IS MY PERSONAL BLOG - it does not represent the views of my employer. Code is presented as 'use at your own risk' (it has lots of bugs)
Created: September 13, 2015
English
1 Comments
Before you can comment, you need to sign-up or login
responded August 2016