AItool commited on
Commit
f17d6c8
·
verified ·
1 Parent(s): d7f71d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +105 -105
app.py CHANGED
@@ -1,106 +1,106 @@
1
- # from responses import start
2
- import gradio as gr
3
- from language_directions import *
4
- from transformers import pipeline
5
- from adibideak import adibide_esaldiak
6
-
7
- source_lang_dict = get_all_source_languages()
8
- target_lang_dict = {}
9
- source_languages = source_lang_dict.keys()
10
-
11
- def get_auto_detect_source_dropdown(input_text):
12
- source, _ = auto_detect_language_code(input_text)
13
- language_name = get_name_from_iso_code(source)
14
- source_dropdown_text = "Detected - " + language_name
15
- update_source_languages_dict(source_lang_dict, source_dropdown_text)
16
- source_language_dropdown = gr.Dropdown(choices=source_languages,
17
- value=source_dropdown_text,
18
- label="Input Language")
19
- return source_language_dropdown, language_name
20
-
21
- def get_target_dropdown(source_language_name, input_text):
22
- global target_lang_dict
23
- target_lang_dict, source_language = get_target_languages(source_lang_dict[source_language_name], input_text)
24
- target_languages = list(target_lang_dict.keys())
25
- default_target_value = None
26
- if "English" in target_languages or "english" in target_languages:
27
- default_target_value = "English"
28
- else:
29
- default_target_value = target_languages[0]
30
- target_dropdown = gr.Dropdown(choices=target_languages,
31
- value=default_target_value,
32
- label="Output Language")
33
- return target_dropdown
34
-
35
- def get_dropdown_value(dropdown):
36
- if isinstance(dropdown, gr.Dropdown):
37
- dropdown_value = dropdown.constructor_args.get('value')
38
- elif isinstance(dropdown, str):
39
- dropdown_value = dropdown
40
- return dropdown_value
41
-
42
- def get_dropdowns(source_dropdown, input_text):
43
- source_language_name = get_dropdown_value(source_dropdown)
44
- if input_text and source_language_name == "Detect" or source_language_name.startswith("Detected"):
45
- source_dropdown, source_language_name = get_auto_detect_source_dropdown(input_text)
46
- target_dropdown = get_target_dropdown(source_language_name=source_language_name,
47
- input_text=input_text)
48
- return source_dropdown, target_dropdown
49
-
50
- def input_changed(source_language_dropdown, input_text=""):
51
- return get_dropdowns(source_dropdown=source_language_dropdown,
52
- input_text=input_text)
53
-
54
- def translate(input_text, source, target):
55
- source_readable = source
56
- if source == "Detect" or source.startswith("Detected"):
57
- source, _ = auto_detect_language_code(input_text)
58
- if source in source_lang_dict.keys():
59
- source = source_lang_dict[source]
60
- target_lang_dict, _ = get_target_languages(source)
61
- try:
62
- target = target_lang_dict[target]
63
- model = f"Helsinki-NLP/opus-mt-{source}-{target}"
64
- pipe = pipeline("translation", model=model)
65
- translation = pipe(input_text)
66
- return translation[0]['translation_text'], ""
67
- except KeyError:
68
- return "", f"Error: Translation from {source_readable} to {target} is not supported by Translation Models"
69
-
70
-
71
- with gr.Blocks() as demo:
72
- gr.HTML("""<html>
73
- <head>
74
- <style>
75
- h1 {
76
- text-align: center;
77
- }
78
- </style>
79
- </head>
80
- <body>
81
- <h1>Euskera-EU Basque translator</h1>
82
- </body>
83
- </html>""")
84
- with gr.Row():
85
- with gr.Column():
86
- source_language_dropdown = gr.Dropdown(choices=source_languages,
87
- value="Detect",
88
- label="Input Language - Input Hizkuntza")
89
- input_textbox = gr.Textbox(lines=5, placeholder="Enter text to translate", label="Input Text")
90
- with gr.Column():
91
- target_language_dropdown = gr.Dropdown(choices=["Basque", "English", "French", "Spanish"],
92
- value="Basque",
93
- label="Output Language - Output Hizkuntza")
94
- translated_textbox = gr.Textbox(lines=5, placeholder="", label="Translated Text")
95
- info_label = gr.HTML("")
96
- btn = gr.Button("Translate - Itzuli")
97
- source_language_dropdown.change(input_changed, inputs=[source_language_dropdown, input_textbox], outputs=[source_language_dropdown, target_language_dropdown])
98
- input_textbox.change(input_changed, inputs=[source_language_dropdown, input_textbox], outputs=[source_language_dropdown, target_language_dropdown])
99
- btn.click(translate, inputs=[input_textbox,
100
- source_language_dropdown,
101
- target_language_dropdown],
102
- outputs=[translated_textbox, info_label])
103
- gr.Examples(adibide_esaldiak, inputs=[input_textbox])
104
-
105
- if __name__ == "__main__":
106
  demo.launch()
 
1
+ # from responses import start
2
+ import gradio as gr
3
+ from language_directions import *
4
+ from transformers import pipeline
5
+ from adibideak import adibide_esaldiak
6
+
7
+ source_lang_dict = get_all_source_languages()
8
+ target_lang_dict = {}
9
+ source_languages = source_lang_dict.keys()
10
+
11
+ def get_auto_detect_source_dropdown(input_text):
12
+ source, _ = auto_detect_language_code(input_text)
13
+ language_name = get_name_from_iso_code(source)
14
+ source_dropdown_text = "Detected - " + language_name
15
+ update_source_languages_dict(source_lang_dict, source_dropdown_text)
16
+ source_language_dropdown = gr.Dropdown(choices=source_languages,
17
+ value=source_dropdown_text,
18
+ label="Input Language")
19
+ return source_language_dropdown, language_name
20
+
21
+ def get_target_dropdown(source_language_name, input_text):
22
+ global target_lang_dict
23
+ target_lang_dict, source_language = get_target_languages(source_lang_dict[source_language_name], input_text)
24
+ target_languages = list(target_lang_dict.keys())
25
+ default_target_value = None
26
+ if "English" in target_languages or "english" in target_languages:
27
+ default_target_value = "English"
28
+ else:
29
+ default_target_value = target_languages[0]
30
+ target_dropdown = gr.Dropdown(choices=target_languages,
31
+ value=default_target_value,
32
+ label="Output Language")
33
+ return target_dropdown
34
+
35
+ def get_dropdown_value(dropdown):
36
+ if isinstance(dropdown, gr.Dropdown):
37
+ dropdown_value = dropdown.constructor_args.get('value')
38
+ elif isinstance(dropdown, str):
39
+ dropdown_value = dropdown
40
+ return dropdown_value
41
+
42
+ def get_dropdowns(source_dropdown, input_text):
43
+ source_language_name = get_dropdown_value(source_dropdown)
44
+ if input_text and source_language_name == "Detect" or source_language_name.startswith("Detected"):
45
+ source_dropdown, source_language_name = get_auto_detect_source_dropdown(input_text)
46
+ target_dropdown = get_target_dropdown(source_language_name=source_language_name,
47
+ input_text=input_text)
48
+ return source_dropdown, target_dropdown
49
+
50
+ def input_changed(source_language_dropdown, input_text=""):
51
+ return get_dropdowns(source_dropdown=source_language_dropdown,
52
+ input_text=input_text)
53
+
54
+ def translate(input_text, source, target):
55
+ source_readable = source
56
+ if source == "Detect" or source.startswith("Detected"):
57
+ source, _ = auto_detect_language_code(input_text)
58
+ if source in source_lang_dict.keys():
59
+ source = source_lang_dict[source]
60
+ target_lang_dict, _ = get_target_languages(source)
61
+ try:
62
+ target = target_lang_dict[target]
63
+ model = f"Helsinki-NLP/opus-mt-{source}-{target}"
64
+ pipe = pipeline("translation", model=model)
65
+ translation = pipe(input_text)
66
+ return translation[0]['translation_text'], ""
67
+ except KeyError:
68
+ return "", f"Error: Translation from {source_readable} to {target} is not supported by Translation Models"
69
+
70
+
71
+ with gr.Blocks() as demo:
72
+ gr.HTML("""<html>
73
+ <head>
74
+ <style>
75
+ h2 {
76
+ text-align: center;
77
+ }
78
+ </style>
79
+ </head>
80
+ <body>
81
+ <h2>Euskera-EU Basque translator - itzultzailea</h2>
82
+ </body>
83
+ </html>""")
84
+ with gr.Row():
85
+ with gr.Column():
86
+ source_language_dropdown = gr.Dropdown(choices=source_languages,
87
+ value="Detect",
88
+ label="Input Language - Input Hizkuntza")
89
+ input_textbox = gr.Textbox(lines=5, placeholder="Enter text to translate", label="Input Text")
90
+ with gr.Column():
91
+ target_language_dropdown = gr.Dropdown(choices=["Basque", "English", "French", "Spanish"],
92
+ value="Basque",
93
+ label="Output Language - Output Hizkuntza")
94
+ translated_textbox = gr.Textbox(lines=5, placeholder="", label="Translated Text")
95
+ info_label = gr.HTML("")
96
+ btn = gr.Button("Translate - Itzuli")
97
+ source_language_dropdown.change(input_changed, inputs=[source_language_dropdown, input_textbox], outputs=[source_language_dropdown, target_language_dropdown])
98
+ input_textbox.change(input_changed, inputs=[source_language_dropdown, input_textbox], outputs=[source_language_dropdown, target_language_dropdown])
99
+ btn.click(translate, inputs=[input_textbox,
100
+ source_language_dropdown,
101
+ target_language_dropdown],
102
+ outputs=[translated_textbox, info_label])
103
+ gr.Examples(adibide_esaldiak, inputs=[input_textbox])
104
+
105
+ if __name__ == "__main__":
106
  demo.launch()