Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Dialogflow
Extend your addFilter intent to include and add training phrases and entities for excluding an ingredient . Example: “recipe without cucumber”.Your Parameter table (type). For example, your Dialogflow agent should be able to make sense of the phrase “recipe without cucumber”. To make sure that the MARBEL agent will be able to handle these ingredients differently from the ones a user wants to include, you should create new parameter names that suggest the ingredient (type) should be excluded instead of included. The table in the Action and parameters section should be extended as follows:
...
Make sure to annotate plenty of phrases again with these examples of the use of these parameters! Only if there are enough of these phrases will your Dialogflow agent be robust for all kinds of user input.
As a next step, in a similar vein, extend your agent such that it is able to exclude a cuisine or a dietary restriction (a recipe should not be Japanese or vegan). The table in the Action and parameters section for your addFilter intent should be extended as follows:
...
Prolog and Patterns
In your recipe_selection.pl
file, add the following applyFilter functions
...
rules for applying the corresponding filters to the new entities we introduced above. You should define rules for the following clauses:
applyFilter('excludeingredient', Ingredient, RecipeIDsIn, RecipeIDsOut)
:
...
There is a predicate in the
ingredient_hierarchies.pl
file which
...
might be useful
...
Predicate to filter recipes on the exclusion of a specific ingredient type (for example: ‘beef’)
.
applyFilter('excludeingredienttype', Ingredient, RecipeIDsIn, RecipeIDsOut)
:
...
The body of this rule is similar to the ‘exclude ingredient’ rule (the difference between ingredient and ingredient type is catered for in
ingredient_hierarchy.pl
).applyFilter('excludedietaryrestriction', Restriction, RecipeIDsIn, RecipeIDsOut)
applyFilter('excludecuisine', Cuisine, RecipeIDsIn, RecipeIDsOut)
Visuals
Nothing we ask you to do here for this capability. It’s up to you.
...
Try to filter by excluding an ingredient check . Verify that the ingredient is not listed on the a50recipeConfirm
page to ensure that the ingredient is not present when in a recipe you select your recipe.
Extend
Extend . Verify that your agent to be is also able to exclude filter recipes based on the exclusion of a cuisine or a dietary restriction. Your addFilter intent Parameter table should be extended as follows:
...
Test it Out
Test your agent on its ability to exclude a cuisine and a dietary restriction.
Info |
---|
All done? |