Hi everyone I am looking for a way to set a slot when a intent have been predicted. I am working with a couple of intents like:
- intent: cancel_reservation
- I wanna cancel the reservation number [11-333333X](id_res)
- I need to cancel my reservation
....
- intent: reschedule_reservation:
- I need to move my reservation, [11-333333X](id_res) to another day
- Can I move my reservation?
- intent: inform_id_res
- [11-333333X](id_res)
- [11-22222J](id_res)
…
I have a custom action that ideally would take the name of the intent and the entity id_res and make an api call.
Everything goes fine when I have both items in the same utterance, intetn, and entity.
But in cases where I have only the intent, meaning no entities in the utterance, I need to ask for it in order to pass this value to the custom action. So, I seted up an inform_res_id intent into my nlu.
In my stories.yaml i have something like this:
- fancy_story1:
- intent: cancel_reservation
entities:
- res_id: 11-333333X
- slot_was_set:
- res_id: 11-333333X
- action: action_call_api_with_intent_and_entity
- not_fancy_story1:
- intent: cancel_reservation
- action: form_get_res_id
- active_loop: form_get_res_id
- slot_was_set:
- requested_slot: res_id
- action: utter_ask_form_get_res_id
- intent: inform_res_id
entities:
- res_id: 14-55858152-22
- slot_was_set:
- res_id: 14-55858152-22
- action: action_call_api_with_intent_and_entity
→ in the second story, the intent that I got using tracker.latest_message[‘intent’].get(‘name’) method is the inform_res_id, but i would like to find a way to get cancel_reservation instead of it. How can i get this name? I have a way to access to the history of intents?
Can you help me on this ? I mean, Is my approach correct?