Spaces:
Sleeping
Sleeping
from sentence_transformers import SentenceTransformer | |
from pinecone_client import PineconeClient | |
import streamlit as st | |
import pandas as pd | |
from PIL import Image | |
im = Image.open('video.png') | |
st.set_page_config(page_title="Movie Recommender System App",page_icon = im) | |
import base64 | |
def add_bg_from_local(image_file): | |
with open(image_file, "rb") as image_file: | |
encoded_string = base64.b64encode(image_file.read()) | |
st.markdown( | |
f""" | |
<style> | |
.stApp {{ | |
background-image: url(data:image/{"gif"};base64,{encoded_string.decode()}); | |
background-size: cover | |
}} | |
</style> | |
""", | |
unsafe_allow_html=True | |
) | |
add_bg_from_local('wallpaper_home.jpg') | |
text_search = st.text_input('Provide a movie description', | |
placeholder='E.g. A thrilling adventure in space') | |
genre = st.selectbox('Select movie genre', | |
options = ['All', 'Action', 'Drama', 'Adventure', 'Sci-Fi', 'Animation', 'Crime', | |
'Comedy', 'Thriller', 'Fantasy', 'Horror', 'History', 'Mystery', | |
'Biography', 'War', 'Western', 'Sport', 'Family', 'Romance', | |
'Music', 'Musical', 'Film-Noir', 'Game-Show', 'Adult', | |
'Reality-TV'] | |
) | |
genre = [] if genre is "All" else [genre] | |
ratting = st.slider('Movie Rating (IMDb)', 0.0, 10.0, 0.0, 0.1, format = "%f") | |
top_k = st.slider('Select Movie Limit', 0, 10, 3) | |
model = SentenceTransformer('all-MiniLM-L6-v2') | |
def model_embedder(text): | |
embedding = model.encode(text) | |
return embedding.tolist() | |
vector_search = model_embedder(text_search) | |
index_name = "movies-embeddings" | |
p_client = PineconeClient(index_name) | |
results = p_client.query_similarity(vector_search, top_k=top_k, genre=genre, filter_rating=ratting) | |
df = pd.DataFrame([result['metadata'] for result in results]) | |
df |