Spaces:
Sleeping
Sleeping
| import time | |
| from functions import * | |
| scores_parameters, authors = get_main_data() | |
| with (gr.Blocks() as app): | |
| user_id = gr.State('') # id used to find the chat into the database | |
| with gr.Tab('Test Chats'): | |
| with gr.Row() as select_author: | |
| author = gr.Dropdown(authors, value=authors[0], label='Author', interactive=True) | |
| language = gr.Dropdown( | |
| value='Español', choices=['Español', 'English', 'Português'], label='Language' | |
| ) | |
| chat_btn = gr.Button(value='Start chat') | |
| # ------------------------------------- Chat ------------------------------------------- | |
| with gr.Row(visible=False) as chatbot: | |
| with gr.Column(): | |
| with gr.Row(): | |
| video = gr.Video(interactive=False, label='Video', autoplay=True) | |
| with gr.Row(): | |
| output_audio = gr.Audio(interactive=False, label='Audio', autoplay=True) | |
| with gr.Row(): | |
| checkbox = gr.Checkbox( | |
| label='Get video', info='Remember that this has a cost' | |
| ) | |
| radio = gr.Radio( | |
| choices=['small', 'big'], value='small', | |
| label='GPU', info='Select the size of GPU (at the moment they are the same)', | |
| visible=False | |
| ) | |
| predict_language = gr.Checkbox(label='Predict language', visible=False) | |
| with gr.Column(): | |
| with gr.Row(): | |
| chat = gr.Chatbot(label='Chat') | |
| with gr.Row(): | |
| text = gr.Text(label='Write your question') | |
| audio = gr.Audio(sources=['microphone'], type='filepath', label='Tell me your question') | |
| with gr.Row(): | |
| button_text = gr.Button(value='Submit text') | |
| button_audio = gr.Button(value='Submit audio') | |
| # ------------------------------------- Result's tab --------------------------------------- | |
| with gr.Tab('Save results'): | |
| with gr.Row(visible=False) as scores_row: | |
| with gr.Column(scale=75): | |
| with gr.Row(): | |
| scores = [ | |
| gr.Radio(choices=['Aprobado', 'No aprobado'], label=parameter) | |
| for parameter in scores_parameters | |
| ] | |
| with gr.Column(scale=25): | |
| opinion_box = gr.Textbox(label='Opinion') | |
| scores_btn = gr.Button(value='Send scores') | |
| scores_box = gr.Textbox(label='Status', interactive=False) | |
| # -------------------------------------- Actions ----------------------------------------- | |
| chat_btn.click( | |
| make_invisible, None, select_author | |
| ).then( | |
| make_visible, None, [chatbot, scores_row] | |
| ).then( | |
| init_chatbot, [chat, language], [video, chat, user_id] | |
| ) | |
| button_text.click( | |
| play_searching, language, video | |
| ).then( | |
| lambda: time.sleep(6), None, None | |
| ).then( | |
| get_answer_text, | |
| [text, chat, user_id, checkbox, radio, predict_language], | |
| [video, output_audio, chat, text] | |
| ) | |
| button_audio.click( | |
| play_searching, language, video | |
| ).then( | |
| lambda: time.sleep(6), None, None | |
| ).then( | |
| get_answer_audio, | |
| [audio, chat, user_id, checkbox, radio, predict_language], | |
| [video, output_audio, chat, audio] | |
| ) | |
| scores_btn.click( | |
| save_scores, | |
| [author, chat, opinion_box] + scores, | |
| scores_box | |
| ) | |
| video.end( | |
| lambda: 'videos/waiting.mp4', None, video | |
| ) | |
| output_audio.stop( | |
| lambda: None, None, output_audio | |
| ) | |
| app.queue() | |
| app.launch(debug=True, auth=(os.environ.get('USERNAME'), os.environ.get('PASSWORD'))) | |