import gradio as gr import pickle import pandas as pd from sklearn.metrics.pairwise import cosine_similarity # Load model and dataset with open("recommender_model.pkl", "rb") as f: model = pickle.load(f) posts_df = pd.read_csv("posts_cleaned.csv") # your full dataset with post content post_embeddings = model["embeddings"] # precomputed post embeddings vectorizer = model["vectorizer"] # for transforming user input # Predict function def recommend_from_input(user_text): user_vec = vectorizer.encode([user_text]) sims = cosine_similarity(user_vec, post_embeddings)[0] top_idxs = sims.argsort()[-5:][::-1] top_posts = posts_df.iloc[top_idxs]["post_text"].tolist() return "\n\n".join(top_posts) # Gradio UI interface = gr.Interface( fn=recommend_from_input, inputs="text", outputs="text", title="AI Content Recommender", description="Enter a sample interest or post to receive recommendations" ) interface.launch()