AI Nutritionist is an innovative application that leverages Google's Gemini Pro Vision API to provide real-time nutritional analysis of food images. The system offers personalized dietary recommendations and detailed nutritional breakdowns, making healthy eating more accessible through artificial intelligence.
In an era where nutrition awareness is crucial for public health, AI Nutritionist bridges the gap between technology and dietary knowledge. This application demonstrates the practical application of computer vision and large language models in nutritional analysis.
import streamlit as st import os import google.generativeai as genai from PIL import Image from dotenv import load_dotenv # Load environment variables and configure API load_dotenv() genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
def input_image_setup(uploaded_file): if uploaded_file is not None: bytes_data = uploaded_file.getvalue() image_parts = [ { "mime_type": uploaded_file.type, "data": bytes_data } ] return image_parts else: raise FileNotFoundError("No file uploaded")
def get_gemini_response(input, image, prompt): model = genai.GenerativeModel('gemini-pro-vision') response = model.generate_content([input, image[0], prompt]) return response.text
The system uses a specialized prompt template for nutritional analysis:
input_prompt = """ You are an expert nutritionist analyzing food items from the image. Calculate total calories and provide details for each food item: 1. Item 1 - no of calories 2. Item 2 - no of calories ... Please also indicate: - Overall health rating - Macronutrient ratio (protein/carbs/fats) - Fiber content - Sugar content - Other important nutritional elements """
st.set_page_config(page_title="Nutritionist Generative AI Doctor") st.header("Nutritionist Generative AI Doctor") # User input controls input = st.text_input("Input Prompt: ", key="input") uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) # Image display if uploaded_file is not None: image = Image.open(uploaded_file) st.image(image, caption="Uploaded Image.", use_column_width=True) # Analysis trigger submit = st.button("Tell me the total calories") if submit: image_data = input_image_setup(uploaded_file) response = get_gemini_response(input_prompt, image_data, input) st.subheader("The Response is") st.write(response)
The application provides detailed nutritional information including:
Image Processing
API Response Time
User Experience
AI Nutritionist demonstrates the successful integration of advanced AI technology in dietary analysis. The system provides accurate, real-time nutritional information while maintaining user privacy and security.
App Link : https://huggingface.co/spaces/AbhayBhaskar/AI-Nutritionist
There are no datasets linked
There are no datasets linked