Skip to Content
0
Jul 06, 2020 at 01:27 PM

Language detection and memory management in Conversational AI

136 Views

Hi experts,

I have some questions regarding the language determination in SAP Conversational AI. As far as I understood it, the language is automatically determined with the first input the bot receives.

Can somebody explain to me why the simple expression “I have a question” is always determined as Portuguese and not English?

As per the documentation if there are no expressions maintained in the detected language, it will switch to the default language. However after the Bot did detect one input in portuguese, a portuguese flag appears now besides the English one in all my intents and the language will stay in Portuguese….since nothing is maintained in portuguese every further input will fail.

How can I correct this? Is it possible to remove a language completely from the bot again? As far as I tried I can delete expressions, but the flag is remaining. How can I change the default language of my bot? I was able to define this while creating the bot, but it does not seem to be changeable afterwards. Is it possible to call the Bot from webchat with a predefined language? I saw this in the API documentation, but it is it possible from webchat? Furthermore is it possible to train the Bot if the language is determined wrongly like it is working for intents? I see this in the monitoring and I can correct intents if they are wrongly determined…but it does not seem to be possible for languages. Even if I add the term “I have a question” specifically as an English expression, it is still going to be detected as Portuguese.

Next I have some questions regarding memory management. I can assign a static value in the memory, like a variable counter = 1. But what I need is a bit more logic here. I would like my variable to grow by 1 each time a skill is executed, like counter = counter+1. And after it reaches 3 and the skill is executed for the third time without success I would place another IF rule and automatically forward to another default skill. But as a far as I understood in JSON it is always static and the only option would be to call to my custom code where I could manipulate the whole memory? But obviously I would need to code that and could not realize it via the nice webinterface…

We have one further issue with memory management in combination with entities. Our user is supposed to ask something like “I need a copy of my purchase order with document number 123456” or just “I need a copy of my purchase order” I will then check if the number entity is present (and if not ask for it) and pass this to my custom coding. But now the Bot is recognizing the character “a” actually as a number =1 and creates a number entity for it. In the following logic this “a/1” is then confused with the document number the user was asking for. While it seems smart, it does not help me in my particular scenario. Is there any way to top this behavior? Again in training I can remove the entity, but does this does not seem to work.

Thank you and best regards