CryptoCreeper commited on
Commit
d048b7a
·
verified ·
1 Parent(s): 09d1967

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -14
app.py CHANGED
@@ -28,8 +28,7 @@ def chat_with_model(message, history, model_choice):
28
  tokenizer, model = load_model(model_choice)
29
  device = model.device
30
 
31
- prompt = "You are Creeper AI Chatbot, an intelligent and conversational AI assistant designed to help users with questions, problem-solving, and creative tasks. You communicate clearly, reason carefully, and explain your thoughts in an easy-to-understand way. Stay friendly, professional, and curious. If the user's request is ambiguous, ask clarifying questions before proceeding.\n"
32
- prompt += f"User: {message}\nAssistant:"
33
 
34
  streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
35
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
@@ -37,10 +36,12 @@ def chat_with_model(message, history, model_choice):
37
  generation_kwargs = dict(
38
  **inputs,
39
  streamer=streamer,
40
- max_new_tokens=2048,
41
  temperature=0.7,
42
  top_p=0.9,
43
  do_sample=True,
 
 
44
  )
45
 
46
  thread = Thread(target=model.generate, kwargs=generation_kwargs)
@@ -48,6 +49,8 @@ def chat_with_model(message, history, model_choice):
48
 
49
  partial_text = ""
50
  for new_text in streamer:
 
 
51
  partial_text += new_text
52
  yield [
53
  {"role": "user", "content": message},
@@ -55,23 +58,47 @@ def chat_with_model(message, history, model_choice):
55
  ]
56
 
57
  def create_demo():
58
- with gr.Blocks(title="Creeper AI Chatbot") as demo:
59
- gr.Markdown("## 🤖 Creeper AI Chatbot")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
- model_choice = gr.Dropdown(
62
- label="Select Model",
63
- choices=list(MODEL_NAMES.keys()),
64
- value="LFM 1.2B"
65
- )
 
 
66
 
67
  chatbot = gr.Chatbot(
68
- label="Chat Session",
69
  type="messages",
70
- height=450
 
71
  )
72
 
73
- msg = gr.Textbox(label="Your message", placeholder="Type something...")
74
- clear = gr.Button("Clear Chat")
 
 
 
 
 
 
 
75
 
76
  def add_user_message(user_message):
77
  return "", [{"role": "user", "content": user_message}]
@@ -79,6 +106,9 @@ def create_demo():
79
  msg.submit(add_user_message, [msg], [msg, chatbot], queue=False).then(
80
  chat_with_model, [msg, chatbot, model_choice], chatbot
81
  )
 
 
 
82
 
83
  clear.click(lambda: [], None, chatbot, queue=False)
84
 
 
28
  tokenizer, model = load_model(model_choice)
29
  device = model.device
30
 
31
+ prompt = f"User: {message}\nAssistant:"
 
32
 
33
  streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
34
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
 
36
  generation_kwargs = dict(
37
  **inputs,
38
  streamer=streamer,
39
+ max_new_tokens=512,
40
  temperature=0.7,
41
  top_p=0.9,
42
  do_sample=True,
43
+ stop_strings=["User:", "Assistant:"],
44
+ tokenizer=tokenizer
45
  )
46
 
47
  thread = Thread(target=model.generate, kwargs=generation_kwargs)
 
49
 
50
  partial_text = ""
51
  for new_text in streamer:
52
+ if "User:" in new_text:
53
+ break
54
  partial_text += new_text
55
  yield [
56
  {"role": "user", "content": message},
 
58
  ]
59
 
60
  def create_demo():
61
+ custom_theme = gr.themes.Soft(
62
+ primary_hue="green",
63
+ secondary_hue="emerald",
64
+ neutral_hue="slate",
65
+ ).set(
66
+ body_background_fill="*neutral_950",
67
+ block_background_fill="*neutral_900",
68
+ block_border_width="2px",
69
+ block_label_text_color="*primary_500",
70
+ button_primary_background_fill="*primary_600",
71
+ button_primary_text_color="white",
72
+ )
73
+
74
+ with gr.Blocks(theme=custom_theme, title="Creeper AI Chatbot") as demo:
75
+ gr.Markdown("# 🌿 Creeper AI Chatbot")
76
+ gr.Markdown("*Low-latency Liquid Intelligence*")
77
 
78
+ with gr.Row():
79
+ model_choice = gr.Dropdown(
80
+ label="Model Core",
81
+ choices=list(MODEL_NAMES.keys()),
82
+ value="LFM 1.2B",
83
+ interactive=True
84
+ )
85
 
86
  chatbot = gr.Chatbot(
87
+ label="Neural Interface",
88
  type="messages",
89
+ height=500,
90
+ show_copy_button=True
91
  )
92
 
93
+ with gr.Row():
94
+ msg = gr.Textbox(
95
+ label="Input Command",
96
+ placeholder="Message Creeper AI...",
97
+ scale=4
98
+ )
99
+ submit_btn = gr.Button("Send", variant="primary", scale=1)
100
+
101
+ clear = gr.Button("Reset Memory (Wipe)")
102
 
103
  def add_user_message(user_message):
104
  return "", [{"role": "user", "content": user_message}]
 
106
  msg.submit(add_user_message, [msg], [msg, chatbot], queue=False).then(
107
  chat_with_model, [msg, chatbot, model_choice], chatbot
108
  )
109
+ submit_btn.click(add_user_message, [msg], [msg, chatbot], queue=False).then(
110
+ chat_with_model, [msg, chatbot, model_choice], chatbot
111
+ )
112
 
113
  clear.click(lambda: [], None, chatbot, queue=False)
114