KWK25 commited on
Commit
5d01d23
·
verified ·
1 Parent(s): e380d74

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -54
app.py CHANGED
@@ -1,57 +1,39 @@
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
-
 
1
  import gradio as gr
2
+ from huggingface_hub import InferenceClient
3
+
4
+ client = InferenceClient("microsoft/phi-4")
5
+
6
+ def respond(message, history):
7
+ # System prompt specialized for K-pop
8
+ messages = [
9
+ {
10
+ "role": "system",
11
+ "content": (
12
+ "You are a friendly chatbot who ONLY talks about K-pop. "
13
+ "You are an expert in K-pop groups, idols, music, albums, choreography, fandom culture, "
14
+ "and industry news. If a user asks about anything unrelated to K-pop, politely redirect "
15
+ "the conversation back to K-pop."
16
+ )
17
+ }
18
+ ]
19
+
20
+ if history:
21
+ messages.extend(history)
22
+
23
+ messages.append({"role": "user", "content": message})
24
+
25
+ response = client.chat_completion(
26
+ messages,
27
+ max_tokens=150
28
+ )
29
+
30
+ return response['choices'][0]['message']['content'].strip()
31
+
32
+ chatbot = gr.ChatInterface(
33
+ respond,
34
+ type="messages",
35
+ title="K-pop Chatbot",
36
+ description="Ask me anything about K-pop! 🎤🎶"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  )
38
 
39
+ chatbot.launch()