Tuesday, March 28, 2017

Chatbots: Manage Your Watson Conversations from the Command Line or App

Manage Watson Conversation Workspaces
I am a big fan of using the command line as most of you know by now. This applies to interacting with IBM Bluemix cloud and its services and for database systems like DB2 or dashDB. Thus, I was excited when the IBM Watson Conversation service added API functions to manage workspaces. To test the new API I wrote a small Python-based tool to manage my Conversation workspaces. It both demonstrates the API usage as well as gives you a nice command line tool to list your workspaces, update them, save local copies or even create or delete workspaces. Read on and learn how to manage your Conversation workspaces.

Installation and Overview

If you have been working with the Watson service and Python before, you probably already have everything installed. If not, you need to install Python and then head over to the Watson Developer Tools and follow the link to the Python SDK. Install that, too. Now download a copy of or clone my repository watson-conversation-tool. As last step, copy the file "config.json.sample" to "config.json" and fill in your credentials for the Watson Conversation service. Done.

The tool consists of a single script named "wctool.py". It reads the parameters and options and defines a function for each of the commands (relating to the available workspace API). To list workspaces, to get details on existing workspace, update or delete it, or to create a new workspace it simply passes the right parameters to the SDK functions for conversations.

Want to list all your workspaces?
python wctool.py -l

Get a specific workspace identified by its ID and save it to a file:
python wctool.py -g -id "henrik-22is22-cool-ce28a1d9f3f5" -o myWS.json

You find the full syntax and a sample work session with the tool in the README and in a notebook in the GitHub repository for my watson-conversation-tool.

Let me know if you have questions or feature requests by opening an issue or leaving a comment.