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()
Не так быстро, но решит мою проблему :)