Open the door into the wide open for Watson Assistant with custom extensions – an awesome progression

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 channelsIBM 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 StationBased 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
  • Summary
  • Additional resources

Custom extension

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 assistant instance.

  1. Add a custom extensions
    1. We have an assistant instance inside Watson Assistant service.
    2. The assistant instance simplified contains environmentsintegrations and actions.
    3. The integrations do contain a catalog of extensions.
    4. The extension catalog contains Out-Of-The-Box extensions and maybe custom extensions.
    5. custom extension uses an Open API specification of an application to consume the REST API provided by this application.
  2. Make a custom extension available for usage in an action.
    1. Add the custom extension the environments of the assistant instance.
  3. Use the custom extension in a step of an action.

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.

  1. Introduction 01:29
  2. 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
  3. Understand the Open API specification/documentation 27:15
  4. Run the application on the IBM Cloud in Code Engine
    • Create a Code Engine project and application to run the container in the cloud 30:36
    • Configure the application in Code Engine 39:05
  5. Verify the OpenAPI documentation works 40:09
  6. Configure IBM Cloud Watson Assistant
    • Create a Watson Assistant service instance 43:38
    • Watson Assistant extension overview 45:38
    • Create an assistant instance 47:07
    • Configure the integration for the assistant instance with the extension 52:12
    • Assign the extension to an environment 54:10
    • Use the extension in a step of an action 56:40
  7. Summary 01:03:24

Summary

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.

Additional resources


I hope this was useful for you and let’s see what’s next?

Greetings,

Thomas

#watsonassistant, #nodejs, #extension, #codeengine, #container, #development, #openapi, #javascript

One thought on “Open the door into the wide open for Watson Assistant with custom extensions – an awesome progression

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.