How to build your own skills for SAP CoPilot
I built my own skill for SAP CoPilot, I would like to share the detailed steps for I took.
By the way, SAP CoPilot is SAP’s digital assistant for enterprise. My expectation is that SAP CoPilot will bring flexibility, extensibility, and diversity by introducing superior UX provided by digital assistant for the consumer (Google Assistant, Amazon Alexa, Apple Siri, etc.).
For SAP CoPilot product information, please refer to https://www.sap.com/products/digital-assistant.html.
I joined SAP TechEd held in this October and participated in hands-on sessions for SAP CoPilot. This post is based on the contents of the session.
To use SAP CoPilot, you need to have a subscription contract for SAP Cloud Platform.
By activating the subscription for SAP CoPilot and setting it up properly, you can use CoPilot (core service) on SAP Cloud Platform and a tool called Skill Builder that you need for creating skills (it is like Amazon Lex on AWS). I used the latest release; October 2018.
3 Factors to Understand Before Beginning
Before you begin using the SAP CoPilot skill, let’s check the terminology. To create skill, three factors are very important; “Skill“, “Intent“ and “Utterance“.
|Skill||Intents bundled. Skill, so to say.|
|Intent||Purpose; what user wants to do.|
|Utterance||Triggering spoken word(s).|
It might be difficult to understand with just the chart, so I have listed some examples. Skill called “Product Management”, Intent to “create/read/update/query” products, and Utterance in case of query as an example.
As you might notice by looking at the verbs listed under Intent, they match to the OData operations (Create/Read/Update/Query). Like these, it is one of the characteristics of SAP CoPilot that Intent is structured based on OData operations.
How to Build Your Own Skills
Well the introduction might have been a little long, let’s start building a custom skill. By the way, there is a meaning that I say “custom”. SAP CoPilot is SAP standard digital assistant, so it will provide vast standard skills without building custom skills. This time, hands-on itself was the purpose, this is why I built a custom skill.
First, login to SAP CoPilot Skill Builder and click “New Skill”.
Type the name of skill and click “Add Intents to the skill”.
Specify end point for OData service or click “Browse”.
In case you clicked “Browse”, select OData service, and click “Import Service”.
Select the object (entity) for the selected OData service.
After selecting Object (entity), activate the operation for it. Select Query operation to obtain the list.
Set the parameters desired for the selected operations. With these steps, the basic setup for Intent is complete. Click “Save”. (after saving it, go back to the skill list screen.)
If there are any parameters not set, a “!” mark is displayed. In this case, please select your Intent again, and check the contents.
UI Display (UI display setting) looks incomplete. Utterance also has yellow “!” mark it is warning.
Set Title, Subtitle, and Image for UI display setting. The setup is now complete.
Let’s continue with the Utterance that had warning displayed. Hint is not set, this is the reason a warning was displayed. Add Utterance as hint for “how to ask questions”, such as “Show me products from ABC”. With this hint, people who use this skill for the first time can use it without getting lost.
Warning is not shown, but let’s check Entities under Utterance. You can check parameters (=Filter items for OData service) here. You can set each item is mandatory or not, use value helper or not, etc., For example, Rich predefined value help for Business domain is SAP’s advantage. Furthermore, you can also add custom names (synonyms).
After completing the necessary setup, click “Build” and wait for a while until build is complete.
Now custom SAP CoPilot skill is created!!
Finally we can actually execute the skill we created. During the hands-on exercise, we checked stand-alone version of the SAP CoPilot. The conversation flow is like this:
- Me: Could you show me products of supplier ‘AVANTEL’?
- CoPilot: Here’s what I found products with supplier AVANTEL.
- Me: Show me a price of second one
- CoPilot: The price per unit for the product “ITelO Vault SAT” is 149.00 USD.
When I first said “show me the products of supplier ‘AVANTEL'”, CoPilot said “I found products” and showed me the list of products with images. I then asked “show me the price of second one”, CoPilot answered, “The price per unit for the product “ITelO Vault SAT” is 149.00 USD”. SAP CoPilot could answer to the order of “second”, so it means it understands the context of sentences.
To make it easy to understand the description, I only mentioned about Query operation, but If I say, “I would like to create …”, I can of course execute Create operation. SAP CoPilot can even understand long sentences like “Show me products that are availability in stock and price over 150 dollars in category of computer component” with Query operation and conditions other than suppliers.
How I felt about Building Skills
I will briefly summarize how I felt when building my own skill using SAP CoPilot Skill Builder.
Oops? I did NOT set Utterances, did I?
Amazon Lex also has Intent (what you want it to do) and Utterance (password for triggering Intent), but it was very cumbersome to register many sample Utterances and make it trigger Intent without omission.
In particular, it was a challenge for me to cover the different expressions for the same intent such as “Show me products”, “Let me see …”, “Can I see …” etc. If the Intent is not triggered easily, it would be considered a piece of junk Bot.
With SAP CoPilot, I ONLY defined one hint Utterance to ask “Show me products”, for example. Isn’t it amazing?
Wow! This is really cool, Isn’t it?
SAP CoPilot makes regulation that Intent follows OData operations, and that is why it is easier for artificial intelligence to guess utterances. In other words, what users would like to do by saying either “Show me”, “Let me see”, or “Can I see” would be Query operations.
Other than that, if you type a supplier name, not AVANTEL(correct) but AVENTAL (incorrect), it would say “Here’s what I found for products with supplier AVANTEL:” and kindly correct me, nicely assimilating small mistakes in spelling, lack of articles, misuse of conjunctions, etc. What a SAP Leonardo ML technology!
Thank you for your reading. How was it?
This time, I introduced SAP CoPilot as digital assistant for enterprises. I am looking forward to it becoming a major conversational UI soon. Unfortunately, SAP CoPilot does not support Japanese as I post this. Considering Amazon Lex does not support Japanese either, natural language processing for Japanese might not be easy. I hope it will support Japanese in the very near future!
SAP CoPilot is not only Digital Assistant but also Bot Integration Hub; another innovative feature which I would like to write about at another time.