Is there a way to preview the intent response with confidence score without actually triggering parameters to be filled, possible fulfilment web hooks to be called, etc.
I know Amazon Lex has a "preview intent" call that lets you preview what the response might be before actually doing the official call for a response/fulfillment.
I'm trying to be able to filter the the responses from multiple bots and choose the one with the highest confidence score and I don't want to trigger fulfilment for any bot that isn't going to be used in the dialog.
Dialogflow as of today, does not provide an option to predict the response of an intent before it is being triggered.
Dialogflow ES has Intent matching, and you might be able to do something like the next-best-intents solution, if that helps.
Related
My setup:
I'm using actions-on-google to create a custom action for google assistant, every intent is a fallback in dialogflow that is then redirected to my server where I check the intent with a custom nlp engine and then respond to it, using the actions-on-google package.
The issue:
But when an intent is suicidal, for example: "I want to kill myself", google stop the action and give a response instead of letting my custom action handle it. Is there a way to avoid this?, it also happens with certain words like "Save" in that case google stop the action and ask me if I want to save an event or whatnot.
Can I override this behavior?
You're running into a "feature" that Google calls "no-match yielding". In some cases, if you're using a Fallback Intent in Dialogflow, and the Google Assistant itself can handle the question - it will do so.
To avoid this you can use regular Intents that match the #sys.any System Entity.
However, if all you're doing for everything is sending it to your NLU, then you don't need to be using Dialogflow at all. You can just use the Actions on Google v2 to send all TEXT Intents to your NLU for processing.
Any questions that are general seems to quit the actions and provides a result from the Google Assistant itself. The sample utterances are given below:
Check my calendar / Check my emails / What is covid
Have anyone faced this issue before and have a potential solution?
This is likely because you are handling those questions using a Fallback Intent. A recent change with how Actions on Google works means that the Assistant will close your Action and handle the user statement itself under these conditions:
You are handling it through a Fallback Intent in Dialogflow or through a No Match Intent in Action Builder and
The phrase is one that the Assistant can handle itself
You don't get any indication that it is doing so.
To work around this problem, you should use an Intent that matches a phrase with the the #sys.any type in Dialogflow or an intent that accepts "free form text" using Action Builder.
I'm looking to add some logging of utterances that hit the default fallback intent. I imagine that's a pretty common desire, so maybe I'm missing some out of the box functionality that would be the real answer.. if so, please let me know!
That said, I'm trying to make use of the default text Responses section of the dialogflow UI, and additionally use a webhook to log the utterance.
I haven't tried this combination before, and I'm not sure how you are intended to do it. The user gets one of the text responses, and my webhook is called, but it seems that the webhook is expected to return a response as well. I can't simply log the utterance and be done.
Additionally i can't add suggestion pills, b/c a simple response is also required to be paired with that, even though the user already got a simple response from the default text responses.
Is it a valid use case to have your text response come from the intent responses section in the dialogflow UI, and still use a webhook to do "other" stuff? If so what is the correct way to do so?
If you really want to do it this way, don't return a JSON response and Dialogflow will use what you have sent in the response. This is not unusual, although most people tend to switch to doing responses through webhooks.
I am building a simple quiz bot with Dialogflow.
When I detect a "start of quiz", I am able to send a Quick Reply with 3 proposals, thanks to the fulfilment on the Question intent.
However, when the user clicks on one of the proposed answers, I need to have that response back to my backend so I can check the result and finally give a score, for example.
Basically, the "response-check" intent should be automatic right after the quick reply and Dialogflow should not try to understand that response.
Is there any way to easily achieve this?
Using "events" you can directly trigger an intent. Or if you are only using Dialogflow console for training, better to have an output context say "check-answer" as an input context to your answer checking intent and use the same "check-answer" as output context to all your questions intent.
I have created 5 intents in a Dialog flow. After completion of first intent, it should automatically go to the second intent without the use of the training phase. Is there any possibility to do that?
This probably isn't what you want to do. Remember that Intents capture what the user says or does and not how Dialogflow should respond.
If you want to do a series of things when the user says one thing, then you can do all those things in your fulfillment webhook. Your webhook is where you actually do something based on what the user has said, and this can be handled in one function call or several calls that you make from your Intent Handler.
There are two possibilities either you can use contexts or if you want to handle sequence from webhook service you can use events.
For webhook solution,
Give each Intent a specific event and action.
In your webhook request you will get action of your intent and you can trigger next event based on current action. => Dialogflow
For context solution
You can add Follow up intents for your each intents, Follow-up-intents