Inspiration

The idea for Flavour Fiesta came because i find it difficult to plan and find recipes for upcoming meals and end wasting a lot of time thinking about what i'm going to cook. I end up eating junk foods which are unhealthy. I'm sure there are very many people who have the same challenge. So i built the website to help with planning meals from a recipes dataset collected from kaggle.

What it does

This project is designed to manage recipes, meal plans, and user preferences, leveraging a Neo4j database and Modus Framework to create a robust and flexible backend. It enables functionalities such as recipe discovery, personalized recommendations, shopping list generation, and meal planning. It also intergrates LLM's to chat with Knowledge Graph or the recipe dataset to create Meals and recipes out the fly and recommend recipes through text-to-cypher GraphRag pattern.

How I built it

  • Framework: I chose the Modus framework for its ability to handle modular and high-performance application development.
  • Language: AssemblyScript was my go-to language because it combines type safety with the performance benefits of WebAssembly.
  • Key Components:
    • Text-to-Cypher Pattern: This was the core functionality that translates user queries into Cypher commands to interact with the graph.
    • Tool Calling: I implemented a system that allows the agent to perform external actions and retrieve dynamic data, enhancing its capabilities.
    • Memory Integration: Adding memory was essential for enabling the agent to maintain context across multiple turns of a conversation. It was possible to do so by storing conversations in neo4j database.

Challenges I ran into

  • Implementing Tool Calling: Creating a reliable tool-calling system that worked seamlessly with the agent took multiple iterations and a lot of testing.
  • Adding Memory: It was challenging to integrate memory in a way that didn’t compromise performance while still allowing the agent to manage contextual information effectively.
  • LLM Accuracy Issues: I faced significant challenges with the LLM generating inaccurate Cypher results, which required fine-tuning and constant adjustments.

Accomplishments that I'm proud of

  • Building a flexible AI agent that can interact with a recipe knowledge graphs.
  • Successfully integrating a memory system that enables meaningful, multi-turn conversations.
  • Developing a smooth text-to-Cypher mechanism that makes it easy for non-technical users to query knowledge graphs.
  • Creating an full web application with functionalities such as recipe discovery, personalized recommendations, shopping list generation, and meal planning.

What I learned

  • The value of modus architecture when dealing with complex functionalities like tool calling and memory.
  • How to balance performance and usability when working with AssemblyScript and the Modus framework.

What's next for Modus-AI-Agents-with-Knowledge-Graphs

  • Allow users to add their recipe: I plan to add functionalities where users can create their own recipe and get feedback from other users
  • Automatically generate meal plan: Use LLM to automatically generate meal llans based on user prefences.

Built With

  • assemblyscript
  • modus
Share this project:

Updates