Hi everyone! We are building chatbots for our clients, and we had the idea of allowing our clients to edit our utterances. Has anyone tried this before?
From what I understood so far, when training core, the domain gets loaded, verified, and saved in the folder where the Rasa core model sits. So in theory we should be able to edit those after Rasa core has been trained and avoid re-training the core model just to edit an utterance (this would really be a pain for us, because it would imply having to re-deploy each time our customer wants to make a small change, like finding a typo or changing the name of a product… ideally we don’t have to do this ourselves). Is it that simple, or do I have to expect more complications?
I’ve tried this and it seems you can edit the “domain.yml” in the models/current/dialogue or wherever your dialogue model is saved. That edit will take effect when you will rerun the bot. But you do not have to retrain the model.
So what this means is that you can’t make dynamic changes to the bot utterances. You CAN however avoid a model retraining and just simply restart the bot. So i you give your customers a way to rerun the bot “python -m rasa_core.run etc.” they can make edits to the domain.yml in the core dialogue model directory and that will take effect.
The downside is that this new domain.yml version in the dialogue directory will not be synchronized with the domain.yml file that you used to create the dialogue model, so when you will retrain your model, your “modified” domain.yml in the dialogue model directory will get overwritten and your customers’ changes will be lost.
In practice this means that besides giving your customers a) access to the domain.yml in the dialogue model directory and b) ability to restart the bot, you will also need c) some way of taking their changes and putting them back in the original domain.yml so that when you will retrain the dialogue model, their changes won’t be overwritten.
I hope this makes sense.
Actually that sounds very reasonable. Because I am managing my utterances I already know how to load and save a domain, so if I understand you well I just have to dump the newly created domain in the folder where my core model sits after an update and restart the bot. That’s easy enough! Thanks!