Spaces:
Sleeping
Sleeping
File size: 2,122 Bytes
0930d33 |
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 59 60 61 62 |
import os
import sys
src_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..", "src"))
sys.path.append(src_directory)
import streamlit as st
from utils import logger
from database_pinecone import querry_database
from model.clip_model import ClipModel
clip_model = ClipModel()
logger = logger.get_logger()
PAGE_TITLE = "Look A Like - Image Finder"
PAGE_LAYOUT = "centered"
SIDEBAR_TITLE = "Find Similar Images"
def setup_page():
if 'is_page_configured' not in st.session_state:
st.set_page_config(page_title=PAGE_TITLE, layout=PAGE_LAYOUT)
st.title(PAGE_TITLE)
st.sidebar.title(SIDEBAR_TITLE)
logger.info(f"Page configured with title '{PAGE_TITLE}', layout '{PAGE_LAYOUT}', and sidebar title '{SIDEBAR_TITLE}'")
st.session_state.is_page_configured = True
else:
logger.info("Page configuration already completed. Skipping setup.")
def get_user_selection(options):
selected_option = st.sidebar.selectbox("Select the option", options)
return selected_option
def get_search_image_input():
uploaded_image = st.sidebar.file_uploader("Upload the image to get similar images", type=['png', 'jpeg'])
return uploaded_image
def get_search_text_input():
user_search = st.sidebar.text_input("Enter the text to search")
return user_search
def display_images(response):
if response:
cols = st.columns(2)
for i, result in enumerate(response.matches):
with cols[i % 2]:
st.image(result.metadata["url"])
def write_message(message):
st.write(message)
def get_images_by_text(query):
embedding = clip_model.get_text_embedding(query)
response = querry_database.fetch_data(embedding)
message = f"Showing search results for {query}"
write_message(message)
images = display_images(response)
def get_images_by_image(query):
embedding = clip_model.get_uploaded_image_embedding(query)
response = querry_database.fetch_data(embedding)
message = f"Showing search results of relevant images"
write_message(message)
images = display_images(response)
|