KWK25 commited on
Commit
c694cd7
·
verified ·
1 Parent(s): be4531f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -35
app.py CHANGED
@@ -1,57 +1,57 @@
1
  import gradio as gr
2
 
3
- # Dummy chatbot logic for now
4
- def chatbot_fn(message, history):
5
- genre_to_song = {
6
- "pop": "Blinding Lights - The Weeknd",
7
- "rock": "Bohemian Rhapsody - Queen",
8
- "hip hop": "SICKO MODE - Travis Scott",
9
- "jazz": "Take Five - Dave Brubeck",
10
- "classical": "Moonlight Sonata - Beethoven"
 
11
  }
12
 
13
- response = "Tell me your favorite genre!"
14
- for genre, song in genre_to_song.items():
15
- if genre in message.lower():
16
- response = f"You might like: 🎵 **{song}**"
17
  break
18
- history.append((message, response))
 
19
  return "", history
20
 
 
21
 
22
- ### Page 1: Home ###
23
- def home():
24
- return gr.Markdown("# 🎵 Welcome to MusicMatch\n\nFind songs you'll love based on your music taste.")
25
 
26
- ### Page 2: About ###
27
- def about():
28
- return gr.Markdown("## About\n\nThis app helps you discover songs based on your favorite genres using a chatbot powered by Python and Hugging Face.")
29
 
30
- ### Page 3: Chatbot ###
31
- def chatbot_page():
32
  with gr.Blocks() as demo:
33
- gr.Markdown("## 🎧 Song Finder Chatbot\n\nTell me your favorite genre, and I'll suggest a song!")
34
 
35
  chatbot = gr.Chatbot()
36
- msg = gr.Textbox(label="Your message", placeholder="Type a genre, like rock or jazz...")
37
- clear = gr.Button("Clear chat")
 
 
 
38
 
39
- msg.submit(chatbot_fn, [msg, chatbot], [msg, chatbot])
40
- clear.click(lambda: None, None, chatbot, queue=False)
41
  return demo
42
 
43
- ### Page 4: Top Genres ###
44
- def top_genres():
45
- return gr.Markdown("## 🌟 Top Genres\n\n- Pop\n- Rock\n- Hip Hop\n- Jazz\n- Classical")
46
 
47
- ### Page 5: Contact ###
48
- def contact():
49
- return gr.Markdown("## 📬 Contact\n\nMade with ❤️ by your name. Reach out via [GitHub](https://github.com) or [Twitter](https://twitter.com)")
50
 
51
- # Launching as a multi-page app
52
  demo = gr.TabbedInterface(
53
- [home, about, chatbot_page, top_genres, contact],
54
- ["Home", "About", "Song Finder Chatbot", "Top Genres", "Contact"]
55
  )
56
 
57
  demo.launch()
 
 
1
  import gradio as gr
2
 
3
+ # --- Chatbot logic ---
4
+ def get_song_recommendation(user_input, history):
5
+ genre = user_input.lower()
6
+ songs = {
7
+ "pop": "Try listening to 'As It Was' by Harry Styles.",
8
+ "rock": "Try 'Smells Like Teen Spirit' by Nirvana.",
9
+ "jazz": "Try 'So What' by Miles Davis.",
10
+ "hip hop": "Try 'HUMBLE.' by Kendrick Lamar.",
11
+ "classical": "Try 'Clair de Lune' by Debussy."
12
  }
13
 
14
+ response = "I didn't catch the genre. Please try pop, rock, jazz, hip hop, or classical."
15
+ for key in songs:
16
+ if key in genre:
17
+ response = songs[key]
18
  break
19
+
20
+ history.append((user_input, response))
21
  return "", history
22
 
23
+ # --- Pages ---
24
 
25
+ def page_home():
26
+ return gr.Markdown("## 🏠 Home\nWelcome to the Music Finder website!")
 
27
 
28
+ def page_about():
29
+ return gr.Markdown("## ℹ️ About\nThis app helps you find songs by chatting based on your favorite genre.")
 
30
 
31
+ def page_chatbot():
 
32
  with gr.Blocks() as demo:
33
+ gr.Markdown("## 💬 Song Finder Chatbot\nType your favorite genre and get a song recommendation!")
34
 
35
  chatbot = gr.Chatbot()
36
+ msg = gr.Textbox(placeholder="Enter a genre like pop, rock, jazz...")
37
+ clear_btn = gr.Button("Clear Chat")
38
+
39
+ msg.submit(get_song_recommendation, [msg, chatbot], [msg, chatbot])
40
+ clear_btn.click(lambda: [], None, chatbot, queue=False)
41
 
 
 
42
  return demo
43
 
44
+ def page_top_genres():
45
+ return gr.Markdown("## 🎶 Top Genres\n- Pop\n- Rock\n- Jazz\n- Hip Hop\n- Classical")
 
46
 
47
+ def page_contact():
48
+ return gr.Markdown("## 📬 Contact\nMade with ❤️. Reach me at: [your-email@example.com]")
 
49
 
50
+ # --- Main App with Tabs ---
51
  demo = gr.TabbedInterface(
52
+ interface_list=[page_home, page_about, page_chatbot, page_top_genres, page_contact],
53
+ tab_names=["Home", "About", "Chatbot", "Top Genres", "Contact"]
54
  )
55
 
56
  demo.launch()
57
+