LinDee's picture
Update app.py
dcf3bcc verified
raw
history blame
982 Bytes
import gradio as gr
import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity
# Load your trained SentenceTransformer model
model = SentenceTransformer("all-MiniLM-L6-v2") # Or use your custom model path if you trained a new one
# Load the posts
posts = pd.read_csv("posts.csv")
# Precompute embeddings for all posts
post_texts = posts["post_text"].astype(str).tolist()
post_embeddings = model.encode(post_texts, convert_to_tensor=False)
# Recommendation function
def recommend(user_input):
user_embedding = model.encode([user_input], convert_to_tensor=False)
similarities = cosine_similarity(user_embedding, post_embeddings)[0]
top_indices = similarities.argsort()[-5:][::-1]
recommended = posts.iloc[top_indices]["post_text"].tolist()
return "\n\n".join(recommended)
# Launch Gradio app
gr.Interface(fn=recommend, inputs="text", outputs="text", title="AI Post Recommender").launch()