Some days ago, yatsea.li, from Solution Architect team, published an example of how to integrate SAP Business One and SAP Business by Design with SAP Conversational AI. You can find full information on how to deploy it in your own environment and the source code in this link SMB Bot Assistant. You can easily follow the implementation steps to duplicate Yatsea’s bot so 80% of the work would be done.
With this blog post, I will show how you can translate the intents. This way, when you request information to your ERP, you can do it using your own language instead of using default English.
Once you’ve forked Yatsea’s bot you will have to change the default language for your bot. Please click on and select your language in Bot default language field. In my case, I’ve set Portuguese.
You can also rename the bot. In this example, the bot is renamed to: pt-recast-bot.
if you need to add more than one language, you can set the default language as mentioned before and then you can add additional languages for your intents. If this is the case, please click on Train tab and then, when you are in Intents tabs, click on @sales-analysis.
To add a new language, click on icon and select your language. You can repeat this process for additional languages. In my environment I've set Spanish and Portuguese.
As part of the implementation process, explained by Yatsea in his documentation, you have downloaded to your PC the source code of the SMB(B1&ByD) Assistant Bot based on recast.ai. Please navigate to the folder: server → lib → recast. Here you will find two files called measures.csv and dimensions.csv. These files will help you to import your translated texts. Update the files providing your descriptions and the language as shown in next screenshot.
When you are done, go back to your bot, navigate to Train → Entities and click on #MEASURE entry. Now, click on icon. Upload the file measures.csv with your translations and select the appropriate import option.
Please repeat the same process for dimensions.csv file. Navigate to Train → Entities and click on #DIMENSION entry. Now click on icon. Upload the file measures.csv with your translations and select the appropriate import option.
Next step is to provide the expressions for the intents. Please click on Train tab and then on @sales-analysis entry. We can provide them by creating an intents.csv file like the ones used previously as a template or you can add the entries manually. If you want to know how to create this file, check step 1 from import s CSV file screen.
Let’s try this time to add the expressions manually. First select your language by clicking on the flag icon. Then, go to Add an expression field, start entering your sentences one by one. When you finish writing the sentence just press enter key, then you can write the following one. If you've made a mistake, no worries, you can delete it and rewrite it as many times as you need.
After creating some expressions, your bot may start proposing some expressions by showing this:
you can extend it and select the ones you like the most.
We are almost there! We are going now to map the intents with the entities within your expressions. You can do it easily:
Click on the entry to expand it. There you will see there are no entities yet. To add them, click on the word you want to assign and then click on the entity.
In the screenshot below I've clicked on “clientes” and then on #DIMENSION to assign it. After that I've repeated the process all the others.
This is how it should look like:
You can repeat the process with all the sentences you have. This way, the bot will learn about you and the way you request information.
To be able to connect from your application to the bot, you will ask to login. If you want to personalize it, you can do it by going back to Train tab and then click on @login-erpintent.
If you click on the English flag icon, you will find the default values for that language. Now you can provide your own ones in your language tab. Instead of using B1 or ByD, here I'm using sap. Now create all the entries you need and once you are done, you have to assign them an intent as we did in previous step. It should look like this:
It’s time to check if everything is working properly. Please click on the icon , you can find it on bottom right corner.
First ask to login with one of your own sentences:
Wait for the reply. You can also localize this reply by modifying the index.js file. We will see this later.
2. Let’s try now our expressions:
You can ask for the information in any of the languages you have already set up your bot for.
To request the information to the ERP, you will need an app and here you have many options. Yatsea explains how to use Facebook messenger. But you can choose any other of the available options.
I’ve decided to use Telegram instead. The process steps are available after clicking on Add new Channel icon:
We are done!
If you want to localize the reply from the bot, you can do it by changing index.js file located in server folder. Later we will upload it into our SAP Cloud foundry environment.
When editing the index.js file, look for the text provided in bot’s reply and change it for one of your choice:
This is how it works for Telegram:
Another cool feature is that you can talk to your app. You don't have to use the annoying smartphone keyboard:
Cool, isn't it?
I hope you've enjoyed reading this blog post. If you want to find more amazing projects, please visit the SMB solution architect github