'''from transformers import GPT2LMHeadModel, GPT2Tokenizer import gradio as gr import torch # Load model and tokenizer model = GPT2LMHeadModel.from_pretrained("gpt2") tokenizer = GPT2Tokenizer.from_pretrained("gpt2") tokenizer.pad_token = tokenizer.eos_token # Function to convert or transform input text def convert_text(input_text, task_type, max_length=80, temperature=0.9, top_p=0.9): # Craft a prompt based on the selected conversion task if task_type == "Paraphrase": prompt = f"Paraphrase this: {input_text}\nRewritten:" elif task_type == "Explain Simply": prompt = f"Explain this in simple words: {input_text}\nExplanation:" elif task_type == "Make it Formal": prompt = f"Convert to formal tone: {input_text}\nFormal:" elif task_type == "Make it Creative": prompt = f"Rewrite this creatively: {input_text}\nCreative version:" else: prompt = input_text # Tokenize and generate inputs = tokenizer(prompt, return_tensors="pt") outputs = model.generate( inputs.input_ids, max_length=max_length, temperature=temperature, top_p=top_p, do_sample=True, pad_token_id=tokenizer.eos_token_id ) result = tokenizer.decode(outputs[0], skip_special_tokens=True) return result.replace(prompt, "").strip() # Gradio interface with gr.Blocks(title="🌀 GPT-2 Text Converter") as app: gr.Markdown("## 🔁 GPT-2 Text Converter\nChoose a task to transform your input text.") with gr.Row(): input_text = gr.Textbox(label="Input Text", placeholder="Type or paste your sentence...", lines=3) task_type = gr.Dropdown( choices=["Paraphrase", "Explain Simply", "Make it Formal", "Make it Creative"], value="Paraphrase", label="Conversion Type" ) with gr.Row(): max_len = gr.Slider(30, 150, value=80, step=10, label="Max Output Length") temperature = gr.Slider(0.1, 2.0, value=0.9, step=0.1, label="Creativity (Temperature)") top_p = gr.Slider(0.5, 1.0, value=0.9, step=0.05, label="Top-p Sampling") output_text = gr.Textbox(label="Converted Output", lines=6) convert_button = gr.Button("🔄 Convert Text") convert_button.click( convert_text, inputs=[input_text, task_type, max_len, temperature, top_p], outputs=output_text ) app.launch()''' from transformers import MarianMTModel, MarianTokenizer import gradio as gr # Language mapping: display name -> model name lang_to_model = { "Hindi": "Helsinki-NLP/opus-mt-en-hi", "Bengali": "Helsinki-NLP/opus-mt-en-bn", "Tamil": "Helsinki-NLP/opus-mt-en-ta", "Telugu": "Helsinki-NLP/opus-mt-en-te", "Gujarati": "Helsinki-NLP/opus-mt-en-gu", "Marathi": "Helsinki-NLP/opus-mt-en-mr", "Malayalam": "Helsinki-NLP/opus-mt-en-ml", "Punjabi": "Helsinki-NLP/opus-mt-en-pa", "Urdu": "Helsinki-NLP/opus-mt-en-ur" } # Default load default_lang = "Hindi" model_name = lang_to_model[default_lang] tokenizer = MarianTokenizer.from_pretrained(model_name) model = MarianMTModel.from_pretrained(model_name) # Translate function def translate_text(text, target_lang): global tokenizer, model # Load model for selected language (if changed) selected_model = lang_to_model[target_lang] if tokenizer.name_or_path != selected_model: tokenizer = MarianTokenizer.from_pretrained(selected_model) model = MarianMTModel.from_pretrained(selected_model) # Translate inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True) translated = model.generate(**inputs, max_length=256) return tokenizer.decode(translated[0], skip_special_tokens=True) # Gradio interface with gr.Blocks(title="🌐 Indian Language Translator") as app: gr.Markdown("## 🌐 English to Indian Languages Translator") gr.Markdown("Type something in English and convert it into your selected Indian language.") input_text = gr.Textbox(label="Input (English)", lines=3, placeholder="Enter text in English") target_lang = gr.Dropdown(choices=list(lang_to_model.keys()), value=default_lang, label="Select Language") output_text = gr.Textbox(label="Translated Output", lines=3) translate_btn = gr.Button("🔄 Translate") translate_btn.click(translate_text, inputs=[input_text, target_lang], outputs=output_text) app.launch()