GRADIO: изменить положение второго ползунка, когда значение меньше, чем на первом

У меня есть 2 слайдера, созданные в Gradio:

       number1 = gr.Slider(0, 20, step=1, label='number1', default=0, interactive=True)
 number2 = gr.Slider(0, 20, step=1, label='number2', default=0, interactive=True)

 gr.Interface(add_function, [number1, number2], "number", live=True).launch(debug=True)

Я хотел бы динамически изменить положение второго ползунка. Когда значение первого ползунка больше, чем значение второго ползунка, второй ползунок должен занимать ту же позицию, что и первый, например. первый ползунок = 4 второй ползунок = 1 Затем положение второго ползунка также должно измениться на 4.

Это можно сделать с помощью gr.Interface или только с помощью Gradio Box?

1 ответ

Хорошо, я нашел решение с помощью Gradio Box:

      def compare(number1, number2):
if number1 > number2:
    number2 = number1
return number2

def add_function(number1, number2):
return number2 + number1


with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column():
            slider1 = gr.Slider(0, 100, default=50, label="number1", interactive=True)
            slider2 = gr.Slider(0, 100, default=50, label="number2", interactive=True)
        with gr.Column():
            predict = gr.Button()
            output = gr.Number(label="output")

    slider1.change(compare, [slider1, slider2], slider2)
    click_event = predict.click(add_function, [slider1, slider2] , output)

demo.queue().launch()

Не так быстро, но решит мою проблему :)

Другие вопросы по тегам