|
|
|
|
|
from dotenv import load_dotenv |
|
|
load_dotenv() |
|
|
|
|
|
|
|
|
import streamlit as st |
|
|
import os |
|
|
import google.generativeai as genai |
|
|
from PIL import Image |
|
|
|
|
|
|
|
|
google_api_key = os.getenv("GOOGLE_API_KEY") |
|
|
|
|
|
if google_api_key is None: |
|
|
st.error("API key not found. Please check your .env file.") |
|
|
st.stop() |
|
|
|
|
|
|
|
|
genai.configure(api_key=google_api_key) |
|
|
|
|
|
|
|
|
def get_model_response(query, user_image): |
|
|
|
|
|
model = genai.GenerativeModel('gemini-pro-vision') |
|
|
|
|
|
|
|
|
if query != "": |
|
|
model_response = model.generate_content([query, user_image]) |
|
|
else: |
|
|
model_response = model.generate_content(user_image) |
|
|
|
|
|
|
|
|
return model_response.text |
|
|
|
|
|
|
|
|
st.set_page_config(page_title="Visualize Image-Text") |
|
|
st.header("Poulta App Image Analyses") |
|
|
|
|
|
|
|
|
logo_image_url = "https://poulta.com/assets/site-images/poulta-logo.png" |
|
|
st.image(logo_image_url, width=200) |
|
|
|
|
|
|
|
|
user_input = st.text_input("What do you want to know about the image? ", key="user_input") |
|
|
|
|
|
|
|
|
uploaded_file = st.file_uploader("Pick your 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("See the magic β¨") |
|
|
if submit: |
|
|
|
|
|
model_response = get_model_response(user_input, image) |
|
|
st.subheader("Results here ππ»") |
|
|
st.write(model_response) |
|
|
|
|
|
|
|
|
|