Versions Compared

Key

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

...

  1. appreciation

    1. If a user expresses appreciation /or gratitude (ex. Thanksfor example: ‘thanks’)

  2. confirmation

    1. If a user wants to agree or say yes

  3. disconfirmation

    1. If a user wants to disagree or say no

  4. farewell

    1. If a user wants to say goodbye

...

checkCapability is the intent for when a user wishes to know what your bot can do. Add some appropriate training phrases. An example would be “What do can you do?”.

Fallback Intent

The Default fallback intent is one of the more important intents and it is a embedded or given intent already present when creating your Dialogflow agent. Fallback intents are triggered if a user's input is not matched by any of the other intents known by the agent, or if it matches the training phrases you input. It is unnecessary to input phrases that are completely unrelated to the topic as that would definitely come back as an unknown intent. Thus, what you should do is think of related phrases that would be close to an intent but should not match it. For example, one could argue “I do not like mushrooms” is food related and has an ingredient entity inside but should not be matched to any other intent because likes and dislikes are not directly discussed with your bot. (However, one could argue you could use I like and I dislike as training phrases for filtering by something, that is a design decision for you to make). This fallback intent should be updated as you add more intents and throughout the project. 

Entities

Before we can continue creating intents we have to create the entities we need, since these will be part of the intent specification for certain entities (e.g.: the presence of an entity type is used as a feature by the Dialogflow classifier model to recognize certain intents by). Some of these entities are given to you in a Folder. For information on how to upload and create entities, you should have read this page. : DialogFlow: Create an Agent, Intents and Entities

Some entities we have were not provided provided by us, and you have to add them yourself (see the list below). We provide an example for most to make sure you have at least a few entries for each entity. The following entities you have to create yourself. If the word you enter has synonyms do not enter , use the synonym option rather than entering them as multiple entity inputs but use the synonym option when adding entity entries.

  1. removekeyword - words that mean to remove something (used to remove filters) ex. removefilters (for example ‘remove’)

  2. timeKeyWord - words that refer to measurements of time

  3. shortTimeKeyWord - ex. fastfor example ‘fast’

  4. negationKeyword - ex. without, don’teasyKeyWord - ex. simpleto specify that something needs to be omitted (for example ‘without’ or ‘don’t’)

  5. easyKeyWord - to specify recipes that are not hard to make (for example ‘simple’)

When you are done your entities page should look as follows:

...

Add filter intent is one of the most important intents. It is used to filter recipes for the user based on a variety of criteria. This is the first intent that employs all the entities we have created. In the user expressions, where the user is asking to filter, the all different entities need to occur and be tagged , as that is the kind of filterin the set of examples. For example, for a training phrase would be like “ I want a Chinese recipe”, we then tag Chinese because it is part of the entities we gave you cuisine, so now ‘Chinese' needs to be tagged as ‘cuisine’, so this phrase can be parsed by Dialogflow in order to apply the filter Chinese to the recipes in our database. The addFilter intent can be found in the folder of the given information. Upload the filterprovided to you, and should be uploaded in Dialogflow by you.

Recipe Filtering Functions Helper Functions

...

To filter the recipes for the user in the way they intend, we parse their utterances with the intents and entities we made in Dialogflow. This then returns the identified intent(for example addFilter) and entity information(cuisine - “Chinese”). We must now take this information and create Prolog rules to access and gather the filtered recipes. This is done via the following functions. The heads of all rules can be seen in recipe_selection.pl and that is where the bodies should be added. We need a few helper functions before we can start filtering these, which are described below.

nrOfIngredients 

...