File size: 838 Bytes
8d1a585
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#Step-3
##app.py 
import gradio as gr
import pickle
from surprise import Dataset

# Load model
with open("model.pkl", "rb") as f:
    model = pickle.load(f)

data = Dataset.load_builtin('ml-100k')
raw_ratings = data.raw_ratings

# Simple item list (movie IDs)
items = list(set([r[1] for r in raw_ratings]))

def recommend(user_id, n=5):
    preds = []
    
    for item in items:
        pred = model.predict(user_id, item).est
        preds.append((item, pred))

    preds.sort(key=lambda x: x[1], reverse=True)
    return [f"{item}{score:.2f}" for item, score in preds[:n]]

interface = gr.Interface(
    fn=recommend,
    inputs=[
        gr.Textbox(label="User ID"),
        gr.Slider(1, 10, value=5, step=1, label="Number of recommendations")
    ],
    outputs="text",
    title="Video Recommender System"
)

interface.launch()