Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

The information provided here should be sufficient for you to complete the project. For those of you who are interested and want to learn more about conversational patterns and the related coding scheme that we use here (e.g. C4, etc.), see: Moore, R. J., Arar, R. (2019), Conversational UX Design: A Practitioner's Guide to the Natural Conversation Framework. ACM.

Background Knowledge Preparation

Before beginning your project we would like you all to familiarize yourself with some background knowledge needed to successfully complete your project. These tools are Git and Dialogflow.

Everything we think you need to know can be found here: 2023: Getting Started: What to Know About Git and DialogFlow

To test your knowledge of these subjects there are two Canvas quizzes on the subjects that must be completed.

Additionally on the page 2023: Getting Started: The Tools Used we explain and help you set up the tools needed to complete this project.

Please complete the instructions on both of these pages before beginning your project.

The Project

In this project, you will be developing a conversational cooking assistant that uses speech to interact and is able to conduct a conversation for selecting a recipe to cook. Automatic Speech Recognition (ASR) has matured to a level where it is possible to categorize a user's utterances adequately to make sense out of them. Also, Speech Synthesis (TTS) can be used to produce well-pronounced spoken utterances from written text. Yet, conversational agents have not become mainstream, and whoever has used a home assistant (Google Home or Apple Siri) has experienced being misunderstood. These assistants are typically able to perform well on basic Question-Answering (QA) interactions, which most of the time consist of just two conversational turns: a question and an answer. However, conducting longer conversations tends to be more challenging. This is because a longer conversation can take (too) many directions and the chance that a user says something unexpected significantly increases. We will investigate this challenge in this project.

In this project, you will develop a cooking assistant that conversationally assists a user in selecting a recipe based on a variety of filters, whereas the instruction of the recipe itself is not in the scope of the Project MAS course. We chose to focus on the recipe selection activity of cooking support, since several challenging elements of building a conversational agent come together in this segment. First, there are many different ways in which this conversation may conducted, with different aspects of recipes that may be specified by the user to come to a selection (type of ingredients, cooking duration, course, etc.), and the option to mention multiple of those elements in one utterance. Second, the agent has to cover a broad knowledge space to understand what the user is looking for. Third, the agent has to reason over its database of recipes to filter for recipes that fits the user’s preferences.

You are provided with a prolog knowledge base of close to 1,000 recipes and their components, that still requires an effort of your group to make it usable by the cooking assistant. In the instructions we give you we walk you through how to fill in the blanks. If you fill in the blanks the agent should work… but it will be pretty basic…

But what would be really cool (and earn you more than a passing grade) is to extend this bot with your own flare and ideas. Read a bit more about this in our Extensions section at the end of your project.

Note for later: When the bots start it needs to be given an initial agenda or list of pattern steps to go through. This list of patterns should be inserted on line 26 in dialog_init.mod2g. The list should be as follows: the greeting pattern, the selection pattern and then the farewell or closing pattern. 

After you finish and extend your bot you get to do some testing! I mean if you bother to code it you should probably make sure it works… You will also have the privilege of checking out another team’s bot. But that's a later problem(after your bot is done circa Week 3) that you can read about in ourTesting and Evaluation section.

After all of that, we have blessed you with the privilege of writing a report about the experience. If you paid attention while working through the instructions and in class, it should really be nice and easy. More information on that can be found in the 2023: End Report Section.

For now, let’s get started with the fun stuff: dividing up work among teammates.

Team Forming and Initial Set Up

At the start of the course, you are expected to have formed teams of 6, which is divided into three roles: Dialogflow and Filters (2 team members); Visual Support (2 team members); and Patterns and Responses (2 team members). The two team members with a similar role will work together, but the three teams of two need to communicate well to make sure those three aspects of the agent are integrated.

Instructions for the tools and setup can be found here:

2023: Getting Started: The Tools Used

The Roles: D&F, VS, P&R

At the end of this project, you and your team should have a fully functioning conversational agent!

The bot is made up of parts in Eclipse and Dialogflow which you need to help finish. The goal of this project is to use Dialogflow, MARBEL, and Prolog to provide a conversational agent with the knowledge to assist us in a certain task. In this case, we have a crazy large recipe database(recipe_database.pl) and we really need some help choosing what to eat. We should be able to tell the agent certain criteria and it should provide us with a fitting recipe. As mentioned your team will be split into pairs. The sections of work are described a briefly below so you can try and figure out who wants to do what. Make sure you also read the Evaluating Your Bot page as you should be continuously testing your bot once it is minimally functioning.

Dialogflow and Filters

Do you want to get to know a very cool Google Cloud tool? In the introductory part of the course, you should have learned a bit about Dialogflow. If that sounded super cool to you then this could be the section for you! You will create Intents, Entities, and Prolog Filter Rules in order to provide the agent with the vocabulary comprehension and filtering abilities it needs to converse about recipes.

For more information go to the Dialogflow and Filters Section:

Dialogflow and Filter Functions Section

Visual Support

Do you want to get creative? Your agent will not only have a conversational component but a visual one. The program uses dynamic webpages to provide the user with visual support in their conversation. This includes not only subtitles to the conversation but also so much more. If you are ready to break out a bit of HTML and Prolog, you can create cool pages through rules. The Visual Support team will incorporate visuals to enrich the conversation.

For more information go to the Visual Support Section:

Visual Support Section

Patterns and Responses

Do you like to have a conversation? Well either way this section could be of interest to you. The patterns and responses section focuses on the conversation part of the conversational agent. Your bot will not be the most robust it can only handle some specific tasks. Thus, we create patterns of what we think conversations in the agent’s intended domain will look like so it knows what to expect and how to respond. You will encode these patterns in Prolog and add responses for every situation.

For more information go to the Pattern and Responses Section:

Patterns and Responses Section

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.