File size: 1,823 Bytes
1f6da9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2dac3ba
 
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
38
39
40
41
42
43
44
45
46
47
import gradio as gr
import torch
from lightgcn import GNN

# Carga los datos relevantes (por ejemplo, playlist_info.json, song_info.json, etc.)
# Aseg煤rate de que los archivos est茅n en la misma carpeta o ajusta las rutas seg煤n sea necesario.

# Crea una instancia de tu modelo LightGCN (reemplaza esto con tu propia l贸gica).
class SpotifyRecommender:
    def __init__(self):
        self.model = GNN(embedding_dim=64, num_nodes=100, num_playlists=50, num_layers=2)
        # Carga los pesos preentrenados o entrena tu modelo aqu铆.
        # Por ejemplo:
        self.model.load_state_dict(torch.load("pesos_modelo.pth"))

        # Carga los datos relevantes (por ejemplo, playlist_info.json, song_info.json, etc.)
        # Por ejemplo:
        self.playlist_data = cargar_datos("playlist_info.json")
        self.song_data = cargar_datos("song_info.json")

    def recommend(self, input_text):
        # Aqu铆, llama a tu funci贸n de recomendaci贸n o procesamiento de datos.
        # Por ejemplo:
        #playlist_id = encontrar_id_de_playlist(input_text, self.playlist_data)
        canciones_recomendadas = self.model.recommend(playlist_id, self.song_data)
        return canciones_recomendadas
        return f"隆Hola, has ingresado: {input_text}! Esto es una recomendaci贸n de canciones."

# Crea una instancia de tu modelo.
recommender_instance = SpotifyRecommender()

# Define una funci贸n para manejar las solicitudes de los usuarios.
def recommend(input_text):
    return recommender_instance.recommend(input_text)

# Crea una interfaz de usuario con Gradio.
iface = gr.Interface(
    fn=recommend,
    inputs="text",
    outputs="text",
    title="Recomendador de Canciones en Spotify",
    description="Ingresa un texto y obt茅n una recomendaci贸n de canciones.",
)

# Ejecuta la aplicaci
iface.launch()