-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathnutri.py
More file actions
73 lines (53 loc) · 2.21 KB
/
nutri.py
File metadata and controls
73 lines (53 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
### Nutrition Management APP
from dotenv import load_dotenv
load_dotenv()
import streamlit as st
import os
import google.generativeai as genai
from PIL import Image
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
## Function to load Google Gemini Pro Vision API And get response
def get_gemini_repsonse(input,image,prompt):
model=genai.GenerativeModel('gemini-2.5-pro')
response=model.generate_content([input,image[0],prompt])
return response.text
def input_image_setup(uploaded_file):
# Check if a file has been uploaded
if uploaded_file is not None:
# Read the file into bytes
bytes_data = uploaded_file.getvalue()
image_parts = [
{
"mime_type": uploaded_file.type, # Get the mime type of the uploaded file
"data": bytes_data
}
]
return image_parts
else:
raise FileNotFoundError("No file uploaded")
##initialize our streamlit app
st.set_page_config(page_title="NutriScan App")
st.header("NutriScan 🥗")
st.write("Revitalize Your Wellness, One Bite at a Time with NutriScan!😋")
input=st.text_input("Let me Check : ",key="input")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
image=""
if uploaded_file is not None:
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Image.", use_container_width = True)
submit=st.button("Tell me the 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
and do not mention that you are an AI can can't check the nutrition value and give response in below format
1. Item 1 - no of calories
2. Item 2 - no of calories
----
----
"""
## If submit button is clicked
if submit:
image_data=input_image_setup(uploaded_file)
response=get_gemini_repsonse(input_prompt,image_data,input)
st.subheader("Here you go:🌿🤏")
st.write(response)