External events and reminders should trigger intents instead of actions
See original GitHub issueDescription of Problem: Reminders and external events always trigger actions, which contradicts the logic that actions should be unambiguously predictable from the dialog history and present intent. For example, in the use case where a reminder is used to have the bot initiate chitchat, this makes stories unlearnable.
Overview of the Solution: External events and reminders should trigger intents, not actions, since intents are the things that are out of our control and actions should be deterministic. Now that we have a mapping policy, this has no drawbacks.
For some applications and backwards compatibility, triggering actions should still be possible, so both options have to be available.
Examples (if relevant):
If we want to set a reminder to have the bot initiate chitchat, we would now trigger the intent, say, EXT_remind_share_me
, which is linked to the action utter_share_me
via the MappingPolicy
. This results in stories of the form
* EXT_remind_share
- utter_share_me
* general_confirm
...
which can be learned and are readable.
Definition of Done:
- Tests are added
- Feature described in the docs
- Feature mentioned in the changelog
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:16 (16 by maintainers)
Top GitHub Comments
@JEM-Mosig my initial thought is can we call the
WorldMessaged
something more intuitive? E.g.ExternalEvent
or something - not sure if that’s the right one either, butWorldMessaged
sounds a bit weird to meSummary of call
POST "/conversations/<conversation_id>/trigger/<intent>"
is_external
metadata for these events (Rasa X UI can hide them then)@tmbo We would create a new endpoint to trigger intents. We could also
is_external
metadataappendEvents
endpoint, but that doesn’t trigger prediction .Is that ok?