Spaces:
Running
on
Zero
Running
on
Zero
File size: 4,896 Bytes
b195470 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
import gradio as gr
model = None
tokenizer = None
# device = 0 if torch.cuda.is_available() else -1
LANGUAGES = {
"Hindi": "hin_Deva",
"Bengali": "ben_Beng",
"Telugu": "tel_Telu",
"Marathi": "mar_Deva",
"Tamil": "tam_Taml",
"Urdu": "urd_Arab",
"Gujarati": "guj_Gujr",
"Kannada": "kan_Knda",
"Odia": "ori_Orya",
"Malayalam": "mal_Mlym",
"Punjabi": "pan_Guru",
"Assamese": "asm_Beng",
"Maithili": "mai_Mith",
"Santali": "sat_Olck",
"Kashmiri": "kas_Arab",
"Nepali": "nep_Deva",
"Sindhi": "snd_Arab",
"Konkani": "kok_Deva",
"Dogri": "dgo_Deva",
"Manipuri": "mni_Beng",
"Bodo": "brx_Deva"
}
def translate(src_lang, text, tgt_lang):
return "Translation output will appear here..."
def store_feedback(rating, feedback_text):
if not rating:
gr.Warning("Please select a rating before submitting feedback.", duration=5)
return None
if not feedback_text or feedback_text.strip() == "":
gr.Warning("Please provide some feedback before submitting.", duration=5)
return None
gr.Info("Feedback submitted successfully!")
return "Thank you for your feedback!"
css = """
#col-container {max-width: 80%; margin-left: auto; margin-right: auto;}
#header {text-align: center;}
.message { font-size: 1.2em; }
#feedback-section { margin-top: 30px; border-top: 1px solid #ddd; padding-top: 20px; }
"""
with gr.Blocks(theme=gr.themes.Default(), css=css) as demo:
gr.Markdown("# IndicTrans3 Demo π", elem_id="header")
gr.Markdown("Translate text between multiple Indic languages using the latest IndicTrans3 model from AI4Bharat. This model is trained on the --- dataset and supports translation to 22 Indic languages. Setting a state-of-the-art benchmark on multiple translation tasks, IndicTrans3 is a powerful model that can handle complex translation tasks with ease.", elem_id="description")
with gr.Column(elem_id="col-container"):
with gr.Row():
with gr.Column():
src_lang = gr.Dropdown(
["English"],
value="English",
label="Translate From",
elem_id="translate-from"
)
text_input = gr.Textbox(
placeholder="Enter text to translate...",
label="",
lines=10,
max_lines=100,
elem_id="input-text"
)
with gr.Column():
tgt_lang = gr.Dropdown(
list(LANGUAGES.keys()),
value="Hindi",
label="Translate To",
elem_id="translate-to"
)
text_output = gr.Textbox(
label="",
lines=10,
max_lines=100,
elem_id="output-text"
)
btn_submit = gr.Button("Translate")
btn_submit.click(fn=translate, inputs=[src_lang, text_input, tgt_lang], outputs=text_output)
gr.Examples(
examples=[
["English", "Hello, how are you today? I hope you're doing well.", "Telugu"],
["English", "Hello, how are you today? I hope you're doing well.", "Punjabi"],
["English", "Hello, how are you today? I hope you're doing well.", "Hindi"],
["English", "Hello, how are you today? I hope you're doing well.", "Marathi"],
["English", "Hello, how are you today? I hope you're doing well.", "Malayalam"]
],
inputs=[src_lang, text_input, tgt_lang],
outputs=text_output,
fn=translate,
cache_examples=True,
examples_per_page=5
)
with gr.Column(elem_id="feedback-section"):
gr.Markdown("## Rate Translation & Provide Feedback π")
gr.Markdown("Help us improve the translation quality by providing your feedback and rating.")
with gr.Row():
rating = gr.Radio(
["1", "2", "3", "4", "5"],
label="Translation Rating (1-5)"
)
feedback_text = gr.Textbox(
placeholder="Share your feedback about the translation...",
label="Feedback",
lines=3
)
feedback_submit = gr.Button("Submit Feedback")
feedback_result = gr.Textbox(label="", visible=False)
feedback_submit.click(
fn=store_feedback,
inputs=[rating, feedback_text],
outputs=feedback_result
)
demo.launch()
|