Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
panelIconId1f525
panelIcon:fire:
panelIconText🔥
bgColor#FFF0B3

You are on fire!

If you are here, you should have been successful in completing a basic version of your recipe recommendation agent with exclusion.

...

To be safe, before beginning with your extensions make a new branch on your repository call it inclusion-exclusion.

Your main branch will then have inclusion, exclusions, and extensions.

For relevant grading information on Extensions check the Assessment Rubric, it could influence your decision on which extensions to choose.

Instruction Page: Extensions for Your Agent

In this section, we encourage you to think beyond the basic requirements and implement extensions that enhance your agent’s capabilities, user experience, or sophistication. The more creative, innovative, or sophisticated technically challenging your design idea is and ideas are—and the better your implementation of it is, the more points you will get for it. Feel free to go beyond what we have suggested for this reason. Even if your design idea has not been perfectly implemented and testing still reveals issues with it, we may still award you some points if you explain everything well in your report: you should justify the extensions and, in case it is not working optimally, explain what is not working and how you could fix it.

We provide a range of suggestions below that you can consider for extending your agent. Again, we provide some examples, but you should feel free to explore other options we do not mention below. Here is a list of suggestions that you can use for inspiration:

Extensions for Dialogue Patterns

ADD INTRO SENTENCE

...

Fallback → Probability

...

Refine the responses of your agent: An easy way to make your agent’s responses more interesting is to make sure you add a lot of variety and choice in your agent’s responses. In the assignment instructions, we already suggested that you can use any tool that you can think of to generate more example phrases for your agent that you can add to the responses.pl file. A more challenging thing to do is to contextualize your agent’s responses (they may still sound quite generic or repetitive, making your agent sound even more robotic than it already does). But if not, or you did so only for some contexts, you might want to think about how you can further contextualize and refine your agent responses at various places during a conversation. In principle, agents should, for example, have helpful recovery prompts for each step of the dialog. Here are some useful pointers/ideas:

  • Check out this and other Best practices for repair suggested by Google.

  • More specific feedback: rather than stating misunderstanding, the agent could provide more information on what aspect of the user utterance it did not understand, or provide pointers to what the user can say at that point in the conversation.

  • Suggest alternatives: A breakdown may be due to the fact that a user does not know how to continue the conversation. In that case, the agent could suggest one or more ways to continue.

...

implementation—the more credit you will receive.

Even if your extension isn't fully functional or has issues during testing, you can still earn points by explaining your choices, identifying limitations, and proposing fixes in your report. Justify your extensions and provide a clear breakdown of their implementation and evaluation.

Below, we provide suggestions for potential extensions. These are for inspiration only, and you are encouraged to explore ideas beyond this list.

Info

Extensions can also be done with the support of Dialogflow if you decide not to connect your entire pipeline. If you do connect your pipeline we expect extensions to be done with your intent and slot classifier. See Dialogflow: Creating Intents and Entities for information on how to change your Dialogflow agent.

NOTE: As we mentioned this is the first year we have used this instruction set and code base, after making some major changes. If you find a way to better our code or correct some serious issues in it, we will count that as an Extension (within reason). For example, currently, I have an issue where if I have a sentence that has two of the same slot type ingredient - ‘pepper’, and ingredient - ‘salt’ they are sometimes taken as the same slot so it looks for ‘salt and pepper’ in my recipe database. If you are unsure if we will count something as an extension feel free to ask your TA (and if they are unsure they can ask Bella).

...

1. Extensions for Dialogue Patterns

To make your agent more conversational and engaging, consider the following:

Refine Responses

  • What? Improve the variety, context, and relevance of your agent's responses to avoid repetitiveness and make the agent sound less robotic.

  • How?

    • Add multiple example phrases for the same response in the responses.pl file using tools like ChatGPT or manual input.

    • Contextualize responses to specific conversation states, such as providing helpful recovery prompts for misunderstood queries.

  • Ideas:

    • Use best practices for repair (e.g., from Google) to refine recovery prompts.

    • Provide more specific feedback during breakdowns, explaining what aspect of the query was unclear or suggesting alternative ways to phrase the request.

    • Enable user-initiated repair, allowing the agent to respond appropriately when users express confusion (e.g., “What do you mean by ‘X’?”).

    Add a capability that enables the agent to know how to respond to such a user move. That is, make the agent understand such user-initiated repair, and respond with an appropriate explanation to address the user’s move.Small

Introduce Small Talk

  • What? Make the agent more engaging by adding small talk capabilities related to the recipe domain: small talk can make the agent more engaging for a user. It would require you to think of small talk patterns, either initiated by the user or by the agent, that can be naturally integrated at some point in the recipe recommendation conversation. You would need one or more new intents, patterns, and responses.

  • Ask to restart at any point in time: you would need to add a pattern and intents.

Extensions for Visual Support

ADD INTRO SENTENCE

  • Extend Visuals: In the visuals section, we already suggested some ways to extend it. We mostly mentioned some aesthetic changes that you can add. But you can also think about making the visuals more useful by adding something that makes the visuals more supportive. An example would be to visualize the progress made thus far, or make the complete filtering history available at any point. Another example could be to add a rating system for the agent to get feedback. However, keep in mind that the interaction should primarily be conversational in nature!

  • Agent personality, style, and characteristics: You can work on designing and shaping the responses from your agent to suggest a particular personality, to provide it with a specific conversational style, or with social characteristics that may increase the user experience. See e.g. this paper for more ideas.

Extensions for Recipe Filtering and Recipe Capabilities

ADD INTRO SENTENCE

  • Duration already set up in data

  • Add more types of recipe requests: Add a new filter by adding logic to .

  • How?

    • Add new intents and patterns for small talk initiated by either the user or the agent.

    • Example: The agent could respond to "What’s your favorite recipe?" with a lighthearted answer.

Enhance Personality

  • What? Shape the agent’s responses to reflect a particular personality, conversational style, or social characteristics.

  • How? Design responses to convey friendliness, humor, or formality based on user interactions.

  • Note: Gordon Ramsey is overdone. Avoid strong stereotypes, think about the ethicality of agent personalities.

...

2. Extensions for Visual Support

While the primary interaction should remain conversational, visuals can enhance the user experience by providing supplementary information. Consider these ideas:

Extend Visuals

  • What? Make visuals more useful by adding interactive or informative elements.

  • How?

    • Show a visual progress tracker indicating how far the user has progressed in recipe filtering.

    • Add a filtering history view, allowing users to see and review their past selections.

    • Include a rating system to collect user feedback on the agent’s performance.

...

3. Extensions for Recipe Filtering and Capabilities

Extend the recipe filtering and selection logic to include new capabilities:

Add More Recipe Filters

  • What? Add new filters for recipe attributes not currently supported (e.g., easy recipes, fast recipes, preparation time, number of steps).

  • How? Update the recipe_selection.pl file and entity to filter recipes in a new way. An easy one is adding a filter for other recipe attributes present in to include the new logic and entities, using attributes from the recipe_database.pl And there are many more you can come up with yourselves file.

Check

...

Ingredients

...

  • What? Add functionality to verify whether the user has all the required ingredients : before confirming the recipe, your agent could ask a user if they can check they have all ingredients that the recipe requires. This would require a new pattern, and intents, and perhaps new visuals.

  • Read out steps

  • indicate servings

Extensions for Intent/Slot Classification

idea - fallback to probability threshold…

extensions to intent and slot classifier - hyperparameter tuning. training augmentation, model augmentation

  • .

  • How? Create new patterns and intents for ingredient checks, and potentially update visuals to prompt users to verify their pantry.

Additional Features

  • Read Out Steps: Add a capability for the agent to read out recipe steps interactively.

  • Indicate Servings: Include serving size information in the recipe details.

...

4. Extensions for Intent and Slot Classification

Enhance the performance of your intent and slot classifier:

Fallback to Probability Threshold

  • What? Add a fallback mechanism for classification confidence.

  • How?

    • Use a probability threshold to identify low-confidence predictions and trigger fallback responses or recovery prompts.

Classifier Improvements

  • What? Improve classification performance by applying techniques from Model Improvement.

  • How?

    • Experiment with hyperparameter tuning, training augmentation, or model augmentation to optimize your classifier.

...

Your Creativity Counts

These suggestions are starting points—your agent is a platform for innovation. Explore ideas that resonate with you and enhance the user experience. Be creative, justify your choices in your report, and strive for thoughtful implementation and testing. Even if some ideas don't fully succeed, demonstrating your problem-solving process will earn you credit.