Agent Code
The minimal requirements for your agent code are that:
You have implemented the first 10 capabilities on the Designing and Developing Your Agent page, meeting the requirements listed on the related pages, with detailed instructions for these capabilities.
Your conversational agent compiles and we can run it.
We can successfully test and conduct a conversation with your conversational agent that concludes with a single recommended recipe of our choice. In principle, we should be able to select any of the recipes available in the agent’s recipe database provided to you at the start of the project.
For your convenience, we list here some more specific requirements that your code should minimally meet:
Dialogflow agent: Your Dialogflow agent does not have any issues (check the Validation feature) and has the following intents and entities for:
greeting intent; See for details the Capability 1: Greet, and Self-Identify page.
a request for a (random) recipe recommendation requestRecommendation intent; See for details the Capability 2: Request a Recommendation page.
a request for a specific recipe by mentioning its name (or synonym) recipeRequest intent; See for details the Capability 3: Select Recipes by Name page.
appreciation intent; See for details the Capability 4: Handling Unexpected Intents page.
asking about how the agent can assist checkCapability intent; See for details the Capability 4: Handling Unexpected Intents page.
feature request intent addFilter intent; See for details the Capability 5: Filter Recipes by Ingredients and Cuisine, Capability 6: Filter by Number of Ingredients & Recipe Steps pages.
confirmation intent; see for details the Capability 9: Confirm or Disconfirm Recipe and Closing page.
disconfirmation intent; see for details the Capability 9: Confirm or Disconfirm Recipe and Closing page.
farewell intent; see for details the Capability 9: Confirm or Disconfirm Recipe and Closing page.
deleteFilterValue intent; see for details the Capability 10: Remove a Filter and See Recipes on Demand page.
deleteParameter intent; see for details the Capability 10: Remove a Filter and See Recipes on Demand page.
recipe entity; see for details the Capability 3: Select Recipes by Name page.
ingredient entity; see for details the Capability 5: Filter Recipes by Ingredients and Cuisine page.
ingredientType entity; see for details the Capability 5: Filter Recipes by Ingredients and Cuisine page.
cuisine entity; see for details the Capability 5: Filter Recipes by Ingredients and Cuisine page.
nrOfIngredients parameter (using the @sys.number entity); see for details the Capability 6: Filter by Number of Ingredients & Recipe Steps page.
nrOfSteps parameter; (using the @sys.number entity); see for details the Capability 6: Filter by Number of Ingredients & Recipe Steps page.
servings parameter; (using the @sys.number entity); see for details the Capability 6: Filter by Number of Ingredients & Recipe Steps page.
duration parameter; (using the @sys.duration entity); see for details the Capability 6: Filter by Number of Ingredients & Recipe Steps page.
dietaryRestriction entity; see for details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229469201 page.
excludecuisine parameter (using the cuisine entity); see for details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229305386 page.
excludedietaryrestriction parameter (using the dietaryRestriction entity); see for details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229305386 page.
excludeingredient parameter (using the ingredient entity); see for details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229305386 page.
excludeingredienttype parameter; (using the ingredientType entity); see for details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229305386 page.
filterType entity; see for details the Capability 10: Remove a Filter and See Recipes on Demand page.
a set of <entityname>Del parameters; see for details the Capability 10: Remove a Filter and See Recipes on Demand page.
Prolog and Patterns: You have created the following conversational patterns in the
patterns.pl
file and implemented the associated agent responses in theresponses.pl
file:a greeting pattern (
c10
); See for details the Capability 1: Greet, and Self-Identify page.a recipe recommendation pattern (
a50recipeSelect
):a variant for a random recipe recommendation; See for details the Capability 2: Request a Recommendation page.
a variant for asking for a recipe by mentioning its name; See for details the Capability 3: Select Recipes by Name page.
a repair pattern for fallback intents (
b12
); See for details the Capability 4: Handling Unexpected Intents page.a repair pattern for out of context intents (
b13
); See for details the Capability 4: Handling Unexpected Intents page.appreciation pattern (
b42
); See for details the Capability 4: Handling Unexpected Intents page.a pattern for checking capabilities (
c30
); See for details the Capability 4: Handling Unexpected Intents page.a pattern enabling a user to confirm the recipe choice (
a50recipeConfirm
); see for more details the Capability 9: Confirm or Disconfirm Recipe and Closing page.a closing pattern for saying farewell (
c43
); see for more details the Capability 9: Confirm or Disconfirm Recipe and Closing page.a pattern enabling a user to indicate they do not want to provide more information (
a21noMoreFilters
); See for details the Capability 10: Remove a Filter and See Recipes on Demand page.
Prolog and Patterns:
You have added the Prolog rules needed for accessing the recipe database, retrieving recipes and their features, and implementing the recipe recommendation logic (filtering). See for more details the Capability 2: Request a Recommendation, Capability 5: Filter Recipes by Ingredients and Cuisine, and Capability 6: Filter by Number of Ingredients & Recipe Steps pages.
You extended the logic for, e.g. the ingredient hierarchy. See for more details the Capability 5: Filter Recipes by Ingredients and Cuisine and https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2229469201 pages.
Visuals: You have created the following six webpages:
A Start page: The main requirement for the start page is that it has a button the user can click when they are ready to start a conversation. See for more details the https://socialrobotics.atlassian.net/wiki/spaces/PM2/pages/2216624130 page.
A Welcoming page, associated with the pattern
c10
: The main requirement for the welcoming page is that it shows a microphone icon that the user can use to start talking to the agent. A second requirement is that you should not introduce a button for moving on to a next page on the welcoming (nor on any of the other pages below)! See for more details the Capability 1: Greet, and Self-Identify page.A first Recipe recommendation page, associated with pattern
a50recipeSelect
: The main requirement for this recipe recommendation page is that it shows a microphone icon that the user can use to start talking to the agent. See for more details the Capability 2: Request a Recommendation page. A second requirement is that the page shows all the user’s feature requests or filters. See for more details the Capability 5: Filter Recipes by Ingredients and Cuisine page.A second Recipe recommendation page, associated with pattern
a50recipeSelect
: The main requirement for this recipe recommendation page is that it shows a microphone icon that the user can use to start talking to the agent. See for more details the Capability 5: Filter Recipes by Ingredients and Cuisine page.A Recipe confirmation page, associated with pattern
a50recipeConfirm
: the main requirement for this page is that it shows the recipe’s name, and what the end result of cooking the recipe will look like (a picture of the recipe). A second requirement is that the page shows a microphone button to enable the user to inform the agent about whether it wants to (dis)confirm the recipe. See for more details the Capability 2: Request a Recommendation page. A third requirement is that the page shows the recipe instructions, the ingredient list with quantities, the duration, and number of servings. See for more details the Capability 6: Filter by Number of Ingredients & Recipe Steps page.A Closing page, associated with pattern
c43
. The main requirement for this page is that it should make clear to the user that they can continue finding recipes they like, if they want. See for more details the Capability 9: Confirm or Disconfirm Recipe and Closing page.