1024m commited on
Commit
58a71ea
·
verified ·
1 Parent(s): cfc8af7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -9
app.py CHANGED
@@ -1,18 +1,10 @@
1
- import gradio as gr
2
  import torch
3
  import time
4
  from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
5
  from threading import Thread
6
- import time
7
  import pytz
8
  from datetime import datetime
9
- import gradio as gr
10
- import torch
11
- import time
12
- import pytz
13
- from datetime import datetime
14
- from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
15
- from threading import Thread
16
  print("Loading model and tokenizer...")
17
  model_name = "large-traversaal/Phi-4-Hindi"
18
  tokenizer = AutoTokenizer.from_pretrained(model_name)
@@ -121,5 +113,59 @@ with gr.Blocks() as demo:
121
  inputs=None,
122
  outputs=[input_text, output_text]
123
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  if __name__ == "__main__":
125
  demo.queue().launch()
 
1
+ """import gradio as gr
2
  import torch
3
  import time
4
  from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
5
  from threading import Thread
 
6
  import pytz
7
  from datetime import datetime
 
 
 
 
 
 
 
8
  print("Loading model and tokenizer...")
9
  model_name = "large-traversaal/Phi-4-Hindi"
10
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
113
  inputs=None,
114
  outputs=[input_text, output_text]
115
  )
116
+ if __name__ == "__main__":
117
+ demo.queue().launch()
118
+ """
119
+ import gradio as gr
120
+ import torch
121
+ import time
122
+ from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
123
+ from threading import Thread
124
+ import pytz
125
+ from datetime import datetime
126
+ print("Loading model and tokenizer...")
127
+ model_name = "large-traversaal/Phi-4-Hindi"
128
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
129
+ model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, device_map="auto")
130
+ print("Model and tokenizer loaded successfully!")
131
+ option_mapping = {"translation": "### TRANSLATION ###", "mcq": "### MCQ ###", "nli": "### NLI ###", "summarization": "### SUMMARIZATION ###",
132
+ "long response": "### LONG RESPONSE ###", "direct response": "### DIRECT RESPONSE ###", "paraphrase": "### PARAPHRASE ###", "code": "### CODE ###"}
133
+ def generate_response(message, temperature, max_new_tokens, top_p, task):
134
+ append_text = option_mapping.get(task, "")
135
+ prompt = f"INPUT : {message} {append_text} ### RESPONSE : "
136
+ print(f"Prompt: {prompt}")
137
+ start_time = time.time()
138
+ inputs = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
139
+ outputs = model.generate(input_ids=inputs, max_new_tokens=max_new_tokens, use_cache=True, temperature=temperature, min_p=top_p, pad_token_id=tokenizer.eos_token_id)
140
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
141
+ processed_response = response.split("### RESPONSE :assistant")[-1].strip()
142
+ end_time = time.time()
143
+ time_taken = end_time - start_time
144
+ print(f"Output: {processed_response}")
145
+ print(f"Time taken: {time_taken:.2f} seconds")
146
+ pst_timezone = pytz.timezone('America/Los_Angeles')
147
+ current_time_pst = datetime.now(pst_timezone).strftime("%Y-%m-%d %H:%M:%S %Z%z")
148
+ print(f"Current timestamp (PST): {current_time_pst}")
149
+ return processed_response
150
+ with gr.Blocks() as demo:
151
+ gr.Markdown("# Phi-4-Hindi Demo")
152
+ with gr.Row():
153
+ with gr.Column():
154
+ input_text = gr.Textbox(label="Input", placeholder="Enter your text here...", lines=5)
155
+ task_dropdown = gr.Dropdown(choices=["translation", "mcq", "nli", "summarization", "long response", "direct response", "paraphrase", "code"], value="long response", label="Task")
156
+ with gr.Row():
157
+ with gr.Column():
158
+ temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.1, step=0.01, label="Temperature")
159
+ with gr.Column():
160
+ max_new_tokens = gr.Slider(minimum=10, maximum=1000, value=10, step=10, label="Max New Tokens")
161
+ with gr.Column():
162
+ top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.1, step=0.01, label="Top P")
163
+ with gr.Row():
164
+ clear_btn = gr.Button("Clear")
165
+ send_btn = gr.Button("Send", variant="primary")
166
+ with gr.Column():
167
+ output_text = gr.Textbox(label="Output", lines=15)
168
+ send_btn.click(fn=generate_response, inputs=[input_text, temperature, max_new_tokens, top_p, task_dropdown], outputs=output_text)
169
+ clear_btn.click(fn=lambda: ("", ""), inputs=None, outputs=[input_text, output_text])
170
  if __name__ == "__main__":
171
  demo.queue().launch()