No, you wouldn’t intentionally break your chatbot’s functionality.
But you need to know the different ways it can happen (and also consider the suggestion I have at the end).
Add a new user says into an intent
Action: You want to handle a new phrase in an existing intent.
Problem: You have a very similar phrase already declared as part of another intent. As a result, the old phrase now gets mapped to the one you changed, potentially breaking some functionality.
Update an existing intent
Action: You modify the user’s phrase in an existing intent.
Problem: An user phrase which used to get mapped to the current intent is now triggering the fallback intent.
Approve a phrase in the training tab
Action: You see an unmapped phrase in the training tab and believe it should be mapped to an existing intent. So you select the intent, and click on the Approve button
Increase the ML threshold
Action: To get a tighter mapping, you slightly increase the ML threshold.
Problem: You didn’t know this before, but many of your phrases were already being mapped very close to the ML threshold score. After you increase it, the old phrases are getting mapped to the fallback.
Decrease the ML threshold
Action: To get a more generous mapping (or because you don’t want to spend more time adding new user phrases), you lower the ML threshold
Problem: Even junk user phrase inputs with very poor matching starts getting mapped to your intents. As a result, phrases get matched even if an entity is not present. This leads to low quality input data getting into your system.
Dialogflow updates their platform
Now clearly, this isn’t something you can control.
But there are also occasions when your chatbot, which was humming along very well, suddenly breaks. You go to the forum and notice that people are complaining. Turns out, Dialogflow made some updates to their service which breaks the old functionality in some way.
So what can you do to mitigate these problems?
Add some automated conversation testing to your chatbot. I will be discussing how to do it in a future post.