Spaces:
Runtime error
Runtime error
| import os | |
| import torch | |
| import gradio as gr | |
| import time | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline | |
| from code_flores_latest import flores_codes_latest | |
| def load_models(): | |
| model_name_dict = {'nllb-distilled-600M': 'facebook/nllb-200-distilled-600M'} | |
| model_dict = {} | |
| for call_name, real_name in model_name_dict.items(): | |
| print('\tLoading model: %s' % call_name) | |
| model = AutoModelForSeq2SeqLM.from_pretrained(real_name) | |
| tokenizer = AutoTokenizer.from_pretrained(real_name) | |
| model_dict[call_name + '_model'] = model | |
| model_dict[call_name + '_tokenizer'] = tokenizer | |
| return model_dict | |
| def translation(source, target, text): | |
| model_name = 'nllb-distilled-600M' | |
| source_code = flores_codes_latest.get(source, None) | |
| target_code = flores_codes_latest.get(target, None) | |
| if not source_code or not target_code: | |
| return "<p>Error: Language code not found.</p>" | |
| model = model_dict[model_name + '_model'] | |
| tokenizer = model_dict[model_name + '_tokenizer'] | |
| translator = pipeline('translation', model=model, tokenizer=tokenizer, src_lang=source_code, tgt_lang=target_code) | |
| output = translator(text, max_length=400) | |
| output_text = output[0]['translation_text'] | |
| formatted_output = f"<p><strong>Original Text ({source}):</strong><br>{text}</p><p><strong>Translated Text ({target}):</strong> <span style='color: red;'>{output_text}</span></p>" | |
| return formatted_output | |
| if __name__ == '__main__': | |
| print('\tInitializing models') | |
| model_dict = load_models() | |
| lang_names = list(flores_codes_latest.keys()) | |
| source_dropdown = gr.Dropdown(lang_names, label='Source', allow_custom_value=True) | |
| target_dropdown = gr.Dropdown(lang_names, label='Target', allow_custom_value=True) | |
| textbox = gr.Textbox(lines=5, label="Input text") | |
| title = "nllb-distilled-600M - Example implementation" | |
| description = f"Remarks: Please note that not all translations are accurate, and some model codes are not accepted. . " | |
| initial_output_value = "<p>Translation results will appear here.</p>" | |
| output_html = gr.HTML(label="Translation Result", value=initial_output_value) | |
| iface = gr.Interface(fn=translation, inputs=[source_dropdown, target_dropdown, textbox], outputs=output_html, | |
| title=title, description=description) | |
| iface.launch() | |