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()
|