How to integrate Watson Assistant with IBM Cloud Function
Hello everyone, today we are going to integrate Watson Assistant by using IBM Cloud functions This is very interesting way to give power to you Chatbot with a fully serveless system in IBM Cloud. We are interested to connect a Chatbot with Serverless Function.
Step 1 - Login to your IBM Cloud.
First you need to login to your IBM Cloud here https://cloud.ibm.com
Step 2 - Create an Cloud Function
Type functions in the search bar type function
Then you select Start Creating then you create Namespace, then you select Actions
and click Create then you have created your serverless For this example, instead use node.js we use Python
we copy the following code and replace the current one
import sys
import requests
import json
def main(params):
# Used to identify the specific task being called from Watson Assistant
# URL used for API call
print(params)
url = "https://en.wikipedia.org/api/rest_v1/page/summary/" + str(params['object_of_interest'])+ "?redirect=true"
# Set headers
headers = {'accept': 'application/json'}
# Make API call
r = requests.get(url,headers)
# Process failed API call
if r.status_code != 200:
return {
'statusCode': r.status_code,
'headers': { 'Content-Type': 'application/json'},
'body': {'message': 'Error processing your request'}
}
# Process successful API call
else:
res = json.loads(r.content)
extract = res['extract']
return {
'statusCode': 200,
'headers': { 'Content-Type': 'application/json'},
'extract': {"extract":extract}
}
to test we can click on Invoke with parameters
{
"object_of_interest":"gravity"
}
and then we click Invoke
we got the following
Step 4 - Enable Endpoint
Before create API we go to Endpoints and we click on Enable as Web Action
and click save
and then we copy the HTTP method
now it works our cloud function.
Step 5 - Call Cloud Function from Watson Assistant
In the menu of Watson Assistant we select the tab Assistant Settings
we scroll down and we click Activate dialog
At the Home menu we click Dialog
#Step 5 - Create Entity
We create am entitiy
@object_of_interest
#Step 6 - Create Intent
Then we create an intent,
,
for example we type
for the Intent name
#tell_me_about
and in the user example we add different queries that countains the nouns that you will look on, or will be used as arguments.
eg. what is the definition of gravity
then you e click on Annotate entities
and click with the mouse gravity
and click the @object_of_interest
you will got something like
Step 6 - Weebhook setup
We paste our edpoint copied here, and we add the extension .json at the end of the URL. Here we do not need add, extra Header, or autorization.
Step 7- Create Dialog
We go the menu Dialog and we Create dialog
We click on Add node
and in the
section If assistant recognizes, we add the condition
#tell_me_about
and @object_of_interest
Then in the part of Parameters we add the following parameters
then we click on Customize
and we enable Call out to webhook/actions
and select Call a webhook
click apply
in the part of Assistat responds you will have
If assistant recognizes:
$webhook_result_1
the you click the gear button of Respond with and you add the following in the Text responds
I am defining @object_of_interest:<? $webhook_result_1.extract.extract ?>
and click save
then you will get something like
with Now finally we can try it and you can ask questions
Congratulations! You have created a Chatbot with Serverless Cloud Function.
Leave a comment