DylanZimmer commited on
Commit
d564e7e
·
1 Parent(s): 8b8a804

Add history to interface

Browse files
Files changed (1) hide show
  1. app.py +23 -21
app.py CHANGED
@@ -1,17 +1,21 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
- # Load model locally in the Space
5
  pipe = pipeline("text-generation", model="HuggingFaceTB/SmolLM3-3B-Base")
6
 
7
- def respond(message, system_message, max_tokens, temperature, top_p):
8
- # Combine system message + history into a single prompt
9
  conversation_text = system_message + "\n"
 
 
10
  for user_msg, bot_msg in history:
11
  if user_msg:
12
  conversation_text += f"User: {user_msg}\n"
13
  if bot_msg:
14
  conversation_text += f"Assistant: {bot_msg}\n"
 
 
15
  conversation_text += f"User: {message}\nAssistant:"
16
 
17
  # Generate response
@@ -23,31 +27,29 @@ def respond(message, system_message, max_tokens, temperature, top_p):
23
  do_sample=True
24
  )
25
 
26
- # Pipeline returns a list of dicts; take first
27
- return outputs[0]["generated_text"].replace(conversation_text, "").strip()
28
 
29
- # Interface exposes a real /run/predict endpoint
 
 
 
 
 
30
  iface = gr.Interface(
31
  fn=respond,
32
  inputs=[
33
  gr.Textbox(label="Message"),
34
  gr.Textbox(label="System message", value="You are a friendly Chatbot."),
35
- gr.Slider(minimum=1, maximum=2048, value=512, label="Max new tokens"),
36
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, label="Temperature"),
37
- gr.Slider(minimum=0.1, maximum=1.0, value=0.95, label="Top-p")
 
38
  ],
39
- outputs=gr.Textbox(label="Assistant Reply")
 
 
 
40
  )
41
- """
42
- demo = gr.ChatInterface(
43
- respond,
44
- additional_inputs=[
45
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
46
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
47
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
48
- gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
49
- ],
50
- )
51
- """
52
  if __name__ == "__main__":
53
  iface.launch(share=True)
 
1
  import gradio as gr
2
  from transformers import pipeline
3
 
4
+ # Load model locally
5
  pipe = pipeline("text-generation", model="HuggingFaceTB/SmolLM3-3B-Base")
6
 
7
+ def respond(message, system_message, max_tokens, temperature, top_p, history):
8
+ # Start conversation with system message
9
  conversation_text = system_message + "\n"
10
+
11
+ # Append history
12
  for user_msg, bot_msg in history:
13
  if user_msg:
14
  conversation_text += f"User: {user_msg}\n"
15
  if bot_msg:
16
  conversation_text += f"Assistant: {bot_msg}\n"
17
+
18
+ # Current user message
19
  conversation_text += f"User: {message}\nAssistant:"
20
 
21
  # Generate response
 
27
  do_sample=True
28
  )
29
 
30
+ assistant_reply = outputs[0]["generated_text"].replace(conversation_text, "").strip()
 
31
 
32
+ # Update history
33
+ history.append([message, assistant_reply])
34
+
35
+ return assistant_reply, history
36
+
37
+ # Gradio interface
38
  iface = gr.Interface(
39
  fn=respond,
40
  inputs=[
41
  gr.Textbox(label="Message"),
42
  gr.Textbox(label="System message", value="You are a friendly Chatbot."),
43
+ gr.Slider(1, 2048, value=512, label="Max new tokens"),
44
+ gr.Slider(0.1, 4.0, value=0.7, label="Temperature"),
45
+ gr.Slider(0.1, 1.0, value=0.95, label="Top-p"),
46
+ gr.State([]) # Holds history as a list of [user, bot] tuples
47
  ],
48
+ outputs=[
49
+ gr.Textbox(label="Assistant Reply"),
50
+ gr.State() # Return updated history
51
+ ]
52
  )
53
+
 
 
 
 
 
 
 
 
 
 
54
  if __name__ == "__main__":
55
  iface.launch(share=True)