alwayscurious
alwayscurious

Reputation: 1165

Ambiguous intent and slot-filling

I have an intent called "Number" which detects when someone has entered digits throughout a conversation and it acts appropriately. Number Intent

I then have an intent called "Report" which provides the user with user-specific info from the database. In order to verify the user's identity, I ask for their security code (which is a set of digits).

Report Output Contexts Report Intent

The user experience: User invokes "Report" intent. User is asked for their security code.

The problem: Once the user enters their security code, rather than return to the "Report" intent, it invokes the "Number" intent since the user is entering digits.

I'd like to have a way of saying that only invoke the "Number" intent if we are not slot-filling another intent. How is this possible?

P.S using the all_required_params_present == True doesn't work.

Upvotes: 0

Views: 241

Answers (1)

Abhinav Tyagi
Abhinav Tyagi

Reputation: 5256

If you have a similar thing to captured in two intents (number) in your case, then the only way to invoke the right intent would be to have an "input context" or an "event" active like

enter image description here

Here the number tells for how many interactions this context is active.

So, if you have capture_report context active for your Report intent, then it will only be fired when this context is active and the user is speaking the correct phrase. Similarly, you will need context for your Number intent to stop it from firing when you want Report intent to fire.

You will need to set this context either from Dialogflow or programatically form webhook fulfillment.

For details check about Context and Event by Dialogflow and how contexts works.

Upvotes: 1

Related Questions