JLW commited on
Commit
85238ea
·
1 Parent(s): 8e730f8

Add language level selection

Browse files
Files changed (1) hide show
  1. app.py +28 -13
app.py CHANGED
@@ -38,7 +38,7 @@ TOOLS_LIST = ['serpapi', 'wolfram-alpha', 'pal-math', 'pal-colored-objects', 'ne
38
  'open-meteo-api'] # 'google-search'
39
  TOOLS_DEFAULT_LIST = ['serpapi', 'pal-math']
40
  BUG_FOUND_MSG = "Congratulations, you've found a bug in this application!"
41
- AUTH_ERR_MSG = "Please paste your OpenAI key."
42
  MAX_TOKENS = 512
43
 
44
  # Pertains to Express-inator functionality
@@ -47,11 +47,12 @@ MAX_WORDS = 400
47
  FORMALITY_DEFAULT = "N/A"
48
  TEMPERATURE_DEFAULT = 0.5
49
  EMOTION_DEFAULT = "N/A"
 
50
  TRANSLATE_TO_DEFAULT = "N/A"
51
  LITERARY_STYLE_DEFAULT = "N/A"
52
  PROMPT_TEMPLATE = PromptTemplate(
53
- input_variables=["original_words", "num_words", "formality", "emotions", "translate_to", "literary_style"],
54
- template="Restate {num_words}{formality}{emotions}{translate_to}{literary_style}the following: \n{original_words}\n",
55
  )
56
 
57
  POLLY_VOICE_DATA = PollyVoiceData()
@@ -90,7 +91,7 @@ def transcribe(aud_inp, whisper_lang):
90
  def transform_text(desc, express_chain, num_words, formality,
91
  anticipation_level, joy_level, trust_level,
92
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
93
- translate_to, literary_style):
94
  num_words_prompt = ""
95
  if num_words and int(num_words) != 0:
96
  num_words_prompt = "using up to " + str(num_words) + " words, "
@@ -136,9 +137,13 @@ def transform_text(desc, express_chain, num_words, formality,
136
  else:
137
  emotions_str = "with emotions of " + ", ".join(emotions[:-1]) + " and " + emotions[-1] + ", "
138
 
 
 
 
 
139
  translate_to_str = ""
140
  if translate_to != TRANSLATE_TO_DEFAULT:
141
- translate_to_str = "translated to " + translate_to + ", "
142
 
143
  literary_style_str = ""
144
  if literary_style != LITERARY_STYLE_DEFAULT:
@@ -166,15 +171,16 @@ def transform_text(desc, express_chain, num_words, formality,
166
  num_words=num_words_prompt,
167
  formality=formality_str,
168
  emotions=emotions_str,
 
169
  translate_to=translate_to_str,
170
  literary_style=literary_style_str
171
  )
172
 
173
- trans_instr = num_words_prompt + formality_str + emotions_str + translate_to_str + literary_style_str
174
  if express_chain and len(trans_instr.strip()) > 0:
175
  generated_text = express_chain.run(
176
  {'original_words': desc, 'num_words': num_words_prompt, 'formality': formality_str,
177
- 'emotions': emotions_str, 'translate_to': translate_to_str,
178
  'literary_style': literary_style_str}).strip()
179
  else:
180
  print("Not transforming text")
@@ -292,7 +298,7 @@ class ChatWrapper:
292
  trace_chain: bool, speak_text: bool, monologue: bool, express_chain: Optional[LLMChain],
293
  num_words, formality, anticipation_level, joy_level, trust_level,
294
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
295
- translate_to, literary_style
296
  ):
297
  """Execute the chat functionality."""
298
  self.lock.acquire()
@@ -304,7 +310,8 @@ class ChatWrapper:
304
  print("monologue: ", monologue)
305
  history = history or []
306
  # If chain is None, that is because no API key was provided.
307
- output = "Please paste your OpenAI key to use this application."
 
308
  hidden_text = output
309
 
310
  if chain and chain != "":
@@ -319,7 +326,7 @@ class ChatWrapper:
319
  output = transform_text(output, express_chain, num_words, formality, anticipation_level, joy_level,
320
  trust_level,
321
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
322
- translate_to, literary_style)
323
 
324
  text_to_display = output
325
  if trace_chain:
@@ -443,6 +450,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
443
  sadness_level_state = gr.State(EMOTION_DEFAULT)
444
  disgust_level_state = gr.State(EMOTION_DEFAULT)
445
  anger_level_state = gr.State(EMOTION_DEFAULT)
 
446
  translate_to_state = gr.State(TRANSLATE_TO_DEFAULT)
447
  literary_style_state = gr.State(LITERARY_STYLE_DEFAULT)
448
 
@@ -536,7 +544,14 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
536
  outputs=[whisper_lang_state])
537
 
538
  with gr.Tab("Translate to"):
539
- translate_to_radio = gr.Radio(label="Translate to:", choices=[
 
 
 
 
 
 
 
540
  TRANSLATE_TO_DEFAULT, "Arabic", "Arabic (Gulf)", "Catalan", "Chinese (Cantonese)", "Chinese (Mandarin)",
541
  "Danish", "Dutch", "English (Australian)", "English (British)", "English (Indian)", "English (New Zealand)",
542
  "English (South African)", "English (US)", "English (Welsh)", "Finnish", "French", "French (Canadian)",
@@ -663,7 +678,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
663
  express_chain_state, num_words_state, formality_state,
664
  anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
665
  surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
666
- translate_to_state, literary_style_state],
667
  # outputs=[chatbot, history_state, video_html, my_file, message])
668
  outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
669
 
@@ -672,7 +687,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
672
  express_chain_state, num_words_state, formality_state,
673
  anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
674
  surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
675
- translate_to_state, literary_style_state],
676
  # outputs=[chatbot, history_state, video_html, my_file, message])
677
  outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
678
 
 
38
  'open-meteo-api'] # 'google-search'
39
  TOOLS_DEFAULT_LIST = ['serpapi', 'pal-math']
40
  BUG_FOUND_MSG = "Congratulations, you've found a bug in this application!"
41
+ AUTH_ERR_MSG = "Please paste your OpenAI key. It is not necessary to hit a button or key after pasting it."
42
  MAX_TOKENS = 512
43
 
44
  # Pertains to Express-inator functionality
 
47
  FORMALITY_DEFAULT = "N/A"
48
  TEMPERATURE_DEFAULT = 0.5
49
  EMOTION_DEFAULT = "N/A"
50
+ LANG_LEVEL_DEFAULT = "N/A"
51
  TRANSLATE_TO_DEFAULT = "N/A"
52
  LITERARY_STYLE_DEFAULT = "N/A"
53
  PROMPT_TEMPLATE = PromptTemplate(
54
+ input_variables=["original_words", "num_words", "formality", "emotions", "lang_level", "translate_to", "literary_style"],
55
+ template="Restate {num_words}{formality}{emotions}{lang_level}{translate_to}{literary_style}the following: \n{original_words}\n",
56
  )
57
 
58
  POLLY_VOICE_DATA = PollyVoiceData()
 
91
  def transform_text(desc, express_chain, num_words, formality,
92
  anticipation_level, joy_level, trust_level,
93
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
94
+ lang_level, translate_to, literary_style):
95
  num_words_prompt = ""
96
  if num_words and int(num_words) != 0:
97
  num_words_prompt = "using up to " + str(num_words) + " words, "
 
137
  else:
138
  emotions_str = "with emotions of " + ", ".join(emotions[:-1]) + " and " + emotions[-1] + ", "
139
 
140
+ lang_level_str = ""
141
+ if lang_level != LANG_LEVEL_DEFAULT:
142
+ lang_level_str = "at a " + lang_level + " level, " if translate_to == TRANSLATE_TO_DEFAULT else ""
143
+
144
  translate_to_str = ""
145
  if translate_to != TRANSLATE_TO_DEFAULT:
146
+ translate_to_str = "translated to " + ("" if lang_level == TRANSLATE_TO_DEFAULT else lang_level + " level ") + translate_to + ", "
147
 
148
  literary_style_str = ""
149
  if literary_style != LITERARY_STYLE_DEFAULT:
 
171
  num_words=num_words_prompt,
172
  formality=formality_str,
173
  emotions=emotions_str,
174
+ lang_level=lang_level_str,
175
  translate_to=translate_to_str,
176
  literary_style=literary_style_str
177
  )
178
 
179
+ trans_instr = num_words_prompt + formality_str + emotions_str + lang_level_str + translate_to_str + literary_style_str
180
  if express_chain and len(trans_instr.strip()) > 0:
181
  generated_text = express_chain.run(
182
  {'original_words': desc, 'num_words': num_words_prompt, 'formality': formality_str,
183
+ 'emotions': emotions_str, 'lang_level': lang_level_str, 'translate_to': translate_to_str,
184
  'literary_style': literary_style_str}).strip()
185
  else:
186
  print("Not transforming text")
 
298
  trace_chain: bool, speak_text: bool, monologue: bool, express_chain: Optional[LLMChain],
299
  num_words, formality, anticipation_level, joy_level, trust_level,
300
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
301
+ lang_level, translate_to, literary_style
302
  ):
303
  """Execute the chat functionality."""
304
  self.lock.acquire()
 
310
  print("monologue: ", monologue)
311
  history = history or []
312
  # If chain is None, that is because no API key was provided.
313
+ output = "Please paste your OpenAI key to use this application. It is not necessary to hit a button or " \
314
+ "key after pasting it."
315
  hidden_text = output
316
 
317
  if chain and chain != "":
 
326
  output = transform_text(output, express_chain, num_words, formality, anticipation_level, joy_level,
327
  trust_level,
328
  fear_level, surprise_level, sadness_level, disgust_level, anger_level,
329
+ lang_level, translate_to, literary_style)
330
 
331
  text_to_display = output
332
  if trace_chain:
 
450
  sadness_level_state = gr.State(EMOTION_DEFAULT)
451
  disgust_level_state = gr.State(EMOTION_DEFAULT)
452
  anger_level_state = gr.State(EMOTION_DEFAULT)
453
+ lang_level_state = gr.State(LANG_LEVEL_DEFAULT)
454
  translate_to_state = gr.State(TRANSLATE_TO_DEFAULT)
455
  literary_style_state = gr.State(LITERARY_STYLE_DEFAULT)
456
 
 
544
  outputs=[whisper_lang_state])
545
 
546
  with gr.Tab("Translate to"):
547
+ lang_level_radio = gr.Radio(label="Language level:", choices=[
548
+ LANG_LEVEL_DEFAULT, "1st grade", "2nd grade", "3rd grade", "4th grade", "5th grade", "6th grade",
549
+ "7th grade", "8th grade", "9th grade", "10th grade", "11th grade", "12th grade", "University"],
550
+ value=LANG_LEVEL_DEFAULT)
551
+ lang_level_radio.change(update_foo, inputs=[lang_level_radio, lang_level_state],
552
+ outputs=[lang_level_state])
553
+
554
+ translate_to_radio = gr.Radio(label="Language:", choices=[
555
  TRANSLATE_TO_DEFAULT, "Arabic", "Arabic (Gulf)", "Catalan", "Chinese (Cantonese)", "Chinese (Mandarin)",
556
  "Danish", "Dutch", "English (Australian)", "English (British)", "English (Indian)", "English (New Zealand)",
557
  "English (South African)", "English (US)", "English (Welsh)", "Finnish", "French", "French (Canadian)",
 
678
  express_chain_state, num_words_state, formality_state,
679
  anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
680
  surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
681
+ lang_level_state, translate_to_state, literary_style_state],
682
  # outputs=[chatbot, history_state, video_html, my_file, message])
683
  outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
684
 
 
687
  express_chain_state, num_words_state, formality_state,
688
  anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
689
  surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
690
+ lang_level_state, translate_to_state, literary_style_state],
691
  # outputs=[chatbot, history_state, video_html, my_file, message])
692
  outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
693