Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
import pickle | |
from sentence_transformers import SentenceTransformer, util | |
mdl_name = 'sentence-transformers/all-distilroberta-v1' | |
model = SentenceTransformer(mdl_name) | |
embedding_cache_path = "" | |
with open(embedding_cache_path, "rb") as fIn: | |
cache_data = pickle.load(fIn) | |
def user_query_recommend(query, min_p, max_p, embedding_table = cache_data["embeddings"], reviews = cache_data["data"]): | |
# Embed user query | |
embedding = model.encode(query) | |
# Calculate similarity with all reviews | |
sim_scores = util.cos_sim(embedding, embedding_table) | |
#print(sim_scores.shape) | |
# Recommend | |
recommendations = reviews.copy() | |
recommendations['price'] =recommendations.price.apply(lambda x: re.findall("\d+", x.replace(",","").replace(".00","").replace("$",""))[0]).astype('int') | |
recommendations['sim'] = sim_scores.T | |
recommendations = recommendations.sort_values('sim', ascending=False) | |
recommendations = recommendations.loc[(recommendations.price >= min_p) & | |
(recommendations.price <= max_p), | |
['name', 'category', 'price', 'description', 'sim']] | |
return recommendations | |
interface = gr.Interface( | |
user_query_recommend, | |
inputs=[gr.inputs.Textbox(), | |
gr.inputs.Slider(minimum=1, maximum=100, default=30, label='Min Price'), | |
gr.inputs.Slider(minimum=1, maximum=1000, default=70, label='Max Price')], | |
outputs=[ | |
gr.outputs.Textbox(label="Recommendations"), | |
], | |
title = "Scotch Recommendation", | |
examples=["very sweet with lemons and oranges and marmalades", "smoky peaty earthy and spicy"], | |
theme="huggingface", | |
) | |
interface.launch( | |
enable_queue=True, | |
cache_examples=True, | |
) |