|
import gradio as gr |
|
|
|
blocks = gr.Blocks() |
|
|
|
with blocks as demo: |
|
subject = gr.Textbox(placeholder="subject") |
|
verb = gr.Radio(["ate", "loved", "hated"]) |
|
object = gr.Textbox(placeholder="object") |
|
|
|
with gr.Row(): |
|
btn = gr.Button("Create sentence.") |
|
reverse_btn = gr.Button("Reverse sentence.") |
|
foo_bar_btn = gr.Button("Append foo") |
|
reverse_then_to_the_server_btn = gr.Button( |
|
"Reverse sentence and send to server." |
|
) |
|
|
|
def sentence_maker(w1, w2, w3): |
|
return f"{w1} {w2} {w3}" |
|
|
|
output1 = gr.Textbox(label="output 1") |
|
output2 = gr.Textbox(label="verb") |
|
output3 = gr.Textbox(label="verb reversed") |
|
output4 = gr.Textbox(label="front end process and then send to backend") |
|
|
|
btn.click(sentence_maker, [subject, verb, object], output1) |
|
reverse_btn.click( |
|
None, [subject, verb, object], output2, js="(s, v, o) => o + ' ' + v + ' ' + s" |
|
) |
|
verb.change(lambda x: x, verb, output3, js="(x) => [...x].reverse().join('')") |
|
foo_bar_btn.click(None, [], subject, js="(x) => x + ' foo'") |
|
|
|
reverse_then_to_the_server_btn.click( |
|
sentence_maker, |
|
[subject, verb, object], |
|
output4, |
|
js="(s, v, o) => [s, v, o].map(x => [...x].reverse().join(''))", |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|