You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Gradio示例点击后直接展示翻译结果无需按回车?

解决Gradio示例点击后自动触发翻译的问题

我搭建了一个简单的机器翻译Gradio界面:

机器翻译Gradio界面截图

现在需要修改代码,让点击示例(比如'Avion blanc')时直接显示翻译结果,无需用户按下回车键。

原代码如下:

import gradio as gr
import time
def translate_sentence(src_text):
    start_time = time.time()
    translation = "hello" # 已移除翻译模型
    duration = (time.time() - start_time)*1000
    return translation, f"{duration:.0f} ms"

with gr.Blocks(title="法语转英语翻译", css="footer{display:none !important}") as demo:
    input_box = gr.Textbox(lines=1, label="输入(法语)")
    output_box = gr.Textbox(lines=1, label="翻译结果(英语)")
    time_box = gr.Text(label="耗时")
    translate_btn = gr.Button("翻译")
    gr.Examples(
        examples=[
            ["Avion blanc"],
            ["Chat sur un arbre"],
            ["Un oiseau sur l'eau"]
        ],
        inputs=input_box,
        outputs=[output_box, time_box],
        fn=translate_sentence
    )
    translate_btn.click(translate_sentence, inputs=input_box, outputs=[output_box, time_box])
    input_box.submit(translate_sentence, inputs=input_box, outputs=[output_box, time_box])

if __name__ == "__main__":
    demo.launch()

修改方案

只需在gr.Examples组件中添加run_on_click=True参数,该参数会让点击示例时自动调用指定的翻译函数,直接输出结果,无需额外触发提交操作。

修改后的完整代码

import gradio as gr
import time
def translate_sentence(src_text):
    start_time = time.time()
    translation = "hello" # 已移除翻译模型
    duration = (time.time() - start_time)*1000
    return translation, f"{duration:.0f} ms"

with gr.Blocks(title="法语转英语翻译", css="footer{display:none !important}") as demo:
    input_box = gr.Textbox(lines=1, label="输入(法语)")
    output_box = gr.Textbox(lines=1, label="翻译结果(英语)")
    time_box = gr.Text(label="耗时")
    translate_btn = gr.Button("翻译")
    gr.Examples(
        examples=[
            ["Avion blanc"],
            ["Chat sur un arbre"],
            ["Un oiseau sur l'eau"]
        ],
        inputs=input_box,
        outputs=[output_box, time_box],
        fn=translate_sentence,
        run_on_click=True  # 新增参数:点击示例自动触发翻译
    )
    translate_btn.click(translate_sentence, inputs=input_box, outputs=[output_box, time_box])
    input_box.submit(translate_sentence, inputs=input_box, outputs=[output_box, time_box])

if __name__ == "__main__":
    demo.launch()

内容的提问来源于stack exchange,提问作者Franck Dernoncourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:12:45