AItool commited on
Commit
827c36f
·
verified ·
1 Parent(s): 99f507b

Update app.py

Browse files

order of buttom text euskera first

Files changed (1) hide show
  1. app.py +122 -122
app.py CHANGED
@@ -1,123 +1,123 @@
1
- """
2
- @author: idoia lerchundi
3
- """
4
- import streamlit as st
5
- from language_directions import *
6
- from transformers import pipeline
7
- from adibideak import adibide_esaldiak
8
- from PIL import Image
9
-
10
-
11
- def local_css(file_name):
12
- with open(file_name) as f:
13
- st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
14
-
15
- st.set_page_config(
16
- page_title="Streamlit iCodeIdoia",
17
- )
18
-
19
- st.image("images/banner.jpg")
20
-
21
- # ---- LOAD
22
- local_css("styles/style.css")
23
-
24
- source_lang_dict = get_all_source_languages()
25
- target_lang_dict = {}
26
- source_languages = source_lang_dict.keys()
27
-
28
- def get_auto_detect_source_dropdown(input_text):
29
- source, _ = auto_detect_language_code(input_text)
30
- language_name = get_name_from_iso_code(source)
31
- source_dropdown_text = "Detected - " + language_name
32
- update_source_languages_dict(source_lang_dict, source_dropdown_text)
33
- source_language_dropdown = st.selectbox(choices=source_languages,
34
- value=source_dropdown_text,
35
- label="Input Language")
36
-
37
- ########################
38
- return source_language_dropdown, language_name
39
-
40
- def get_target_dropdown(source_language_name, input_text):
41
- global target_lang_dict
42
- target_lang_dict, source_language = get_target_languages(source_lang_dict[source_language_name], input_text)
43
- target_languages = list(target_lang_dict.keys())
44
- default_target_value = None
45
- if "English" in target_languages or "english" in target_languages:
46
- default_target_value = "English"
47
- else:
48
- default_target_value = target_languages[0]
49
- target_dropdown = st.selectbox(choices=target_languages,
50
- value=default_target_value,
51
- label="Output Language")
52
- return target_dropdown
53
-
54
- def get_dropdown_value(dropdown):
55
- if isinstance(dropdown, st.selectbox):
56
- dropdown_value = dropdown.constructor_args.get('value')
57
- elif isinstance(dropdown, str):
58
- dropdown_value = dropdown
59
- return dropdown_value
60
-
61
- def get_dropdowns(source_dropdown, input_text):
62
- source_language_name = get_dropdown_value(source_dropdown)
63
- if input_text and source_language_name == "Detect" or source_language_name.startswith("Detected"):
64
- source_dropdown, source_language_name = get_auto_detect_source_dropdown(input_text)
65
- target_dropdown = get_target_dropdown(source_language_name=source_language_name,
66
- input_text=input_text)
67
- return source_dropdown, target_dropdown
68
-
69
- def input_changed(source_language_dropdown, input_text=""):
70
- return get_dropdowns(source_dropdown=source_language_dropdown,
71
- input_text=input_text)
72
-
73
- def translate(input_text, source, target):
74
- source_readable = source
75
- if source == "Detect" or source.startswith("Detected"):
76
- source, _ = auto_detect_language_code(input_text)
77
- if source in source_lang_dict.keys():
78
- source = source_lang_dict[source]
79
- target_lang_dict, _ = get_target_languages(source)
80
- try:
81
- target = target_lang_dict[target]
82
- model = f"Helsinki-NLP/opus-mt-{source}-{target}"
83
- pipe = pipeline("translation", model=model)
84
- translation = pipe(input_text)
85
- return translation[0]['translation_text']
86
- except KeyError:
87
- return f"Error: Translation from {source_readable} to {target} is not supported by Translation Models"
88
-
89
- with st.container():
90
- st.header("Euskera-EU Basque translator - itzultzailea")
91
- st.caption("This is a trained AI translator - Hau AI itzultzaile bat da.")
92
- coffee = """
93
- <div style="margin: 0.75em 0;"><a href="https://www.buymeacoffee.com/Artgen" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a></div>
94
- """
95
- col1, col2 = st.columns([1,1], gap="small")
96
-
97
- with col1:
98
- #source_language_dropdown.change
99
- slang = ("Detect", "Basque") # Example list of languages
100
- source_language_dropdown = st.selectbox("Language - Hizkuntza", slang, key='source_languages')
101
-
102
- # Create a text area widget
103
- input_textbox = st.text_area("Enter text - Idatzi textua", value="", key='input_text')
104
-
105
- with col2:
106
- tlang=("","English","German","Russian","Spanish")
107
- target_language_dropdown = st.selectbox("Translation - Itzulpena", tlang, key='target_languages')
108
- #translated_textbox = st.text_area("Translation - Itzulpena", value="", disabled=False)
109
-
110
- if st.button('Translate - Itzuli') and len(input_textbox)> 0:
111
- translated_output = translate(input_textbox,source_language_dropdown,target_language_dropdown)
112
- st.text_area("Translation - Itzulpena", value=translated_output, disabled=True)
113
-
114
- @st.cache_data
115
- def load_data(inputt,inputl,targetl):
116
- data = translate(inputt,inputl,targetl)
117
- return data
118
-
119
- if len(target_language_dropdown)>1 and len(source_language_dropdown)>0 and target_language_dropdown!= "" and source_language_dropdown!="Detect" and len(input_textbox)>0:
120
- data_load_state = st.text("Translating - Itzultzen..")
121
- #data = load_data(input_textbox,source_language_dropdown,target_language_dropdown)
122
- data_load_state.text("Translation...completed - Itzulpena amaituta.")
123
  st.markdown(coffee, unsafe_allow_html=True)
 
1
+ """
2
+ @author: idoia lerchundi
3
+ """
4
+ import streamlit as st
5
+ from language_directions import *
6
+ from transformers import pipeline
7
+ from adibideak import adibide_esaldiak
8
+ from PIL import Image
9
+
10
+
11
+ def local_css(file_name):
12
+ with open(file_name) as f:
13
+ st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)
14
+
15
+ st.set_page_config(
16
+ page_title="Streamlit iCodeIdoia",
17
+ )
18
+
19
+ st.image("images/banner.jpg")
20
+
21
+ # ---- LOAD
22
+ local_css("styles/style.css")
23
+
24
+ source_lang_dict = get_all_source_languages()
25
+ target_lang_dict = {}
26
+ source_languages = source_lang_dict.keys()
27
+
28
+ def get_auto_detect_source_dropdown(input_text):
29
+ source, _ = auto_detect_language_code(input_text)
30
+ language_name = get_name_from_iso_code(source)
31
+ source_dropdown_text = "Detected - " + language_name
32
+ update_source_languages_dict(source_lang_dict, source_dropdown_text)
33
+ source_language_dropdown = st.selectbox(choices=source_languages,
34
+ value=source_dropdown_text,
35
+ label="Input Language")
36
+
37
+ ########################
38
+ return source_language_dropdown, language_name
39
+
40
+ def get_target_dropdown(source_language_name, input_text):
41
+ global target_lang_dict
42
+ target_lang_dict, source_language = get_target_languages(source_lang_dict[source_language_name], input_text)
43
+ target_languages = list(target_lang_dict.keys())
44
+ default_target_value = None
45
+ if "English" in target_languages or "english" in target_languages:
46
+ default_target_value = "English"
47
+ else:
48
+ default_target_value = target_languages[0]
49
+ target_dropdown = st.selectbox(choices=target_languages,
50
+ value=default_target_value,
51
+ label="Output Language")
52
+ return target_dropdown
53
+
54
+ def get_dropdown_value(dropdown):
55
+ if isinstance(dropdown, st.selectbox):
56
+ dropdown_value = dropdown.constructor_args.get('value')
57
+ elif isinstance(dropdown, str):
58
+ dropdown_value = dropdown
59
+ return dropdown_value
60
+
61
+ def get_dropdowns(source_dropdown, input_text):
62
+ source_language_name = get_dropdown_value(source_dropdown)
63
+ if input_text and source_language_name == "Detect" or source_language_name.startswith("Detected"):
64
+ source_dropdown, source_language_name = get_auto_detect_source_dropdown(input_text)
65
+ target_dropdown = get_target_dropdown(source_language_name=source_language_name,
66
+ input_text=input_text)
67
+ return source_dropdown, target_dropdown
68
+
69
+ def input_changed(source_language_dropdown, input_text=""):
70
+ return get_dropdowns(source_dropdown=source_language_dropdown,
71
+ input_text=input_text)
72
+
73
+ def translate(input_text, source, target):
74
+ source_readable = source
75
+ if source == "Detect" or source.startswith("Detected"):
76
+ source, _ = auto_detect_language_code(input_text)
77
+ if source in source_lang_dict.keys():
78
+ source = source_lang_dict[source]
79
+ target_lang_dict, _ = get_target_languages(source)
80
+ try:
81
+ target = target_lang_dict[target]
82
+ model = f"Helsinki-NLP/opus-mt-{source}-{target}"
83
+ pipe = pipeline("translation", model=model)
84
+ translation = pipe(input_text)
85
+ return translation[0]['translation_text']
86
+ except KeyError:
87
+ return f"Error: Translation from {source_readable} to {target} is not supported by Translation Models"
88
+
89
+ with st.container():
90
+ st.header("Euskera-EU Basque translator - itzultzailea")
91
+ st.caption("This is a trained AI translator - Hau AI itzultzaile bat da.")
92
+ coffee = """
93
+ <div style="margin: 0.75em 0;"><a href="https://www.buymeacoffee.com/Artgen" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a></div>
94
+ """
95
+ col1, col2 = st.columns([1,1], gap="small")
96
+
97
+ with col1:
98
+ #source_language_dropdown.change
99
+ slang = ("Detect", "Basque") # Example list of languages
100
+ source_language_dropdown = st.selectbox("Language - Hizkuntza", slang, key='source_languages')
101
+
102
+ # Create a text area widget
103
+ input_textbox = st.text_area("Enter text - Idatzi textua", value="", key='input_text')
104
+
105
+ with col2:
106
+ tlang=("","English","German","Russian","Spanish")
107
+ target_language_dropdown = st.selectbox("Translation - Itzulpena", tlang, key='target_languages')
108
+ #translated_textbox = st.text_area("Translation - Itzulpena", value="", disabled=False)
109
+
110
+ if st.button('Itzuli - Translate') and len(input_textbox)> 0:
111
+ translated_output = translate(input_textbox,source_language_dropdown,target_language_dropdown)
112
+ st.text_area("Itzulpena - Translation", value=translated_output, disabled=True)
113
+
114
+ @st.cache_data
115
+ def load_data(inputt,inputl,targetl):
116
+ data = translate(inputt,inputl,targetl)
117
+ return data
118
+
119
+ if len(target_language_dropdown)>1 and len(source_language_dropdown)>0 and target_language_dropdown!= "" and source_language_dropdown!="Detect" and len(input_textbox)>0:
120
+ data_load_state = st.text("Itzultzen - Translating...")
121
+ #data = load_data(input_textbox,source_language_dropdown,target_language_dropdown)
122
+ data_load_state.text("Itzulpena amaituta - Translation...completed.")
123
  st.markdown(coffee, unsafe_allow_html=True)