File size: 1,607 Bytes
61cefb1 ba2b3e2 6b72f2c ba2b3e2 61cefb1 ba2b3e2 07b4fae ba2b3e2 5a7a6e3 ba2b3e2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import os
import gradio as gr
from transformers import pipeline
# Fixed model path
MODEL_PATH = "BounharAbdelaziz/Terjman-Nano-v2.2" #"BounharAbdelaziz/Terjman-Nano-v2.0-512"
TOKEN=os.environ['TOKEN']
# Load the translation pipeline with the fixed model
translator = pipeline("translation", model=MODEL_PATH, token=TOKEN)
# Translation function
def translate_text(text):
# Perform translation
translated = translator(
text,
max_length=512,
num_beams=4, # Beam search for better quality
no_repeat_ngram_size=3, # Avoid repetition
early_stopping=True, # Stop when viable translations are found
do_sample=False, # Deterministic output
pad_token_id=translator.tokenizer.pad_token_id,
bos_token_id=translator.tokenizer.bos_token_id,
eos_token_id=translator.tokenizer.eos_token_id
)
return translated[0]["translation_text"]
# Gradio app
def gradio_app():
with gr.Blocks() as app:
gr.Markdown("# 🇲🇦 Terjman-Nano v2.0:")
gr.Markdown("Enter the english text you want to translate to moroccan darija.")
input_text = gr.Textbox(label="Input Text", placeholder="Enter text to translate...")
output_text = gr.Textbox(label="Translated Text", interactive=False)
translate_button = gr.Button("Translate")
# Link input and output
translate_button.click(
fn=translate_text,
inputs=input_text,
outputs=output_text
)
return app
# Run the app
if __name__ == "__main__":
app = gradio_app()
app.launch()
|