Only allow some intents to start a dialogue

I couldn’t find a better title for this sorry :face_with_raised_eyebrow:

I’d like the chance to mark some intents in sentences.ini so that those are not considered in the first dialogue iteration. In other words, those would go in the intentFilter for session initialization.

Thanks!!

If I remember correctly, Snips let you enable and disable intents and also disable specific intents from the start, is this wat you mean?

Yes. Imagine a dialogue involving multiple iterations. “Step 2” can’t happen without “step 1” happening before. So the intent for “step 2” should not be recognized at dialogue start, but only after “step 1” is recognized (“step 1” intent handler would continue the session with an intent filter set to “step 2”).

Yes snips did -> you could activate/deactivate by default and then had to use the intent_filter to activate all that were deactivated by default. I think adding this would make a lot of sence.

The hermes/dialogueManager/configure message is implemented in rhasspy-dialogue-hermes in master for restricting intents up front.

The intentFilter property of various dialogue messages has also been implemented (e.g., hermes/dialogueManager/continueSession).

3 Likes

Yes and that’s alright. I was talking about marking intents in sentences.ini someway so they’d be injected into intentFilter by Rhasspy when starting a session. A way to mark “starter intents” if you like.
Or maybe this would be a job for the applications? Not for Rhasspy itself. What do you think?

that might be a good idea to improve STT
mark some sentences as “dialog” and add the parent sentence name so the STT doesnt have to know those words until needed

it could be also usefull for generic anwsers like yes/no

e.g.:

[TurnOnOffTV]
turn (on| off) TV

[ConfirmationTV parent=TurnOnOffTV]
yes
no

I would advise against that. Intents may have multiple parents, it would become a mess to manage IMHO.