Slots expected to be filled

Is there a way to access (in the tracker) the slots that are expected to be filled vs slots that were actually filled?


Not sure, what you want. All slots and their values are saved on tracker.slots. When you run a FormAction the current requested slot name can be found via tracker.get_slot(‘requested_slot’).

You can also access the extracted entities from the lastest user message, which are be candidates for filled slots from the latest message.

e.g. If a bot says (within a form):

utter_ask_name: “What’s your name”

in my custom channel I want to know that it is expecting the slot “name” from the user

Why should it not expect the name, when its asking for it?

It is expecting the name, and I want to know that it is expecting the name

Could you please clarify, what you try to achieve. On the hand, you say that it is expecting the name, on the other hand you want to know if it is expecting the same. That is a contradiction to me.

As you see, it is choosing the right template, since it actually is expecting the name.

I want to know that it is expecting the name

I don’t think the tracker stores that information: Tracker

So, on tracker there’s a slot that is called ‘requested_slot’. Which holds the name of the expected slot. Based on this slot the template f’utter_ask_{tracker.get_slot(‘requested_slot’)}’ is chosen, so the fact, that your bot is asking for the slot, shows that it is expecting the slot.

yes, I agree. But, in my custom channel, can I access the name of the utterance that was chosen?

Im 100% sure, whatever you want is possible, but your confuse questions and the lack of information you provide wont get you there any time soon.

Ok I’ll try to explain better.

My application makes an HTTP call to rasa to “http://localhost:5005/webhooks/channel_input_channel/webhook”, where “channel_input_channel” is my custom channel.

Currently, my custom channel retrieves the message, the sender_id, the intent, the intent confidence and the entities. I also want to be able to know which slots are being requested

I guess I can access the slot name with tracker.get_slot(“requested_slot”). And I can know whether it was filled or not if in the next utterance the tracker.get_slot(“requested_slot”) is different from the previous.

Just look into the action server log.

And again, the pure fact, that the bot uses the utter_ask_name template, shows that it is expecting a name.