Spaces:
Sleeping
Sleeping
import gradio as gr | |
import torch | |
import pandas as pd | |
from ModelSimilarity import MovieSimilarityModel | |
# Assume the MovieSimilarityModel class is already defined above | |
csv_file_path = './Themes_And_Concepts.csv' | |
movie_similarity_model = MovieSimilarityModel(csv_file_path) | |
# Load precomputed embeddings if available | |
movie_similarity_model.load_tensor_list() | |
# Define a function to wrap the comparison | |
def get_top_5_similar_movies(input_themes, input_genres): | |
# Directly use the input arrays | |
input_sentence_embeddings, input_genres_embeddings = movie_similarity_model.encode_input_movie(input_themes, input_genres) | |
# Get top 5 similar movies | |
top_5_similar_movies = movie_similarity_model.compare_input_vs_dataset(input_sentence_embeddings, input_genres_embeddings) | |
return top_5_similar_movies | |
# Define Gradio interface | |
input_themes = gr.List(headers=["Themes"], label="Input Movie Themes (array of strings)") | |
input_genres = gr.List(headers=["Genres"], label="Input Movie Genres (array of strings)") | |
output = gr.Dataframe(type="pandas", label="Top 5 Similar Movies") | |
interface = gr.Interface(fn=get_top_5_similar_movies, inputs=[input_themes, input_genres], outputs=output) | |
# Launch the Gradio interface | |
interface.launch() | |