File size: 6,330 Bytes
f978ccd babcb18 95043cb f978ccd babcb18 992fd9e babcb18 992fd9e babcb18 992fd9e babcb18 f978ccd babcb18 f978ccd babcb18 f978ccd 95043cb fb025ec 95043cb f978ccd babcb18 f978ccd babcb18 95043cb babcb18 f978ccd babcb18 f978ccd babcb18 f978ccd |
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 |
import streamlit as st
import os.path
from collections import OrderedDict
from streamlit_option_menu import option_menu
# Define TITLE, TEAM_MEMBERS and PROMOTION values, in config.py.
import config
from tabs.custom_vectorizer import custom_tokenizer, custom_preprocessor
import os
from translate_app import tr
# Initialize a session state variable that tracks the sidebar state (either 'expanded' or 'collapsed').
if 'sidebar_state' not in st.session_state:
st.session_state.sidebar_state = 'expanded'
else:
st.session_state.sidebar_state = 'auto'
st.set_page_config (
page_title=config.TITLE,
page_icon= "assets/faviconV2.png",
initial_sidebar_state=st.session_state.sidebar_state
)
# Si l'application tourne localement, session_state.Cloud == 0
# Si elle tourne sur le Cloud de Hugging Face, ==1
st.session_state.Cloud = 0
# En fonction de la valeur de varible précédente, le data path est différent
if st.session_state.Cloud == 0:
st.session_state.DataPath = "../data"
st.session_state.ImagePath = "../images"
st.session_state.reCalcule = False
else:
st.session_state.DataPath = "data"
st.session_state.ImagePath = "../images"
st.session_state.reCalcule = False
# Define the root folders depending on local/cloud run
thisfile = os.path.abspath(__file__)
print("Path before:",os.path.abspath(__file__))
if ('/' in thisfile):
os.chdir(os.path.dirname(thisfile))
print("Path after:",os.path.abspath(__file__))
# Nécessaire pour la version windows 11
if st.session_state.Cloud == 0:
os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'
# Tabs in the ./tabs folder, imported here.
from tabs import intro, exploration_tab, data_viz_tab, id_lang_tab, modelisation_dict_tab, modelisation_seq2seq_tab, game_tab
with open("style.css", "r") as f:
style = f.read()
st.markdown(f"<style>{style}</style>", unsafe_allow_html=True)
# Add tab in this ordered dict by
# passing the name in the sidebar as key and the imported tab
# as value as follow :
TABS = OrderedDict(
[
(tr(intro.sidebar_name), intro),
(tr(exploration_tab.sidebar_name), exploration_tab),
(tr(data_viz_tab.sidebar_name), data_viz_tab),
(tr(id_lang_tab.sidebar_name), id_lang_tab),
(tr(modelisation_dict_tab.sidebar_name), modelisation_dict_tab),
(tr(modelisation_seq2seq_tab.sidebar_name), modelisation_seq2seq_tab),
(tr(game_tab.sidebar_name), game_tab ),
]
)
lang_tgt = ['fr','en','af','ak','sq','de','am','en','ar','hy','as','az','ba','bm','eu','bn','be','my','bs','bg','ks','ca','ny','zh','si','ko','co','ht','hr','da','dz','gd','es','eo','et','ee','fo','fj','fi','fr','fy','gl','cy','lg','ka','el','gn','gu','ha','he','hi','hu','ig','id','iu','ga','is','it','ja','kn','kk','km','ki','rw','ky','rn','ku','lo','la','lv','li','ln','lt','lb','mk','ms','ml','dv','mg','mt','mi','mr','mn','nl','ne','no','nb','nn','oc','or','ug','ur','uz','ps','pa','fa','pl','pt','ro','ru','sm','sg','sa','sc','sr','sn','sd','sk','sl','so','st','su','sv','sw','ss','tg','tl','ty','ta','tt','cs','te','th','bo','ti','to','ts','tn','tr','tk','tw','uk','vi','wo','xh','yi']
label_lang = ['Français', 'Anglais','Afrikaans','Akan','Albanais','Allemand','Amharique','Anglais','Arabe','Arménien','Assamais','Azéri','Bachkir','Bambara','Basque','Bengali','Biélorusse','Birman','Bosnien','Bulgare','Cachemiri','Catalan','Chichewa','Chinois','Cingalais','Coréen','Corse','Créolehaïtien','Croate','Danois','Dzongkha','Écossais','Espagnol','Espéranto','Estonien','Ewe','Féroïen','Fidjien','Finnois','Français','Frisonoccidental','Galicien','Gallois','Ganda','Géorgien','Grecmoderne','Guarani','Gujarati','Haoussa','Hébreu','Hindi','Hongrois','Igbo','Indonésien','Inuktitut','Irlandais','Islandais','Italien','Japonais','Kannada','Kazakh','Khmer','Kikuyu','Kinyarwanda','Kirghiz','Kirundi','Kurde','Lao','Latin','Letton','Limbourgeois','Lingala','Lituanien','Luxembourgeois','Macédonien','Malais','Malayalam','Maldivien','Malgache','Maltais','MaorideNouvelle-Zélande','Marathi','Mongol','Néerlandais','Népalais','Norvégien','Norvégienbokmål','Norvégiennynorsk','Occitan','Oriya','Ouïghour','Ourdou','Ouzbek','Pachto','Pendjabi','Persan','Polonais','Portugais','Roumain','Russe','Samoan','Sango','Sanskrit','Sarde','Serbe','Shona','Sindhi','Slovaque','Slovène','Somali','SothoduSud','Soundanais','Suédois','Swahili','Swati','Tadjik','Tagalog','Tahitien','Tamoul','Tatar','Tchèque','Télougou','Thaï','Tibétain','Tigrigna','Tongien','Tsonga','Tswana','Turc','Turkmène','Twi','Ukrainien','Vietnamien','Wolof','Xhosa','Yiddish']
@st.cache_data
def find_lang_label(lang_sel):
global lang_tgt, label_lang
return label_lang[lang_tgt.index(lang_sel)]
def run():
st.sidebar.image(
"assets/demosthene_logo.png",
width=270,
)
with st.sidebar:
tab_name = option_menu(None, list(TABS.keys()),
# icons=['house', 'bi-binoculars', 'bi bi-graph-up', 'bi-chat-right-text','bi-book', 'bi-body-text'], menu_icon="cast", default_index=0,
icons=['house', 'binoculars', 'graph-up', 'search','book', 'chat-right-text','controller'], menu_icon="cast", default_index=0,
styles={"container": {"padding": "0!important","background-color": "#10b8dd", "border-radius": "0!important"},
"nav-link": {"font-size": "1rem", "text-align": "left", "margin":"0em", "padding": "0em",
"padding-left": "0.2em", "--hover-color": "#eee", "font-weight": "400",
"font-family": "Source Sans Pro, sans-serif"}
})
# tab_name = st.sidebar.radio("", list(TABS.keys()), 0)
st.sidebar.markdown("---")
st.sidebar.markdown(f"## {config.PROMOTION}")
st.sidebar.markdown("### Team members:")
for member in config.TEAM_MEMBERS:
st.sidebar.markdown(member.sidebar_markdown(), unsafe_allow_html=True)
with st.sidebar:
st.selectbox("langue:",lang_tgt, format_func = find_lang_label, key="Language", label_visibility="hidden")
tab = TABS[tab_name]
tab.run()
if __name__ == "__main__":
run()
|