DEV Community

Cover image for NutritionAI: Your Personal AI-Powered Nutrition Guide for Smarter Eating!
Ritesh Hiremath
Ritesh Hiremath Subscriber

Posted on

NutritionAI: Your Personal AI-Powered Nutrition Guide for Smarter Eating!

This is a submission for the Open Source AI Challenge with pgai and Ollama

What I Built

NutritionAI is an AI-powered application that helps users track their dietary habits by allowing them to upload images of their meals. The app analyzes these images to provide detailed nutritional insights and personalized recommendations based on individual dietary goals and preferences.

How it Works

  • Diet Preferences: Users first input their dietary goals and health needs, which are sent to the backend. This data is embedded using the Mistral model and stored in a pgvector database.

This is the schema for the user's diet preferences

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    age INT NOT NULL,
    height FLOAT NOT NULL,
    weight FLOAT NOT NULL,
    caloric_target INT NOT NULL,
    protein_target INT NOT NULL,
    dietary_preferences TEXT[],  
    complications TEXT[],      
    embedding VECTOR             
);
Enter fullscreen mode Exit fullscreen mode
  • Meal Upload & Image Analysis: Once on the main page, users can upload a meal image. The backend processes the image and sends it to the Llava model, which identifies food items and dishes.

  • Nutritional Analysis: The identified food items are passed to the Mistral model to generate nutritional information. These stats are embedded as vectors, saved in the database for future use.

This schema represents the food items.

CREATE TABLE food_items (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,   
    embedding VECTOR,              
    nutrition_info JSONB          
);
Enter fullscreen mode Exit fullscreen mode
  • Similarity Check: The new meal vector is compared with the user's dietary preferences using cosine similarity (via pgai) to evaluate alignment with the user's goals.

  • Personalized Recommendations: Based on similarity scores, NutritionAI analyzes the nutritional data and suggests diet adjustments that best meet the user's preferences and health objectives.

Architecture

Image description

Demo

Here's the link to the working project
nutrition-ai-bay

Disclaimer: The generation of nutritional stats and personalized recommendations may take around 5-10 minutes, as the Node.js application is hosted on an Amazon EC2 t2.large instance.

Source code:

GitHub logo Ritesh2351235 / nutrition-ai

NutritionAI is an AI-driven application that allows users to upload meal images for nutritional analysis. It provides personalized dietary recommendations based on user profiles and food item embeddings.

NutritionAI

This is a submission for the Open Source AI Challenge with pgai and Ollama

NutritionAI is an innovative application designed to help users achieve their dietary goals by providing personalized nutritional insights. By allowing users to upload pictures of their daily meals, the app analyzes the nutritional content and offers tailored recommendations based on individual dietary needs.

NutritionAI simplifies the journey to healthier eating by enabling users to sign up easily, upload meal images, and receive detailed nutritional statistics that align with their diet goals.

Toppage

Key Features

  • Sign Up Form: Create a personalized account to track your dietary journey.
  • Meal Upload: Easily upload pictures of your meals for analysis.
  • Nutritional Insights: Receive detailed nutritional information for each meal.
  • Personalized Recommendations: Get tailored dietary suggestions based on your profile and preferences.
  • Daily Tracking: Track your nutritional intake and progress towards goals.
  • Health Considerations: Recommendations…

Screenshots

Diet Preferences Page

Landing Page

Main Food Analyzer Page
Main Food Analyzer Page

Tools Used

  • React: Framework for building dynamic user interfaces.
  • Tailwind CSS: Utility-first CSS framework for styling.
  • Node.js: JavaScript runtime for backend development.
  • Express: Framework for handling API requests and routing.
  • Multer: Middleware for processing file uploads.
  • Ollama Models:
    • Llava Model: Analyzes meal images to identify dishes.
    • Mistral Model: Generates nutritional content and embeddings.
  • TimescaleDB (PostgreSQL): Database for storing user and nutritional data.
  • pgvector: Utilized for storing and querying vector embeddings of user profiles and food items, enhancing the accuracy of recommendations.
  • pgai: Integrated to leverage AI capabilities for generating insightful nutritional content and recommendations based on user data.
  • Amazon EC2 (Ubuntu t2.large): Hosts the Node.js application.
  • Vercel: Deploys the frontend application efficiently.

Final Thoughts

Building NutritionAI has been an exciting project(PS: Took me 5 whole days to build this), especially with the challenges of implementing real-time image analysis and generating personalized nutritional recommendations through advanced AI models. With Ollama’s models and PostgreSQL extensions, I was able to create an engaging, user-friendly experience that brings detailed nutritional insights to users' fingertips.

In the future, I plan to enhance NutritionAI with additional features, such as a personalized fitness plan that aligns with users' dietary habits, and tailored meal planning suggestions. Improvements could also include faster processing times and even more advanced dietary analytics.

Prize categories:
Open Souce Models from Ollama
All the extensions.

Top comments (11)

Collapse
 
ritesh_hiremath_eb6abb681 profile image
Ritesh Hiremath

Also do not forget to checkout my new app : FluentAI
FluentAi

Collapse
 
sim123 profile image
Simran

Great work !

Collapse
 
vishwanath_vibhuti_6f93b5 profile image
vishwanath vibhuti

You deserve a lot of praise for your efforts.

Collapse
 
ruthika_kadam_a5707b3c3e4 profile image
ruthika kadam

This is an excellent initiative—truly something unique! I'm excited to give it a try.

Collapse
 
varun_patil_d82f804f87349 profile image
Varun Patil

Quite an incredible job!! Quite impressed about the short time taken to implement such complex code!! Also a very much needed product !!

Collapse
 
pranav_kurtakoti_d1bd1c2e profile image
Pranav Kurtakoti

Great job on NutritionAI! Quite a nice work on making nutrition tracking easy!!!

Collapse
 
kaustubh_kulkarni_8b36bb1 profile image
kaustubh kulkarni

Wow, Ritesh, this is incredible! NutritionAI sounds like a game-changer for anyone looking to make smarter food choices. I love how it brings the power of AI to personal nutrition, making it easier to understand and apply good habits in everyday life. Looking forward to seeing how this develops and helps people build healthier lifestyles—keep up the amazing work

Collapse
 
manav_take profile image
Manav Take

Impressive work! Developing an app for smart eating habits is so relevant today – making healthy choices easier is something many people need. I’m actually working on a similar concept for my college project, and I’d love to collaborate with you on building this further!

Collapse
 
vinayak_chhatni_2d90317a0 profile image
Vinayak Chhatni

This is such an amazing tool, can’t wait to try it! This would help so many people to understand their diet better!

Collapse
 
sanjana_habib_6b60299a3e5 profile image
Sanjana Habib

Well done!! 👏