FoodAnalyzer / app.py
vplearnstocode's picture
Create app.py
4e38514 verified
import os
import google.generativeai as genai
import streamlit as st
from dotenv import load_dotenv, find_dotenv
from PIL import Image
load_dotenv(find_dotenv())
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
def get_gemini_response(input, image):
model = genai.GenerativeModel("gemini-1.5-pro-latest")
response = model.generate_content([input,image[0]])
return response.text
def input_image_setup(uploaded_file):
# check if a file has been uploaded
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")
st.set_page_config(page_title="Vaibhav's Nutrition Monitor", page_icon="🔮")
st.header("Vaibhav's Nutrition Monitor")
# input=st.text_input("Input Prompt: ",key="input")
uploaded_file = st.file_uploader("Upload an image of the food item", type=["jpg", "jpeg", "png"])
image = ""
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption='Uploaded Image.', use_column_width=True)
submit = st.button("Tell me about total calories")
input_prompt="""
You are an expert in nutritionist where you need to see the food items from the image
and calculate the total calories, also provide the details of every food items with calories intake
is below format
1. Item 1 - no of calories
2. Item 2 - no of calories
----
----
Finally you can also mention whether the food is healthy or not. Mention the percentage
split of protein, carbs and fats in the food item. Mention total fiber content in the food item.
Also mention any other important details about the food item.
"""
## If submit button is clicked
if submit:
image_data=input_image_setup(uploaded_file)
response= get_gemini_response(input_prompt,image_data)
st.subheader("Food Analysis:")
st.write(response)