0

I want to create a gradio webui that shows 2 dropdown, 'rs_hw' changes dynamically according to the 'rs' value. what am i doing wrong here?

import gradio as gr

languages = ['spanish', 'english'] 
homeworks = {'spanish': ['hola', 'bien', 'gracias'], 'english': ['hello', 'good', 'thank you']}

def rs_change(rs):
    return homeworks[rs]

with gr.Blocks() as app:

    rs = gr.Dropdown(choices=languages)
    rs_hw = gr.Dropdown()

    rs.change(fn=rs_change, inputs=[rs], outputs=[rs_hw])

    app.launch()

rs_hw keeps always empty

1 Answers1

1
import gradio as gr

languages = ['spanish', 'english']
homeworks = {'spanish': ['hola', 'bien', 'gracias'], 'english': ['hello', 'good', 'thank you']}

def rs_change(rs):
    print(homeworks[rs])
    return gr.Dropdown.update(choices=homeworks[rs])

def test():
    pass

def webui():
    inputs = [
        gr.Dropdown(choices=languages),
        gr.Dropdown(choices=[]),
        ]

    with gr.Blocks() as app:
        gr.Interface(
            fn=test,
            inputs=inputs,
            outputs=None
        )

        inputs[0].select(fn=rs_change, inputs=inputs[0], outputs=inputs[1])

    app.launch(server_port=1111)

webui()
sono mori
  • 11
  • 2