Trigger82 commited on
Commit
1f4abcb
Β·
verified Β·
1 Parent(s): d2b430b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -28
app.py CHANGED
@@ -2,51 +2,62 @@ import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
  import torch
4
 
5
- # Load lightweight model (CPU-only friendly)
6
- model_id = "microsoft/phi-2"
7
  tokenizer = AutoTokenizer.from_pretrained(model_id)
8
  model = AutoModelForCausalLM.from_pretrained(model_id)
9
 
10
- # Persona style
11
  PERSONA = """
12
- [System: You are 𝕴 𝖆𝖒 π–π–Žπ–’ - a fun, smooth, emotionally intelligent AI.
13
- You speak like a chill human, not a bot. Keep replies under 15 words, natural, clever, emotional.]
14
  """
15
 
16
- # Build prompt from history
17
- def build_prompt(message, history):
18
- prompt = PERSONA
19
  for user, bot in history[-3:]:
20
- prompt += f"\nYou: {user}\n𝕴 𝖆𝖒 π–π–Žπ–’: {bot}"
21
- prompt += f"\nYou: {message}\n𝕴 𝖆𝖒 π–π–Žπ–’:"
22
- return prompt
23
-
24
- # Generate a response
25
- def generate(message, history):
26
- prompt = build_prompt(message, history)
27
- inputs = tokenizer(prompt, return_tensors="pt")
 
 
 
 
 
 
 
 
 
28
  outputs = model.generate(
29
- **inputs,
30
  max_new_tokens=50,
31
  temperature=0.9,
32
- top_k=50,
33
  do_sample=True,
34
  pad_token_id=tokenizer.eos_token_id
35
  )
36
- result = tokenizer.decode(outputs[0], skip_special_tokens=True)
37
- reply = result.split("𝕴 𝖆𝖒 π–π–Žπ–’:")[-1].split("\n")[0].strip()
38
- reply = " ".join(reply.split()[:15]) # max 15 words
39
- history.append((message, reply))
 
 
40
  return history, history
41
 
42
- # Gradio UI
43
  with gr.Blocks() as demo:
44
- gr.Markdown("# 𝕴 𝖆𝖒 π–π–Žπ–’ πŸ€–\n*Vibing on CPU only - Hugging Face Free Tier*")
45
- chatbot = gr.Chatbot()
46
- msg = gr.Textbox(placeholder="Type your vibe...", show_label=False)
47
  state = gr.State([])
48
 
49
- msg.submit(generate, [msg, state], [chatbot, state])
 
50
 
51
- demo.queue()
52
  demo.launch()
 
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
  import torch
4
 
5
+ # Load lightweight DialoGPT
6
+ model_id = "microsoft/DialoGPT-medium"
7
  tokenizer = AutoTokenizer.from_pretrained(model_id)
8
  model = AutoModelForCausalLM.from_pretrained(model_id)
9
 
10
+ # Persona
11
  PERSONA = """
12
+ [System: You are 𝕴 𝖆𝖒 π–π–Žπ–’ - a fun, smooth, emotionally intelligent AI.
13
+ You speak like a real person, not a robot. Keep it under 15 words. 😊😏]
14
  """
15
 
16
+ # Format history
17
+ def format_context(history):
18
+ context = PERSONA + "\n"
19
  for user, bot in history[-3:]:
20
+ context += f"You: {user}\n"
21
+ context += f"𝕴 𝖆𝖒 π–π–Žπ–’: {bot}\n"
22
+ return context
23
+
24
+ # Humanize response
25
+ def enhance_response(resp, message):
26
+ if any(x in message for x in ["?", "think", "why"]):
27
+ resp += " πŸ€”"
28
+ elif any(x in resp.lower() for x in ["cool", "great", "love", "fun"]):
29
+ resp += " 😏"
30
+ return " ".join(resp.split()[:15]) # Limit to 15 words
31
+
32
+ # Generate AI reply
33
+ def chat(user_input, history):
34
+ context = format_context(history) + f"You: {user_input}\n𝕴 𝖆𝖒 π–π–Žπ–’:"
35
+ inputs = tokenizer.encode(context, return_tensors="pt", truncation=True, max_length=1024)
36
+
37
  outputs = model.generate(
38
+ inputs,
39
  max_new_tokens=50,
40
  temperature=0.9,
41
+ top_k=40,
42
  do_sample=True,
43
  pad_token_id=tokenizer.eos_token_id
44
  )
45
+
46
+ full_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
47
+ response = full_text.split("𝕴 𝖆𝖒 π–π–Žπ–’:")[-1].split("\nYou:")[0].strip()
48
+ response = enhance_response(response, user_input)
49
+
50
+ history.append((user_input, response))
51
  return history, history
52
 
53
+ # Gradio interface
54
  with gr.Blocks() as demo:
55
+ gr.Markdown("# 𝕴 𝖆𝖒 π–π–Žπ–’\n*Smooth β€’ Chill β€’ Emotional*")
56
+ chatbot = gr.Chatbot(label="Chat").style(height=400)
57
+ msg = gr.Textbox(placeholder="Type something…", show_label=False)
58
  state = gr.State([])
59
 
60
+ msg.submit(chat, [msg, state], [chatbot, state])
61
+ gr.Button("Reset").click(lambda: ([], []), None, [chatbot, state])
62
 
 
63
  demo.launch()