This page provides an overview of the first 10 capabilities that you will need to develop for your conversational agent. These capabilities will result in an agent that will be able to recommend recipes to a user from a database with almost 900 recipes.
Each section below has the same structure: a short description, a task overview, and a link to more detailed instructions. The tasks for each capability come in three, differently color-coded parts:
Tasks related to creating and extending your Dialogflow agent.
Tasks related to implementing Prolog code for conversational patterns, responses, and agent logic.
Tasks related to making the visuals (screens) that display information in an engaging way to a user.
When you have implemented the first 10 capabilities of your conversational agent, it is up to you to add one or more additional capabilities (see Agent Capability 11+: Extend Your Agent below) that you decide your conversational agent should have. We provide some general suggestions to help you get started to think about some useful capabilities that you can add.
Getting Your Conversational Agent Up and Running
Summary Description
The first step is to get your conversational agent up and running. There is one ingredient that is still missing, but required before you can run the code provided to you. You need to create your own Dialogflow agent that you will use throughout the project and connect it to the MARBEL agent that manages the dialog (or conversation) between a user and your agent. When you have created this agent, you will be able to run your agent. Next, you will also be asked to put something in the agenda of the MARBEL agent to get things going. And, last but not least, you need to add code for creating an initial start screen (a simple webpage). When you have done this too, you can run your conversational agent and should see the start webpage that you created. Your agent won’t do any talking yet, though. It is just a first step.
Implementation Tasks Overview
Create and prepare your Dialogflow agent (only one, share within team).
Insert the start pattern into the agenda of your MARBEL agent.
Make a Start webpage.
Instructions
Getting Your Conversational Agent Up and Running
Agent Capability 1: Greet, and Self-Identify
Summary Description
Natural conversations are typically opened. Our agent should not just straight away embark on the task of recommending a recipe. It should first secure the attention of its user. Opening a conversation is a basic conversational competence. A common way of opening a conversation is by greeting each other. You should provide your agent with this basic conversational competence too. It should, moreover, be able to introduce itself to its user as in the following conversational pattern. A welcoming webpage should also be created.
A: Hello.
A: My name is ____*.
U: Hi!
* insert your agent’s name here
Implementation Tasks Overview
Add an intent for performing a greeting in Dialogflow.
Implement two greeting patterns, and a Prolog rule for generating a self-identification.
Make a welcoming page.
Instructions
Capability 1: Greet, and Self-Identify
Agent Capability 2: Request a Random Recipe Recommendation
Summary Description
The second capability will enable the agent to recommend a recipe when a user does not care (to refine) what kind of recipe they are looking for (see the example conversational pattern below). A new pattern will be introduced to this purpose for selecting a recipe, and a new intent should be added to your Dialogflow agent to enable understanding user requests for recommending “just some recipe”. Quite some work will need to be done for introducing the first code needed for retrieving recipes from the recipe database. The first versions of two new pages will also need to be created. One page for making clear to the user that they should inform the agent about features of recipes that help refine the selection of recipes and clarify what the user is looking for. Another page for asking a user to (dis)confirm that the recipe that the agent has selected and recommends to the user is what the user is looking for.
A: What recipe would you like to cook?
U: Please, just recommend me something.
A: What about ___*?
* insert a recipe name here (from the agent’s database)
Implementation Tasks Overview
Add an intent for requesting a random recipe recommendation.
Implement a first recipe recommendation pattern and related text responses.
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
A: What recipe would you like to cook?
U: I'd like to make ____ *.
A: ____* is a great choice!
* insert name of the recipe here
Implementation Tasks Overview
Add an intent for a specific recipe request and a recipe entity.
Implement a second recipe recommendation pattern.
-
Instructions
https://socialrobotics.atlassian.net/l/cp/SVWuvq0K
Agent Capability 4: Filter Recipes by Inclusion Recipe Categorical Characteristic
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.
* insert name of an ingredient here
Implementation Tasks Overview
Add an intent for filtering recipes and ingredient entity.
Implement feature request patterns and responses, and Prolog rules for filtering recipes, has ingredient rule.
Make an update and create recipe selection pages.
Instructions
Capability 4: Filter Recipes by Inclusion Categorical
Agent Capability 5: Filter Recipes on Number of Ingredients
Summary Description
A: What recipe would you like to cook?
U: I'd like to make a recipe with ____ * ingredients.
A: Here is a list of recipes that fit your preferences.
* insert a number here
Implementation Tasks Overview
Extend the intent for filtering recipes.
Implement additional rules for filtering recipes and associated helper predicates.
Make a confirm recipe details page.
Instructions
Capability 5: Filter by Numerical Characteristic
Agent Capability 6: Filter Recipes by Specific Features They Have
Summary Description
A: What recipe would you like to cook?
U: I'd like to make a ____ * recipe.
A: Here is a list of recipes that fit your preferences.
* insert a recipe feature such as vegan, for example, here
Implementation Tasks Overview
Extend the intent for filtering recipes with additional recipe features.
Implement additional helper predicates and ingredient hierarchy rules.
-
Instructions
Capability 6: Include Indirect Characteristic
Agent Capability 7: Filter Recipes by Exclusion Recipe Categorical Characteristic
Summary Description
A: What recipe would you like to cook?
U: I want a recipe without ____ *.
A: Here is a list of recipes that fit your preferences.
* insert an ingredient such as salt here
Implementation Tasks Overview
Extend the intent for filtering recipes with phrases that exclude ingredients.
Implement additional helper predicates for filtering recipes.
-
Instructions
Capability 7: Exclude Categorical Ingredient
Agent Capability 8: 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!
A: Can you confirm ___* is the recipe you would like to cook?
U: Yes. (Alternatively: No.)
A: Great. (Alternatively: That is Unfortunate. [Back to the first line])
* insert name of recipe here
Implementation Tasks Overview
Add confirmation, no, and farewell intents.
Implement confirmation and farewell patterns.
Make a farewell page.
Instructions
Capability 8: Confirm or Deny recipe and Closing
Agent Capability 9: Basic Conversation and Conversation Repair
Summary Description
“Thank You”, “What can you do?” and Repairing
Implementation Tasks Overview
Add appreciation, fallback and check capability intents.
Implement patterns for repair and conversation enrichment, and the check capability pattern.
-
Instructions
Capability 9: Enriching Conversation
Agent Capability 10: Enable Filter Removal and Showing of Filters
Summary Description
Implementation Tasks Overview
Add intents for removing a preference (filter) and for enabling users to say they do not want to add more preferences.
Implement a `no more filters' pattern.
-
Instructions
Capability 10: Remove a Filter and See Recipes on Demand
Agent Capability 11+: Extend Your Agent (Make it Nicer)
Summary Description
Extend your agent even further; talk with your TA if you need inspiration!
Implementation Tasks Overview
Be creative, blow your minds.
Be creative, blow your minds.
Be creative, blow your minds.