Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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()
|