...
A good handling of repair is vital to making your agent robust to misunderstanding. There are a few common ways in which misunderstanding occur’soccurs, that need to be addressed by proper repair patterns.
...
Your user has just said something odd or not matching the current situation and so your Dialogflow cannot identify the user's intention and goes to a default fallback intent. In this pattern, your agent can try to come to an understanding by asking for a rephrasing with paraphraseRequest‘paraphraseRequest’. Add a b12 pattern using the defaultFallback intent and paraphraseRequest intentresponse.
In responses.pl: paraphrase requests are determined depending on the context of the conversation (specified as the pattern that is currently active). Under the paraphrase request section in responses.pl, you will see ‘text/3’, which specifies the active pattern, the agent response name, and what the agent should say. Fill all these in.
...
Fill in all the contextMismatch responses in response.pl. Like the paraphrasing response, it depends on where the user is in your agent’s programthe context of the conversation what response to give.
b14 User Repetition
The user repeats themselves the user says something that is identified and the agent responds with repeatedUserIntent
In It may happen that the user repeats what it has said, while the agent has already responded with a ‘contextMismatch’ response. In this case, it would be unnatural to give the same response again. Think of a more sensible response in this case.
In patterns.pl, specify the b14 pattern. In responses.pl fill in a response for the repeatedUserIntent.
...
Your user says thank you and shows some ‘appreciation’ and your agent should respond apropriately with an ‘appreciationReceipt’.
Go In patterns.pl specify the B42 pattern. Furthermore, go into responses.pl and fill in the corresponding text fact.
...
In the a50recipeSelect pattern, the pattern name is not just a50 but a50recipeSelect please . Please note that when building your pattern. In this conversation your agent should specify its goal with the user , make a recipe inquiry, get and then inquire what recipe it likes to cook. Then it should interpret a recipe request from the user , the agent should and respond to the user's choice and then . Finally, the agent should insert the next pattern in the conversation, which is a50recipeConfirm. To do this you should use the responses specifyGoal‘specifyGoal’, recipeInquiry‘recipeInquiry’, and recipeChoiceReceipt‘recipeChoiceReceipt’. The user intent is called recipeRequest‘recipeRequest’. To insert something into the agent’s agenda, you can use the insert() command as part of a pattern.
In patterns.pl, specify the pattern as indicated above. In responses.pl fill in the corresponding responses for specifying goal and recipe inquiry. recipeChoiceReceipt mentioned above. ‘recipeChoiceReceipt' requires a rule. To ; to respond, the agent must find the current recipe, access a list of all recipe IDs using the predicate recipeIDs‘recipeIDs()', check that the current recipe is a member of the list(better safe than sorry), get the recipes recipe’s name, and finally return a response using string‘string_concat(“Phrase Part 1”, “Phrase Part 2”, Txt)’.
a50recipeConfirm: Confirming a Recipe
after After the user selects a recipe, the agent should confirm the user’s choice. On this page, the user would see recipe information via visual support. We foresee three potential situations for this conversation thus we will make , which can be accommodated by making three a50recipeConfirm patterns, one for each scenario. The . After the agent uses recipeCheck ‘recipeCheck’ to ask if the user can look over the recipe information and ask to decide if they want to cook that recipe. The , the user could confirm (1), deny (2), or show appreciation (3).
In patterns.pl, make the a50recipeConfirm patterns for each of the three scenario’s mentioned above. Look at Dialogflow for the appropriate Intent identification naming. If If the user says they don’t it does not want to choose that recipe, we need to go back a step. How would one do this?Note: the name of this pattern is also a50recipeConfirm instead of just a50.
In responses.pl fill in text ‘text(recipeCheck, “”)’ response.
a21noMoreFilters
Example:
...