NatureSpotlight / app.py
ManasviD's picture
Create app.py
cfafec9 verified
raw
history blame
2.09 kB
import streamlit as st
import os
import google.generativeai as genai
from PIL import Image
## Function to load Google Gemini Pro Vision API And get response
def get_gemini_repsonse(input,image,prompt):
model=genai.GenerativeModel('gemini-1.5-flash')
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="Biodiversity Detection App")
st.header("Biodiversity")
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("Find the Species")
input_prompt="""
you are an expert taxonomist where you need to see the image and return detailed info about the species including its Name,common name,Kingdom,phylum and class,family ,genus,native country .
Also generate a short informatie ,engaging 150 words story like national geographic story about that species,it's life and history with other images of same species (in both text and audio format).
the image you can answer is of only living organisms like animals,plants etc.
Do not return results for non-living objects.
If image does not contain living organism or something which you do not know respond with invalid input.
"""
## If submit button is clicked
if submit:
image_data=input_image_setup(uploaded_file)
response=get_gemini_repsonse(input_prompt,image_data,input)
st.write(response)