Spaces:
Sleeping
Sleeping
File size: 3,801 Bytes
6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 aa938da 1c0b271 aa938da 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 1c0b271 6e2fd22 |
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 |
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')
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]
)
import time
button_text.click(
play_searching, language, video
).then(
lambda : time.sleep(5), 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(
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')))
|