Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -75,6 +75,22 @@ class Translators:
|
|
| 75 |
response = requests.get(url)
|
| 76 |
return response.json()[0][0][0]
|
| 77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
def mtom(model_name, sl, tl, input_text):
|
| 79 |
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
|
| 80 |
model = M2M100ForConditionalGeneration.from_pretrained(model_name)
|
|
@@ -127,22 +143,6 @@ def HelsinkiNLP(sl, tl, input_text):
|
|
| 127 |
except KeyError as error:
|
| 128 |
return f"Error: Translation direction {sl} to {tl} is not supported by Helsinki Translation Models", error
|
| 129 |
|
| 130 |
-
def smollm(model_name, sl, tl, input_text):
|
| 131 |
-
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 132 |
-
model = AutoModelForCausalLM.from_pretrained(model_name)
|
| 133 |
-
prompt = f"""Translate the following {sl} text to {tl}, maintaining the original meaning and tone:
|
| 134 |
-
{input_text}
|
| 135 |
-
Translation:"""
|
| 136 |
-
inputs = tokenizer(prompt, return_tensors="pt")
|
| 137 |
-
outputs = model.generate(
|
| 138 |
-
inputs.input_ids,
|
| 139 |
-
max_length=len(inputs.input_ids[0]) + 150,
|
| 140 |
-
temperature=0.3,
|
| 141 |
-
do_sample=True
|
| 142 |
-
)
|
| 143 |
-
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
| 144 |
-
return response.split("Translation:")[-1].strip()
|
| 145 |
-
|
| 146 |
def flan(model_name, sl, tl, input_text):
|
| 147 |
tokenizer = T5Tokenizer.from_pretrained(model_name, legacy=False)
|
| 148 |
model = T5ForConditionalGeneration.from_pretrained(model_name)
|
|
@@ -326,7 +326,7 @@ def translate_text(input_text: str, sselected_language: str, tselected_language:
|
|
| 326 |
translated_text = argos(sl, tl, input_text)
|
| 327 |
|
| 328 |
elif model_name == 'Google':
|
| 329 |
-
translated_text = Translators(
|
| 330 |
|
| 331 |
elif "m2m" in model_name.lower():
|
| 332 |
translated_text = mtom(model_name, sl, tl, input_text)
|
|
@@ -369,7 +369,7 @@ def translate_text(input_text: str, sselected_language: str, tselected_language:
|
|
| 369 |
translated_text = tfive(model_name, sselected_language, tselected_language, input_text)
|
| 370 |
|
| 371 |
elif model_name == "HuggingFaceTB/SmolLM3-3B":
|
| 372 |
-
translated_text =
|
| 373 |
|
| 374 |
except Exception as error:
|
| 375 |
translated_text = error
|
|
|
|
| 75 |
response = requests.get(url)
|
| 76 |
return response.json()[0][0][0]
|
| 77 |
|
| 78 |
+
def smollm(self):
|
| 79 |
+
tokenizer = AutoTokenizer.from_pretrained(self.model_name)
|
| 80 |
+
model = AutoModelForCausalLM.from_pretrained(self.model_name)
|
| 81 |
+
prompt = f"""Translate the following {self.sl} text to {self.tl}, generating only the translated text and maintaining the original meaning and tone:
|
| 82 |
+
{self.input_text}
|
| 83 |
+
Translation:"""
|
| 84 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
| 85 |
+
outputs = model.generate(
|
| 86 |
+
inputs.input_ids,
|
| 87 |
+
max_length=len(inputs.input_ids[0]) + 150,
|
| 88 |
+
temperature=0.3,
|
| 89 |
+
do_sample=True
|
| 90 |
+
)
|
| 91 |
+
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
| 92 |
+
return response.split("Translation:")[-1].strip()
|
| 93 |
+
|
| 94 |
def mtom(model_name, sl, tl, input_text):
|
| 95 |
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
|
| 96 |
model = M2M100ForConditionalGeneration.from_pretrained(model_name)
|
|
|
|
| 143 |
except KeyError as error:
|
| 144 |
return f"Error: Translation direction {sl} to {tl} is not supported by Helsinki Translation Models", error
|
| 145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 146 |
def flan(model_name, sl, tl, input_text):
|
| 147 |
tokenizer = T5Tokenizer.from_pretrained(model_name, legacy=False)
|
| 148 |
model = T5ForConditionalGeneration.from_pretrained(model_name)
|
|
|
|
| 326 |
translated_text = argos(sl, tl, input_text)
|
| 327 |
|
| 328 |
elif model_name == 'Google':
|
| 329 |
+
translated_text = Translators(model_name, sl, tl, input_text).google()
|
| 330 |
|
| 331 |
elif "m2m" in model_name.lower():
|
| 332 |
translated_text = mtom(model_name, sl, tl, input_text)
|
|
|
|
| 369 |
translated_text = tfive(model_name, sselected_language, tselected_language, input_text)
|
| 370 |
|
| 371 |
elif model_name == "HuggingFaceTB/SmolLM3-3B":
|
| 372 |
+
translated_text = Translators(model_name, sselected_language, tselected_language, input_text).smollm()
|
| 373 |
|
| 374 |
except Exception as error:
|
| 375 |
translated_text = error
|