Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import MarianMTModel, MarianTokenizer, pipeline | |
def translate(text, target_language): | |
language_codes = { | |
"Spanish": "es", | |
"French (European)": "fr", | |
"French (Canadian)": "fr", | |
"Italian": "it", | |
"Ukrainian": "uk", | |
"Portuguese (Brazilian)": "pt_BR", | |
"Portuguese (European)": "pt", | |
"Russian": "ru", | |
"Chinese": "zh", | |
"Dutch": "nl", | |
"German": "de", | |
"Arabic": "ar", | |
"Hebrew": "he", | |
"Greek": "el" | |
} | |
target_language_code = language_codes[target_language] | |
model_name = f'helsinki-nlp/opus-mt-en-{target_language_code}' | |
tokenizer = MarianTokenizer.from_pretrained(model_name) | |
model = MarianMTModel.from_pretrained(model_name) | |
inputs = tokenizer(text, return_tensors="pt") | |
outputs = model.generate(**inputs) | |
translation = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
return translation | |
def classify_text(text, labels): | |
classifier = pipeline("zero-shot-classification") | |
result = classifier(text, labels.split(',')) | |
scores = result["scores"] | |
predictions = result["labels"] | |
sorted_predictions = [pred for _, pred in sorted(zip(scores, predictions), reverse=True)] | |
return sorted_predictions | |
def generate_text(prompt, max_length): | |
text_gen = pipeline("text-generation", model="gpt2") | |
generated_text = text_gen(prompt, max_length=max_length, do_sample=True)[0]["generated_text"] | |
return generated_text | |
language_options = [ | |
"Spanish", "French (European)", "French (Canadian)", "Italian", "Ukrainian", | |
"Portuguese (Brazilian)", "Portuguese (European)", "Russian", "Chinese", | |
"Dutch", "German", "Arabic", "Hebrew", "Greek" | |
] | |
iface = gr.Interface( | |
[translate, classify_text, generate_text], | |
inputs=[ | |
[ | |
gr.inputs.Textbox(lines=5, label="Enter text to translate:"), | |
gr.inputs.Dropdown(choices=language_options, label="Target Language"), | |
], | |
[ | |
gr.inputs.Textbox(lines=5, label="Enter text to classify:"), | |
gr.inputs.Textbox(lines=2, label="Enter comma-separated labels:"), | |
], | |
[ | |
gr.inputs.Textbox(lines=5, label="Enter a prompt for text generation:"), | |
gr.inputs.Slider(minimum=10, maximum=150, step=1, default=50, label="Max Length"), | |
], | |
], | |
outputs=[ | |
gr.outputs.Textbox(label="Translated Text"), | |
gr.outputs.Textbox(label="Classification"), | |
gr.outputs.Textbox(label="Generated Text"), | |
], | |
) | |
iface.launch() | |