Download app.py from Rivan1220/Rivan: direct link, hf CLI and curl.
- Browser
- Download file 4.54 kB
-
https://huggingface.co/spaces/Rivan1220/Rivan/resolve/main/app.py
- Command line
-
hf download hf://spaces/Rivan1220/Rivan/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Rivan1220/Rivan/resolve/main/app.py
4.54 kB
| '''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() | |