louiecerv's picture
update remote
76093eb
import streamlit as st
import tempfile
from PIL import Image
import google.generativeai as genai
import os
MODEL_ID = "gemini-2.0-flash-exp"
api_key = os.getenv("GEMINI_API_KEY")
model_id = MODEL_ID
genai.configure(api_key=api_key)
if "model" not in st.session_state:
st.session_state.model = genai.GenerativeModel(MODEL_ID)
model = st.session_state.model
chat = model.start_chat()
mime_type = "image/jpeg" # Use a consistent MIME type for images
def main():
st.title("Image Processing with AI")
img_file_buffer = None
image_path = ""
# Use the camera to capture an image
img_file_buffer = st.camera_input("Take a picture")
if img_file_buffer is not None:
# Save the image to a temporary file
with tempfile.NamedTemporaryFile(delete=False, suffix=".jpg") as temp_file:
temp_file.write(img_file_buffer.read())
image_path = temp_file.name
st.write("Image saved to:", image_path)
#st.image(Image.open(image_path), caption="Captured Image", use_container_width=True)
user_input = st.text_area("Enter your prompt:", height=200)
prompt =f"Refer to the image. Perform the task or answer the question {user_input}"
if st.button("Process the image"):
if prompt:
with st.spinner("Processing..."):
# Upload the file with the correct MIME type
file_data = genai.upload_file(image_path, mime_type=mime_type)
# Send file and prompt to Gemini API
response = chat.send_message(
[
prompt,
file_data
]
)
# Display Gemini response
st.markdown(response.text)
else:
st.warning("Please provide a valid prompt.")
if __name__ == "__main__":
main()