Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

Make a page that is displayed while recipe recommendation is ongoing and a page that is shown when the user needs to confirm it likes a recipe that is recommended by the agent.

Make a page to show recipe preferences and a second page to show the remaining recipes.

Instructions

Capability 2: Request a Recommendation

Agent Capability 3: Select Recipes by Their Name

Summary Description

Instead of leaving it up to the agent to suggest a recipe and choose one out of all remaining recipes, a user also can mention a specific recipe themselves and ask the agent to present that. This means that the Dialogflow agent should have knowledge of all of the recipes that are in the database too. We will make this available to that agent by adding a recipe entity (type). That will also enable the agent to recognize these recipes in user expressions.

A: What recipe would you like to cook?

...

https://socialrobotics.atlassian.net/l/cp/SVWuvq0K

Agent Capability 4: Handling Unexpected Intents

Summary Description

A conversational agent should be able to handle dialog moves of users that do not necessarily fit into the currently active pattern. Such moves are “unexpected” in the sense that they do not fit into a conversational pattern, but should be expected as users will almost always slightly deviate from a rigidly framed pattern. Typical examples are expressions of appreciation and requests for information about how the agent can assist a user (a capability check). A second type of unexpected move is not due to user behavior but due to failures of speech recognition. Dialogflow will match with a so-called default fallback intent in cases where it is unable to recognize what a user says as and cannot classify it as one of the (other) intents of the agent. There is another case that we will look into too where what a user says does not seem to fit into the conversational context. Again, we can capture the “unexpected” in patterns, which will enable the conversational agent to handle them:

Appreciation example pattern:

U: Thanks

A: You're welcome.

Capability check example pattern:

U: What can you do?

A: I can ____.

Repair example pattern:

U: Have you read the Hobbit?

A: What do you mean?

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Add intents for expressing appreciation and for asking how the agent can assist (check capability).

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement patterns for handling “unexpected” intents and repair mechanisms for misunderstandings.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

-

Instructions

Capability 4:

...

Handling Unexpected Intents

Agent Capability 5: Filter Recipes by Ingredients and Cuisine

Implementing this capability will involve implementing some of the conversational and reasoning competences that a conversational recipe recommendation agent should have. It will enable users to request recipes which use specific ingredient (types) or ask for recipes from a specific cuisine. This one of the capabilities that requires quite a big amount of work. Some of the bigger challenges will be to make Dialogflow understand ingredients (at least those that are in our database; and cuisines, for that matter, but those are fewer), to implement the logic to filter the recipe database with the feature requests of a user, and to present those in a nice way to the user on a webpage.

Summary Description

A: What recipe would you like to cook?

U: I'd like to make a recipe with ____ *.

A: Here is a list of recipes that fit your preferences.All the recipes left include ____ *. Do you want to add another preference?

* insert name of an ingredient (type) or cuisine here

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Add ingredient (type) and cuisine entities and an intent for filtering recipes and ingredient entity.

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement feature request patterns and responses, and Prolog rules for filtering recipes, has ingredient rule.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

Make an update Update the recipe recommendation page and create a second recipe selection pagesrecommendation page.

Instructions

Capability 45: Filter Recipes by Inclusion CategoricalIngredients and Cuisine

Agent Capability

...

6: Filter Recipes on Number of Ingredients

Summary Description

This capability will extend the capabilities of the agent to handle feature requests from users for limiting the number of ingredients used in a recipe, the number of recipe instruction steps, and the duration, and meeting a specific number of servings that can be cooked with a recipe. The recipe confirmation page should also be extended to show some of these details, including the ingredients, recipe instructions, servings and duration.

A: What recipe would you like to cook?

...

A: Here is a list of recipes that fit your preferences.

* insert a number here

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Extend the intent for filtering recipes with feature requests for number of ingredients and recipe instruction steps, duration, and number of servings.

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement additional rules for filtering recipes and associated helper predicates.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

Make a confirm recipe details page.

Instructions

Capability 56: Filter by Numerical CharacteristicNumber of Ingredients & Recipe Steps

Agent Capability

...

7: Filter Recipes by

...

Dietary Restrictions

Summary Description

We continue to extend the capabilities of the agent to handle user requests. The focus will be to enable a user to ask for recipes that meet dietary restrictions. This will also involve extending the logic of reasoning about ingredients. The main challenge will be to come up with an efficient approach to define this logic.

A: What recipe would you like to cook?

...

* insert a recipe feature such as vegan, for example, here

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Extend the intent for filtering recipes with additional recipe features.

...

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

-

Instructions

Capability 6: Include Indirect Characteristic7: Filter on Dietary Restrictions

Agent Capability

...

8: Filter Recipes by

...

Excluding Features

Summary Description

The last extension to increase the capabilities of our agent will look into feature requests that exclude aspects of a recipe. There are many examples of this, but we will focus on user requests that ask for excluding an ingredient (type), for recipes that are not from a particular cuisine (e.g., not from Asia), or do not have a specific dietary restriction (e.g., are not vegan). You are, of course, invited to extend the agent with other similar capabilities to exclude aspects of a recipe.

A: What recipe would you like to cook?

...

* insert an ingredient such as salt here

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Extend the intent for filtering recipes with phrases that exclude ingredients.

...

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

-

Instructions

Capability 7: Exclude Categorical Ingredient8: Filter by Excluding Features

Agent Capability

...

9: Confirm the Chosen Recipe

Summary Description

A: What recipe would you like to cook?

U: I'd like to make ____ *.

A: ____* is a great choice!When users have finished their search for a nice recipe to cook, their choice should be displayed (which we already implemented for Capability 5: Filter Recipes by Ingredients and Cuisine) and they should be asked to check the details to confirm the recipe is indeed what they would like to cook. Of course, we need to take at least two scenarios into account: (1) a user confirms they are happy with the recipe, or (2) they indicate it is after all not quite what they were looking for. If all is fine and well, the agent should close the conversation by saying farewell. Otherwise, the conversation should move back to the recipe selection stage. The following conversational pattern needs to be implemented:

A: Can you confirm ___* is the recipe you would like to cook?

...

A: Great. (Alternatively: That is Unfortunate. [Back Move back to the first linerecipe selection stage])

* insert name of recipe here

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Add confirmation, nodisconfirmation, and farewell intents.

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement confirmation and farewell patterns.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

Make a farewell closing page.

Instructions

Capability 89: Confirm or Deny recipe Disconfirm Recipe and Closing

Agent Capability

...

10:

...

Removing Filters and Showing Recipes on Demand

Summary Description

“Thank You”, “What can you do?” and Repairing

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Add appreciation, fallback and check capability intents.

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement patterns for repair and conversation enrichment, and the check capability pattern.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

-

Instructions

Capability 9: Enriching Conversation

Agent Capability 10: Enable Filter Removal and Showing of Filters

Summary Description

The last capability on our list before we ask you to extend the capabilities of the conversational agent using your own insights and ideas is about allowing users to remove requests they made before and to allow them to indicate that they are done providing their preferences. You should implement the following patterns:

A pattern enabling users to remove a recipe feature request:

U: Could you please remove the cuisine and servings requests?

A: I removed the cuisine and services requests for you.

A pattern enabling the user to express they are done:

A: Can you elaborate on what you're aiming for in your recipe?

U: I don't want to add anything else.

A: OK. Here is a list of recipes that you can choose from. [Alternative: Sorry, there are still too many recipes left to show them all. Please add more preferences.]

Implementation Tasks Overview

Panel
panelIconId1f4ac
panelIcon:speech_balloon:
panelIconText💬
bgColor#FFEBE6

Add intents for removing a request or preference (filter) and for enabling users to say they do not want to add more preferences.

Panel
panelIconId1f4a1
panelIcon:bulb:
panelIconText💡
bgColor#E6FCFF

Implement a `no more filters' patternpatterns enabling users to remove a recipe feature request and to express they are done.

Panel
panelIconId1f440
panelIcon:eyes:
panelIconText👀
bgColor#E3FCEF

-

...

Extend your agent even further; talk with look at the Extensions page or talk to your TA if you need for inspiration!

Implementation Tasks Overview

...