Make speaking text an option in the Settings tab
Browse files
app.py
CHANGED
|
@@ -228,7 +228,8 @@ def run_chain(chain, inp, capture_hidden_text):
|
|
| 228 |
except AuthenticationError as ae:
|
| 229 |
error_msg = AUTH_ERR_MSG
|
| 230 |
except RateLimitError as rle:
|
| 231 |
-
error_msg = "\n\nRateLimitError, " + str(
|
|
|
|
| 232 |
except ValueError as ve:
|
| 233 |
error_msg = "\n\nValueError, " + str(ve)
|
| 234 |
except InvalidRequestError as ire:
|
|
@@ -280,14 +281,15 @@ def run_chain(chain, inp, capture_hidden_text):
|
|
| 280 |
|
| 281 |
def chat(
|
| 282 |
inp: str, history: Optional[Tuple[str, str]], chain: Optional[ConversationChain],
|
| 283 |
-
trace_chain: bool, express_chain: Optional[LLMChain],
|
| 284 |
-
trust_level,
|
| 285 |
fear_level, surprise_level, sadness_level, disgust_level, anger_level,
|
| 286 |
translate_to, literary_style):
|
| 287 |
"""Execute the chat functionality."""
|
| 288 |
print("\n==== date/time: " + str(datetime.datetime.now()) + " ====")
|
| 289 |
print("inp: " + inp)
|
| 290 |
print("trace_chain: ", trace_chain)
|
|
|
|
| 291 |
history = history or []
|
| 292 |
# If chain is None, that is because no API key was provided.
|
| 293 |
output = "Please paste your OpenAI key to use this application."
|
|
@@ -306,7 +308,9 @@ def chat(
|
|
| 306 |
history.append((inp, text_to_display))
|
| 307 |
|
| 308 |
# html_video, temp_file = do_html_video_speak(output)
|
| 309 |
-
html_audio, temp_aud_file =
|
|
|
|
|
|
|
| 310 |
|
| 311 |
# return history, history, html_video, temp_file, ""
|
| 312 |
return history, history, html_audio, temp_aud_file, ""
|
|
@@ -400,6 +404,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 400 |
express_chain_state = gr.State()
|
| 401 |
tools_list_state = gr.State(TOOLS_DEFAULT_LIST)
|
| 402 |
trace_chain_state = gr.State(False)
|
|
|
|
| 403 |
|
| 404 |
# Pertains to Express-inator functionality
|
| 405 |
num_words_state = gr.State(NUM_WORDS_DEFAULT)
|
|
@@ -463,7 +468,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 463 |
inputs=message
|
| 464 |
)
|
| 465 |
|
| 466 |
-
with gr.Tab("
|
| 467 |
tools_cb_group = gr.CheckboxGroup(label="Tools:", choices=TOOLS_LIST,
|
| 468 |
value=TOOLS_DEFAULT_LIST)
|
| 469 |
tools_cb_group.change(update_selected_tools,
|
|
@@ -474,10 +479,14 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 474 |
trace_chain_cb.change(update_foo, inputs=[trace_chain_cb, trace_chain_state],
|
| 475 |
outputs=[trace_chain_state])
|
| 476 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 477 |
with gr.Tab("Formality"):
|
| 478 |
formality_radio = gr.Radio(label="Formality:",
|
| 479 |
-
|
| 480 |
-
|
| 481 |
formality_radio.change(update_foo,
|
| 482 |
inputs=[formality_radio, formality_state],
|
| 483 |
outputs=[formality_state])
|
|
@@ -500,7 +509,8 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 500 |
|
| 501 |
with gr.Tab("Lit style"):
|
| 502 |
literary_style_radio = gr.Radio(label="Literary style:", choices=[
|
| 503 |
-
LITERARY_STYLE_DEFAULT, "Prose", "Summary", "Outline", "Bullets", "Poetry", "Haiku", "Limerick", "Joke",
|
|
|
|
| 504 |
value=LITERARY_STYLE_DEFAULT)
|
| 505 |
|
| 506 |
literary_style_radio.change(update_foo,
|
|
@@ -579,7 +589,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 579 |
|
| 580 |
gr.HTML("<center>Powered by <a href='https://github.com/hwchase17/langchain'>LangChain 🦜️🔗</a></center>")
|
| 581 |
|
| 582 |
-
message.submit(chat, inputs=[message, history_state, chain_state, trace_chain_state,
|
| 583 |
express_chain_state, num_words_state, formality_state,
|
| 584 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
| 585 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
|
@@ -587,7 +597,7 @@ with gr.Blocks(css=".gradio-container {background-color: lightgray}") as block:
|
|
| 587 |
# outputs=[chatbot, history_state, video_html, my_file, message])
|
| 588 |
outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
|
| 589 |
|
| 590 |
-
submit.click(chat, inputs=[message, history_state, chain_state, trace_chain_state,
|
| 591 |
express_chain_state, num_words_state, formality_state,
|
| 592 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
| 593 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
|
|
|
| 228 |
except AuthenticationError as ae:
|
| 229 |
error_msg = AUTH_ERR_MSG
|
| 230 |
except RateLimitError as rle:
|
| 231 |
+
error_msg = "\n\nRateLimitError, " + str(
|
| 232 |
+
rle) + "\n\nPlease see https://help.openai.com/en/articles/6891831-error-code-429-you-exceeded-your-current-quota-please-check-your-plan-and-billing-details for more information."
|
| 233 |
except ValueError as ve:
|
| 234 |
error_msg = "\n\nValueError, " + str(ve)
|
| 235 |
except InvalidRequestError as ire:
|
|
|
|
| 281 |
|
| 282 |
def chat(
|
| 283 |
inp: str, history: Optional[Tuple[str, str]], chain: Optional[ConversationChain],
|
| 284 |
+
trace_chain: bool, speak_text: bool, express_chain: Optional[LLMChain],
|
| 285 |
+
num_words, formality, anticipation_level, joy_level, trust_level,
|
| 286 |
fear_level, surprise_level, sadness_level, disgust_level, anger_level,
|
| 287 |
translate_to, literary_style):
|
| 288 |
"""Execute the chat functionality."""
|
| 289 |
print("\n==== date/time: " + str(datetime.datetime.now()) + " ====")
|
| 290 |
print("inp: " + inp)
|
| 291 |
print("trace_chain: ", trace_chain)
|
| 292 |
+
print("speak_text: ", speak_text)
|
| 293 |
history = history or []
|
| 294 |
# If chain is None, that is because no API key was provided.
|
| 295 |
output = "Please paste your OpenAI key to use this application."
|
|
|
|
| 308 |
history.append((inp, text_to_display))
|
| 309 |
|
| 310 |
# html_video, temp_file = do_html_video_speak(output)
|
| 311 |
+
html_audio, temp_aud_file = None, None
|
| 312 |
+
if speak_text:
|
| 313 |
+
html_audio, temp_aud_file = do_html_audio_speak(output, translate_to)
|
| 314 |
|
| 315 |
# return history, history, html_video, temp_file, ""
|
| 316 |
return history, history, html_audio, temp_aud_file, ""
|
|
|
|
| 404 |
express_chain_state = gr.State()
|
| 405 |
tools_list_state = gr.State(TOOLS_DEFAULT_LIST)
|
| 406 |
trace_chain_state = gr.State(False)
|
| 407 |
+
speak_text_state = gr.State(False)
|
| 408 |
|
| 409 |
# Pertains to Express-inator functionality
|
| 410 |
num_words_state = gr.State(NUM_WORDS_DEFAULT)
|
|
|
|
| 468 |
inputs=message
|
| 469 |
)
|
| 470 |
|
| 471 |
+
with gr.Tab("Settings"):
|
| 472 |
tools_cb_group = gr.CheckboxGroup(label="Tools:", choices=TOOLS_LIST,
|
| 473 |
value=TOOLS_DEFAULT_LIST)
|
| 474 |
tools_cb_group.change(update_selected_tools,
|
|
|
|
| 479 |
trace_chain_cb.change(update_foo, inputs=[trace_chain_cb, trace_chain_state],
|
| 480 |
outputs=[trace_chain_state])
|
| 481 |
|
| 482 |
+
speak_text_cb = gr.Checkbox(label="Speak text from agent", value=False)
|
| 483 |
+
speak_text_cb.change(update_foo, inputs=[speak_text_cb, speak_text_state],
|
| 484 |
+
outputs=[speak_text_state])
|
| 485 |
+
|
| 486 |
with gr.Tab("Formality"):
|
| 487 |
formality_radio = gr.Radio(label="Formality:",
|
| 488 |
+
choices=[FORMALITY_DEFAULT, "Casual", "Polite", "Honorific"],
|
| 489 |
+
value=FORMALITY_DEFAULT)
|
| 490 |
formality_radio.change(update_foo,
|
| 491 |
inputs=[formality_radio, formality_state],
|
| 492 |
outputs=[formality_state])
|
|
|
|
| 509 |
|
| 510 |
with gr.Tab("Lit style"):
|
| 511 |
literary_style_radio = gr.Radio(label="Literary style:", choices=[
|
| 512 |
+
LITERARY_STYLE_DEFAULT, "Prose", "Summary", "Outline", "Bullets", "Poetry", "Haiku", "Limerick", "Joke",
|
| 513 |
+
"Knock-knock"],
|
| 514 |
value=LITERARY_STYLE_DEFAULT)
|
| 515 |
|
| 516 |
literary_style_radio.change(update_foo,
|
|
|
|
| 589 |
|
| 590 |
gr.HTML("<center>Powered by <a href='https://github.com/hwchase17/langchain'>LangChain 🦜️🔗</a></center>")
|
| 591 |
|
| 592 |
+
message.submit(chat, inputs=[message, history_state, chain_state, trace_chain_state, speak_text_state,
|
| 593 |
express_chain_state, num_words_state, formality_state,
|
| 594 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
| 595 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
|
|
|
| 597 |
# outputs=[chatbot, history_state, video_html, my_file, message])
|
| 598 |
outputs=[chatbot, history_state, audio_html, tmp_aud_file, message])
|
| 599 |
|
| 600 |
+
submit.click(chat, inputs=[message, history_state, chain_state, trace_chain_state, speak_text_state,
|
| 601 |
express_chain_state, num_words_state, formality_state,
|
| 602 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
| 603 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|