- Introduction
- Problem Statement
- Features
- Why BetterChef is Different from ChatGPT
- Examples
- Installation
- Usage
- Project Structure
- Contributing
- License
Welcome to BetterChef, your AI-powered cooking assistant! Our app is designed to revolutionize the way you cook by providing instant access to a wealth of recipes, cooking techniques, and personalized culinary advice.
Have you ever seen a delicious dish or food item and wondered how to make it? Or perhaps you have a list of ingredients but don't know what to cook? Finding reliable and comprehensive cooking advice can be challenging. Traditional search engines and recipe websites often return inconsistent results, making it difficult for users to find accurate and relevant information quickly. BetterChef solves these problems by allowing you to simply snap a picture of the dish or input a list of ingredients, and it leverages advanced AI to deliver precise, sourced culinary guidance tailored to your needs.
- Extensive Recipe Database: Scraped data from Wikibook of over 4.6 GB or +400000 recipes for accurate retrieval and suggestions.
- Specialized Interface: Designed specifically for culinary tasks, allowing users to explore recipes, cooking techniques, and receive dish suggestions.
- Multimedia Interaction: Supports image uploads for dish recognition and provides video tutorials related to cooking at a click.
- Retrieval-Augmented Generation (RAG): Uses RAG to ensure accurate and relevant cooking advice by retrieving information from a curated dataset.
- Interactive AI Assistant: Provides real-time answers to your cooking queries.
While ChatGPT is a versatile conversational AI, BetterChef is specialized for culinary tasks. Our app leverages a curated dataset from Wikibook to provide accurate and context-specific cooking advice. The Retrieval-Augmented Generation (RAG) model ensures that the information is not only accurate but also relevant to your culinary needs. Additionally, BetterChef offers multimedia interactions, such as dish recognition from images and cooking tutorial videos, which are not available in general-purpose AI like ChatGPT.
The AI assistant in BetterChef ensures that unsafe or inappropriate queries are handled responsibly, as shown below:
This example highlights the differences between ChatGPT and the RAG model ("BetterChef"). ChatGPT provides a basic answer that lacks detail, whereas BetterChef delivers a thorough and culturally accurate recipe for Moroccan Tagine, demonstrating its ability to offer precise and relevant culinary guidance.
- Clone the repository:
git clone https://github.com/slfagrouche/Betterchef-AI-Powered-Cooking-App.git
- Navigate to the project directory:
cd Betterchef-AI-Powered-Cooking-App - Use Python 3.12.3 in the cloned repository folder:
pyenv local 3.12.3 - Install the required packages:
pip install -r requirements.txt
- Run the main application:
python src/app.py
- Open the web interface in your browser.
Betterchef-AI-Powered-Cooking-App/
│
├── LICENSE # Open-source license, if one is chosen.
├── README.md # The top-level README for developers using this project.
│
├── data/ # Data folder for all project-related data files.
│ ├── raw/ # Store original, immutable data dumps here.
│ └── processed/ # Store processed, cleaned data sets here.
│
├── scripts/ # Scripts that are not part of the main application logic.
│ ├── scrape_data.py # Script for scraping data.
│
├── src/ # Source code for use in this project.
│ ├── app.py # Main application logic.
│ ├── config.py # Configuration settings, API keys, constants.
│ ├── datamanagement.py # For downloading and processing data to put in the database.
│ ├── database.py # Database-related classes and functions.
│ └── utils.py # Utility functions and classes.
│ └── policy.py # Defining our policy for responsible AI
│
├── diagrams/ # Diagrams, flowcharts, and other graphical representations of the app workflow.
│ └── workflow.png
│
├── tests/ # Test cases for the application.
│ └── test_mongodb_connection.py # Test the database interactions.
│
├── requirements.txt # The requirements file for reproducing the environment.
└── .gitignore # Specifies intentionally untracked files to ignore.
We welcome contributions to make BetterChef even better! Your input helps us learn, inspire, and create a stronger community. Any contribution is highly valued.
If you have suggestions for improvements, please fork the repository and create a pull request. You can also open an issue with the tag "enhancement." Don’t forget to give the project a star! Thank you for your support!
Steps to Contribute:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.





