Spaces:
Runtime error
Runtime error
| # Import necessary libraries | |
| from dotenv import load_dotenv | |
| import os | |
| import streamlit as st | |
| import google.generativeai as genai | |
| from PIL import Image | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| # Set up Google API key from environment variable | |
| genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) | |
| # Create a Gemini 1.5 Flash model instance | |
| model = genai.GenerativeModel("gemini-1.5-flash") | |
| # Define a function to get a response from the Gemini model | |
| def get_gemini_response(input, image): | |
| # If input prompt is not empty, generate content with both input and image | |
| if input != "": | |
| response = model.generate_content([input, image]) | |
| # If input prompt is empty, generate content with only the image | |
| else: | |
| response = model.generate_content(image) | |
| # Return the generated text response | |
| return response.text | |
| # Set up Streamlit page configuration | |
| st.set_page_config("Visualise your image") | |
| # Add a header to the page | |
| st.header("Visualise with Gemini") | |
| # Create a text input field for the user to enter a prompt | |
| input = st.text_input("Input Prompt: ", key="input") | |
| # Create a file uploader for the user to upload an image | |
| uploaded_file = st.file_uploader("Choose an image...", type=['jpg', 'png', 'jpeg']) | |
| # Initialize an empty image variable | |
| image = '' | |
| # If an image is uploaded, open it using PIL and display it | |
| if uploaded_file is not None: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption="Uploaded Image", use_column_width=True) | |
| # Create a submit button | |
| submit = st.button("Tell me about the image") | |
| # If the submit button is clicked, generate a response from the Gemini model | |
| if submit: | |
| # Call the get_gemini_response function with the input prompt and image | |
| response = get_gemini_response(input, image) | |
| # Add a subheader to display the response | |
| st.subheader("The response is") | |
| # Display the generated response | |
| st.write(response) |