edaiofficial commited on
Commit
cd1f2cb
·
1 Parent(s): c0a0850

pre-loading models

Browse files
Files changed (1) hide show
  1. app.py +18 -5
app.py CHANGED
@@ -10,7 +10,7 @@ language_map = {'English':'en','Swahili':'sw','Fon':'fon','Igbo':'ig',
10
  'Efik':'efi','Twi':'twi','Afrikaans':'af','Yoruba':'yo'}
11
 
12
  #List of available languages I worked on.
13
- available_languages =list(language_map.keys())
14
 
15
 
16
  def load_config(path="configs/default.yaml") -> dict:
@@ -27,8 +27,8 @@ def load_config(path="configs/default.yaml") -> dict:
27
  return cfg
28
 
29
  def load_model(source_language_,target_language_):
30
- source_language = language_map[source_language_]
31
- target_language = language_map[target_language_]
32
 
33
  #source_language = 'en'
34
  #target_language = 'sw'
@@ -50,11 +50,23 @@ def load_model(source_language_,target_language_):
50
  params = load_params_for_prediction(parsed_yaml_file,best_ckpt)
51
  return params
52
 
 
 
 
 
 
 
 
53
  def get_translation(source_language,target_language,source_sentence=None,source_file=None):
54
  '''
55
  This takes a sentence and gets the translation.
56
  type_=2 tells joeynmt translate that it should expect a sentence.
57
  '''
 
 
 
 
 
58
  source = source_sentence
59
  type_=2
60
  if source_file!=None:
@@ -62,13 +74,14 @@ def get_translation(source_language,target_language,source_sentence=None,source_
62
  source = source_file.name
63
  try:
64
 
65
- params = load_model(source_language,target_language)
 
66
  pred = translate(params,source,type_)
67
  except Exception:
68
  return f'There was an issue loading the translation model for {source_language} -> {target_language}. Try another pair please'
69
 
70
  return pred[0] if source_file==None else pred
71
-
72
 
73
 
74
 
 
10
  'Efik':'efi','Twi':'twi','Afrikaans':'af','Yoruba':'yo'}
11
 
12
  #List of available languages I worked on.
13
+ available_language_pairs =['en-sw','en-af','en-ar','efi-en','en-ha','en-ig','en-fon','en-twi','sn-en','sw-en','yo-en']
14
 
15
 
16
  def load_config(path="configs/default.yaml") -> dict:
 
27
  return cfg
28
 
29
  def load_model(source_language_,target_language_):
30
+ #source_language = language_map[source_language_]
31
+ #target_language = language_map[target_language_]
32
 
33
  #source_language = 'en'
34
  #target_language = 'sw'
 
50
  params = load_params_for_prediction(parsed_yaml_file,best_ckpt)
51
  return params
52
 
53
+ #Load models of all available language pairs
54
+ model_mapping = {}
55
+ for availabe_lang in available_language_pairs:
56
+ model_mapping.update({availabe_lang:load_model(availabe_lang.split('-')[0],availabe_lang.split('-')[1])})
57
+
58
+
59
+
60
  def get_translation(source_language,target_language,source_sentence=None,source_file=None):
61
  '''
62
  This takes a sentence and gets the translation.
63
  type_=2 tells joeynmt translate that it should expect a sentence.
64
  '''
65
+
66
+ source_language_ = language_map[source_language]
67
+ target_language_ = language_map[target_language]
68
+ params =
69
+
70
  source = source_sentence
71
  type_=2
72
  if source_file!=None:
 
74
  source = source_file.name
75
  try:
76
 
77
+ #params = load_model(source_language,target_language)
78
+ params = model_mapping[f'{source_language_}-{target_language_}']
79
  pred = translate(params,source,type_)
80
  except Exception:
81
  return f'There was an issue loading the translation model for {source_language} -> {target_language}. Try another pair please'
82
 
83
  return pred[0] if source_file==None else pred
84
+
85
 
86
 
87