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-pro-vision') 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, image into numbers bytes_data = uploaded_file.getvalue() image_parts = [ #In dic format { "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="Nutrition and Calories Manager App") st.header("Nutrition and Calories Manager App") input=st.text_input("Input Prompt: ",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_column_width=True) submit=st.button("CHECK") 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 item with calories intake is below format 1. Item 1 -no of calories 2. Item 2 -no of calories ---- ---- Total Calories Also mention about the important nutrients like Protein , Carbohydrates and Fats in each item Put the output in a tabular format with each item in a separate row and details in columns """ ## 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("The Response is") st.write(response)