from z_utils import get_dataframe import gradio as gr # CONST CLEAN_DF_UNIQUE_TITLES = "unique_titles_books_summary.csv" N_RECOMMENDS = 5 from transformers import pipeline, set_seed # # CONST # set_seed(42) TRAINED_CASUAL_MODEL = "LunaticMaestro/gpt2-book-summary-generator" if gr.NO_RELOAD: # Load store books books_df = get_dataframe(CLEAN_DF_UNIQUE_TITLES) generator_model = pipeline('text-generation', model=TRAINED_CASUAL_MODEL) # if gr.NO_RELOAD: # from z_similarity import computes_similarity_w_hypothetical # from z_hypothetical_summary import generate_summaries def get_recommendation(book_title: str) -> str: global generator_model output = generator_model("Love") return str(output) fake_summaries = generate_summaries(book_title=book_title, n_samples=5) # other parameters are set to default in the function return fake_summaries[0] # Compute Simialrity similarity, ranks = computes_similarity_w_hypothetical(hypothetical_summaries=fake_summaries) # Get ranked Documents df_ranked = books_df.iloc[ranks] df_ranked = df_ranked.reset_index() books = df_ranked["book_name"].to_list()[:N_RECOMMENDS] summaries = df_ranked["summaries"].to_list()[:N_RECOMMENDS] scores = similarity[ranks][:N_RECOMMENDS] # label wise similarity label_similarity: dict = {book: score for book, score in zip(books, scores)} # # book_summaries: list[str] = [f"**{book}** \n {summary}" for book, summary in zip(books, summaries)] # Generate card-style HTML html = "
{summary}