I recently got a question which suggested that people are getting confused about the meaning of “slot filling using webhooks”.
I have mentioned in different places in my blog and my courses that I don’t encourage people do slot filling using webhooks.
What does it mean?
But what does it actually mean?
Suppose you have a chatbot which needs to collect four values for booking a flight – starting city, destination city, number of passengers and date of travel. Let us also suppose you use slot filling to get all the parameters.
You have 4 slots to fill
Now by marking all these parameters as required, you expect the user to “fill” all these 4 slots before they can finish the intent.
Now, it turns out that if the user were to travel from Dallas, the only destination your airline has is Houston (just as an example).
So once the user types in Dallas as the starting city, you could simply use Houston as the destination. To do this, you could use “Use webhook for slot filling” option at the bottom of the intent.
The actual implementation is complex, non-intuitive and not recommended.
What isn’t considered slot filling
Now, if you didn’t mark these parameters as “required” parameters like in the image above, and you simply skip asking the question about the destination city in your agent (you presume it is Houston once user types in Dallas as the starting point) then you are not doing slot filling using webhooks.
You are merely inferring one of the values needed in your agent here. What you will do next (after you infer the destination city) is to set the output context in such a way that you skip the question about the destination city and move on to asking about the number of passengers instead, as an example.