Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Dialogflow
The previous capability made the agent select a random recipe name from the recipe database and recommend this to a user. We now want to allow the user to request a specific recipe by mentioning the name of a recipe. In this case, the conversational agent should be able to understand that a user is mentioning a specific recipe’s name. In other words, our Dialogflow agent needs to be able to recognize all the names of all the recipes in the recipe database.
...
Warning |
---|
Test that your intent is correctly recognizing user requests by using the microphone button in the Dialogflow test console (you can also enter phrases in the test console by typing). Try various phrases and check whether what you say is classified as your recipe request intent. Note that just copy-pasting the training phrases you entered for the intent into the test console is not that useful (you will find that Dialogflow will correctly classify these with a confidence score of 1 by inspecting the Diagnostic Info). But you can use these phrases to check that ASR is working by using the microphone button in the test console and talking to the agent. |
Prolog and Patterns
Now that we have introduced a new intent for asking for a specific recipe by its name, we can add a new variant of the a50recipeSelect
pattern that we introduced already earlier for the Capability 2: Request a Recommendation. To illustrate it, we repeat the example of the type of pattern that we have in mind:
...
The new agent intent label recipeChoiceReceipt
that we introduced also needs to be added to the responses.pl
file. To specify a phrase or response the agent can use when performing the intent, you should take into account that the name of the recipe should be part of the response (see the example again: Artichoke and pine nut pasta is a great choice!). As before, defining the response therefore requires a rule to define the text(recipeChoiceReceipt, Txt)
clause. The idea is that the agent first finds the current recipe stored in its conversational memory, retrieves the recipe's name, and finally constructs a response using the template string_concat(PhrasePart1, PhrasePart2, Txt)
where you need to replace the PhrasePart1
and PhrasePart2
arguments.
Visuals
Nothing we ask you to do here for this capability. It’s up to you.
...
You can also check whether the intent recognition works. In your Dialogflow agent in the Training Tool you should be able to see a conversation listed with a greeting
and recipeRequest
intent. You also should be able to see the SIC server received those intents with transcripts from Dialogflow in the terminal where you started the server.
Note |
---|
As we noted already in the Test it Out section for Capability 1: Greet, and Self-Identify, Dialogflow may not be able to recognize what you are saying correctly (ASR failure), and, as a result, the agent may receive a default fallback intent and get stuck because the agent cannot handle these yet (which we will fix when implementing the next Capability 9: Enriching Conversation). For now (and this will be useful throughout the project), you can also avoid ASR failures by adding and using a chatbox to a page in which you can type a response (instead of using the microphone). We have already provided you with the option to add a chatbox to the footer of pages, but the code is still commented out (check the code for the |
Info |
---|
All done? |