File size: 1,990 Bytes
012e6ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# 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)