FlameF0X commited on
Commit
57682ef
·
verified ·
1 Parent(s): be21641

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -7
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
3
  import torch
4
  from threading import Thread
5
- import re # for cleaning unwanted tags
6
 
7
  # Load model and tokenizer
8
  model_name = "GoofyLM/gonzalez-v1"
@@ -19,7 +19,17 @@ if tokenizer.pad_token is None:
19
 
20
  # Define a custom chat template if one is not available
21
  if tokenizer.chat_template is None:
22
- tokenizer.chat_template = "{% for message in messages %}\n{% if message['role'] == 'system' %}<|system|>\n{{ message['content'] }}\n{% elif message['role'] == 'user' %}<|user|>\n{{ message['content'] }}\n{% elif message['role'] == 'assistant' %}<|assistant|>\n{{ message['content'] }}\n{% endif %}\n{% endfor %}\n{% if add_generation_prompt %}<|assistant|>\n{% endif %}"
 
 
 
 
 
 
 
 
 
 
23
 
24
  def respond(
25
  message,
@@ -59,16 +69,19 @@ def respond(
59
  pad_token_id=tokenizer.pad_token_id
60
  )
61
 
62
- # Start generation in separate thread
63
  thread = Thread(target=model.generate, kwargs=generation_kwargs)
64
  thread.start()
65
-
66
- # Stream response with unwanted patterns removed
67
  response = ""
68
  for token in streamer:
69
  response += token
70
- cleaned_response = re.sub(r"<[|:].*?[|:]>", "", response) # Remove <|msg|...> or <:...:...>
71
- yield cleaned_response
 
 
 
72
 
73
  # Create Gradio interface
74
  demo = gr.ChatInterface(
 
2
  from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
3
  import torch
4
  from threading import Thread
5
+ import re # For cleaning unwanted tokens
6
 
7
  # Load model and tokenizer
8
  model_name = "GoofyLM/gonzalez-v1"
 
19
 
20
  # Define a custom chat template if one is not available
21
  if tokenizer.chat_template is None:
22
+ tokenizer.chat_template = """{% for message in messages %}
23
+ {% if message['role'] == 'system' %}<|system|>
24
+ {{ message['content'] }}
25
+ {% elif message['role'] == 'user' %}<|user|>
26
+ {{ message['content'] }}
27
+ {% elif message['role'] == 'assistant' %}<|assistant|>
28
+ {{ message['content'] }}
29
+ {% endif %}
30
+ {% endfor %}
31
+ {% if add_generation_prompt %}<|assistant|>
32
+ {% endif %}"""
33
 
34
  def respond(
35
  message,
 
69
  pad_token_id=tokenizer.pad_token_id
70
  )
71
 
72
+ # Start generation in a separate thread
73
  thread = Thread(target=model.generate, kwargs=generation_kwargs)
74
  thread.start()
75
+
76
+ # Stream response with filtering
77
  response = ""
78
  for token in streamer:
79
  response += token
80
+ # Remove angle-bracket tags (e.g. <|msg|...>, <username: ...>, <:...:...>)
81
+ cleaned_response = re.sub(r"<[^>]+>", "", response)
82
+ # Remove leading "Output:" if present (case-insensitive, line start)
83
+ cleaned_response = re.sub(r"(?i)^\s*output:\s*", "", cleaned_response)
84
+ yield cleaned_response.strip()
85
 
86
  # Create Gradio interface
87
  demo = gr.ChatInterface(