Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
# Load the translation pipeline | |
pipe = pipeline("translation", model="facebook/nllb-200-distilled-600M") | |
# Define the translation function | |
def translate_text(text, source_language, target_language, max_length=200): | |
# Define source and target languages (e.g., 'eng_Latn' -> 'fra_Latn') | |
language_pair = f"{source_language}-{target_language}" | |
response = pipe( | |
text, | |
src_lang=source_language, | |
tgt_lang=target_language, | |
max_length=max_length | |
) | |
return response[0]['translation_text'] | |
# Create the Gradio app interface | |
with gr.Blocks() as app: | |
gr.Markdown("## Translation App") | |
gr.Markdown( | |
"Enter text in the source language, and the model will translate it to the target language. " | |
"This app uses the `facebook/nllb-200-distilled-600M` model." | |
) | |
gr.Markdown("### To choose the languages: [https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200](https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200)") | |
with gr.Row(): | |
input_text = gr.Textbox( | |
label="Input Text", | |
placeholder="Type the text to translate...", | |
lines=4 | |
) | |
output_translation = gr.Textbox(label="Translated Text", lines=4) | |
with gr.Row(): | |
source_language = gr.Textbox( | |
label="Source Language Code", | |
placeholder="e.g., eng_Latn (for English)" | |
) | |
target_language = gr.Textbox( | |
label="Target Language Code", | |
placeholder="e.g., fra_Latn (for French)" | |
) | |
max_length = gr.Slider( | |
label="Max Length", | |
minimum=50, | |
maximum=500, | |
step=50, | |
value=200 | |
) | |
submit_button = gr.Button("Translate") | |
submit_button.click( | |
fn=translate_text, | |
inputs=[input_text, source_language, target_language, max_length], | |
outputs=output_translation | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
app.launch() | |