SentenceMixer / frontend.py
Mya-Mya
Create Frontend and main
4f1e4fb
from mixer import Mixer
from examples import examples
def launch(mixer:Mixer):
# Runners
def clear():
return ""
def mix(sentence_A:str,sentence_B:str,A_ratio:float):
return mixer.mix_sentences(sentence_A, sentence_B, A_ratio)
# Components
from gradio import Blocks, Slider, Markdown, Row, Column, Button, TextArea, Examples
with Blocks() as app:
Markdown(
"# Sentence Mixer\n"\
"Linear combination of the encoder hidden states generates mixed sentences."
)
with Row():
with Column():
sentenceA_textarea = TextArea(label="Sentence A", lines=4)
sentenceA_clearbutton = Button(value="Clear", size="sm")
with Column():
sentenceB_textarea = TextArea(label="Sentence B", lines=4)
sentenceB_clearbutton = Button(value="Clear", size="sm")
with Row():
Aratio_slider = Slider(label="A Ratio", minimum=0.0, maximum=1.0, value=0.5, step=0.001)
mix_button = Button(value="Mix", variant="primary")
output_textarea = TextArea(label="Mixed Sentence", lines=2)
Examples(
examples,
inputs=[sentenceA_textarea,sentenceB_textarea,Aratio_slider],
outputs=output_textarea
)
# Bindings
sentenceA_clearbutton.click(clear, inputs=None, outputs=sentenceA_textarea)
sentenceB_clearbutton.click(clear, inputs=None, outputs=sentenceB_textarea)
mix_button.click(
mix,
inputs=[sentenceA_textarea,sentenceB_textarea,Aratio_slider],
outputs=output_textarea
)
app.launch()