“IBM Watson Assistant is a SaaS offering from IBM to build conversational assistants.” (“The new Watson Assistant is awesome – heidloff.net”) IBM Watson Assistant is using artificial intelligence which helps to understand users in context, to provide them easy and fast, consistent, and accurate answers across various applications, devices, or channels. IBM Watson Assistant is built on natural language understanding (NLU), natural language processing (NLP) and machine learning (ML).
The first version was already very good, and IBM clients and partners were starting to take these advantages; for example Watson Assistant was used at the International Space Station. Here you can find some more details: CIMON brings AI to the International Space Station. Based on the feedback from clients, the IBM development and design team has created a brand new experience and added new functionalities to the service for example they expanded the integration possibilities with extensions.
In this blog post I focus especially on custom extensions development and setup.
These are the sections of the blog post
- Custom extension
- Live stream on YouTube related to the example
- Additional resources
Watson Assistant does provide the integration to custom information resources by using webhooks since a long time. I also created a video about how configure the Watson Assistant webhook integration @Crisis communication chatbot . The WebHook integration is limited to one post endpoint invocation.
Now it is possible to integrate several extensions based on full REST APIs. These APIs needed to be documented/specified by OpenAPI 3. This opens the door into the wide open for Watson Assistant using incredible nearly unlimited possibilities of integration with custom extensions, this has impressed me deeply and shows an awesome progression.
That motivated me to create an example which starts from scratch from the development of a simple REST API application to the containerization and the deployment to the cloud and the definition of an own Open API documentation.
Therefor I created the GitHub project extension APIs with an easy navigable documentation Examples to develop and configure Watson Assistant extensions APIs.
Simplified architecture dependencies
The following diagram displays the simplified architecture dependencies inside a
Watson Assistant Service. In the examples we are going to integrate a
custom extension to an
- Add a custom extensions
- We have an
Watson Assistant service.
assistant instancesimplified contains
- The integrations do contain a catalog of extensions.
- The extension catalog contains
Out-Of-The-Boxextensions and maybe
custom extensionuses an Open API specification of an application to consume the REST API provided by this application.
- We have an
- Make a custom extension available for usage in an action.
- Add the custom extension the
- Add the custom extension the
- Use the
custom extensionin a
Live stream on YouTube related to the example
This is simplified diagram related to live stream at YouTube.
I also create a 1h YouTube video which shows all steps for a Node.js application with following content.
The links do provide a direct navigation to the section in the live stream.
- Introduction 01:29
- Local development
- Overview of the example Node.js application 08:01
- Clone the GitHub project to the local machine 10:29
- Develop a Node.js application and run the application locally 12:43
- Externalize the environment variables for the basic authentication 17:11
- Create a container image and run the container locally 19:54
- Push the container image to a container registry 23:18
- Understand the Open API specification/documentation 27:15
- Run the application on the IBM Cloud in Code Engine
- Verify the OpenAPI documentation works 40:09
- Configure IBM Cloud Watson Assistant
- Summary 01:03:24
Again the new custom extension functionality is opening the door into the wide open for Watson Assistant to consume a nearly unlimited number of integrations. Now extension and webhooks can be used, which all the integration possible including the out of the box, and the search with Watson Discovery it feels like that Watson Assistant can be used to address all business challenges.
That motivated me to create an example which starts from scratch from the development of a simple REST API application to the containerization and the deployment to the cloud and the definition an own Open API.
- OpenAPI related
- SwaggerHub Here you can verify your Swagger or OpenAPI documentation.
- OpenAPI Tools “OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (both 2.0 and 3.0 are supported).”
- Smartbear SwaggerHub tutorials
- Watson Assistant related
- Code Engine related
I hope this was useful for you and let’s see what’s next?