LinDee commited on
Commit
dcf3bcc
·
verified ·
1 Parent(s): 05af8c2

Update app.py

Browse files

made an update to fix runtime error

Files changed (1) hide show
  1. app.py +17 -23
app.py CHANGED
@@ -1,31 +1,25 @@
1
  import gradio as gr
2
- import pickle
3
  import pandas as pd
 
4
  from sklearn.metrics.pairwise import cosine_similarity
5
 
6
- # Load model and dataset
7
- with open("recommender_model.pkl", "rb") as f:
8
- model = pickle.load(f)
9
 
10
- posts_df = pd.read_csv("posts_cleaned.csv") # your full dataset with post content
11
- post_embeddings = model["embeddings"] # precomputed post embeddings
12
- vectorizer = model["vectorizer"] # for transforming user input
13
 
14
- # Predict function
15
- def recommend_from_input(user_text):
16
- user_vec = vectorizer.encode([user_text])
17
- sims = cosine_similarity(user_vec, post_embeddings)[0]
18
- top_idxs = sims.argsort()[-5:][::-1]
19
- top_posts = posts_df.iloc[top_idxs]["post_text"].tolist()
20
- return "\n\n".join(top_posts)
21
 
22
- # Gradio UI
23
- interface = gr.Interface(
24
- fn=recommend_from_input,
25
- inputs="text",
26
- outputs="text",
27
- title="AI Content Recommender",
28
- description="Enter a sample interest or post to receive recommendations"
29
- )
30
 
31
- interface.launch()
 
 
1
  import gradio as gr
 
2
  import pandas as pd
3
+ from sentence_transformers import SentenceTransformer
4
  from sklearn.metrics.pairwise import cosine_similarity
5
 
6
+ # Load your trained SentenceTransformer model
7
+ model = SentenceTransformer("all-MiniLM-L6-v2") # Or use your custom model path if you trained a new one
 
8
 
9
+ # Load the posts
10
+ posts = pd.read_csv("posts.csv")
 
11
 
12
+ # Precompute embeddings for all posts
13
+ post_texts = posts["post_text"].astype(str).tolist()
14
+ post_embeddings = model.encode(post_texts, convert_to_tensor=False)
 
 
 
 
15
 
16
+ # Recommendation function
17
+ def recommend(user_input):
18
+ user_embedding = model.encode([user_input], convert_to_tensor=False)
19
+ similarities = cosine_similarity(user_embedding, post_embeddings)[0]
20
+ top_indices = similarities.argsort()[-5:][::-1]
21
+ recommended = posts.iloc[top_indices]["post_text"].tolist()
22
+ return "\n\n".join(recommended)
 
23
 
24
+ # Launch Gradio app
25
+ gr.Interface(fn=recommend, inputs="text", outputs="text", title="AI Post Recommender").launch()