示例:
import gradio as gr
def dummy(a, b='Hello', c='!'):
return '{0} {1} {2}'.format(b, a, c)
with gr.Blocks() as demo:
txt = gr.Textbox(value="test", label="Query", lines=1)
txt2 = gr.Textbox(value="test2", label="Query2", lines=1)
answer = gr.Textbox(value="", label="Answer")
btn = gr.Button(value="Submit")
btn.click(dummy, inputs=[txt], outputs=[answer])
gr.ClearButton([answer])
demo.launch()
如何将
txt2
的值赋予 dummy()
的命名参数 c
?
据我所知,Gradio 并没有直接允许。也就是说,它不允许这样的事情:
btn.click(fn=dummy, inputs={"a": txt, "c": txt2}, outputs=answer)
在这种特定情况下,如果您无法修改
dummy
函数,那么我将使用以下函数重新排列参数:
def rearrange_args(func):
def wrapper(*args):
a, c = args
return func(a, c=c)
return wrapper
现在,您只需按如下方式修改示例即可:
btn.click(rearrange_args(dummy), inputs=[txt, txt2], outputs=[answer])