File size: 1,983 Bytes
9c9173d
 
101bdf1
 
9c9173d
 
101bdf1
 
 
 
9c9173d
2b5061b
9c9173d
 
101bdf1
 
9c9173d
2b5061b
9c9173d
101bdf1
 
 
 
 
22a1c74
 
a335cd1
101bdf1
 
 
 
 
 
 
a335cd1
9c9173d
a335cd1
9c9173d
101bdf1
9c9173d
101bdf1
d3643ed
721f1f6
101bdf1
9c9173d
101bdf1
 
9c9173d
101bdf1
9c9173d
101bdf1
9c9173d
101bdf1
 
9c9173d
 
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
import gradio as gr
import requests
import json
import os


LANGUAGES = ['Akan', 'Arabic', ' Assamese', 'Bambara', 'Bengali', 'Catalan', 'English', 'Spanish', ' Basque', 'French', ' Gujarati', 'Hindi', 
'Indonesian', 'Igbo', 'Kikuyu', 'Kannada', 'Ganda', 'Lingala', 'Malayalam', 'Marathi', 'Nepali', 'Chichewa', 'Oriya', 'Panjabi', 'Portuguese', 
'Kirundi', 'Kinyarwanda', 'Shona', 'Sotho', 'Swahili', 'Tamil', 'Telugu', 'Tswana', 'Tsonga', 'Twi', 'Urdu', 'Viêt Namese', 'Wolof', 'Xhosa', 
'Yoruba', 'Chinese', 'Zulu']

API_URL = "https://api-inference.huggingface.co/models/bigscience/mt0-xxl"


def translate(input, output, text):
    """Translate text from input language to output language"""

    instruction =  f"""Translatation in {input.lower()}: {text}\nTranslation in {output.lower()}: """ 

    json_ = {
        "inputs": instruction,
        "parameters": {
            "return_full_text": True,
            "do_sample": False,
            "early_stopping": False,
            "length_penalty": 0.0,
            "max_new_tokens": 250,
        }, 
        "options": {
            "use_cache": True,
            "wait_for_model": True,
            },
    }
    response = requests.request("POST", API_URL,  json=json_) 
    output = response.json()[0]['generated_text']

    return output.replace(instruction, '', 1)

demo = gr.Blocks()

with demo:
  gr.Markdown("<h1><center>Translation with Bloom</center></h1>")
  gr.Markdown("<center>Translation in many language with mt0-xxl</center>")
  
  with gr.Row():
    input_lang = gr.Dropdown(LANGUAGES, value='English', label='Select input language')
    output_lang = gr.Dropdown(LANGUAGES, value='French', label='Select output language')
 
  input_text = gr.Textbox(label="Input", lines=6)
  
  output_text = gr.Textbox(lines=6, label="Output")

  buton = gr.Button("translate")
  buton.click(translate, inputs=[input_lang, output_lang, input_text], outputs=output_text) 
    
demo.launch(enable_queue=True, debug=True)