-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnutrionist2.py
63 lines (52 loc) · 2.27 KB
/
nutrionist2.py
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
# everything else is same , just that prompt is different
import os
import streamlit as st
import google.generativeai as genai
from dotenv import load_dotenv
from PIL import Image
load_dotenv()
genai.configure(api_key=os.environ['GOOGLE_API_KEY'])
def get_response(input_prompt,image):
model=genai.GenerativeModel("gemini-pro-vision")
response=model.generate_content([input_prompt,image[0]])
return response.text
def input_image_details(uploaded_file):
if uploaded_file is not None:
# read the file into bytes
bytes_data=uploaded_file.getvalue()
# below(image_parts) is the format specificaly required by google gemini pro
image_parts=[
{
"mime_type":uploaded_file.type, ## get the mime type of uploaded file
"data":bytes_data
}
]
return image_parts
else:
raise FileNotFoundError("No File uploaded")
st.set_page_config(page_title="CALORIES TRACKER")
st.title("CALORIES TRACKER")
uploaded_file=st.file_uploader("Upload the picture of food...",type=["png","jpg","jpeg"])
submit=st.button("Check Calories")
image=""
if uploaded_file is not None:
# as soon as we upload a file, image should get uploaded below
image=Image.open(uploaded_file)
st.image(image,caption="Uploaded Image",use_column_width=True)
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
----
----
You can also tell whether the food is healthy or not and also mention the percentage split of the ration of carbohydrates,fats,fibres,sugar and other important things required in our diet
Also tell how much workout (in hours or minutes) is required to burn all those calories, also suggest what type of exercises they must do.
"""
## If submit button is clicked
if submit:
image_data=input_image_details(uploaded_file)
response=get_response(input_prompt,image_data)
st.subheader("The Response is")
st.write(response)