在 🎢 中打开 ↗ import gradio as gr def calculator(num1, operation, num2): if operation == "add": return num1 + num2 elif operation == "subtract": return num1 - num2 elif operation == "multiply": return num1 * num2 elif operation == "divide": if num2 == 0: raise gr.Error("不能除以零!") return num1 / num2 demo = gr.Interface( calculator, [ "number", gr.Radio(["add", "subtract", "multiply", "divide"]), "number" ], "number", examples=[ [45, "add", 3], [3.14, "divide", 2], [144, "multiply", 2.5], [0, "subtract", 1.2], ], title="玩具计算器", description="这是一个简单的玩具计算器。", ) if __name__ == "__main__": demo.launch()
import gradio as gr
def calculator(num1, operation, num2):
if operation == "add":
return num1 + num2
elif operation == "subtract":
return num1 - num2
elif operation == "multiply":
return num1 * num2
elif operation == "divide":
if num2 == 0:
raise gr.Error("Cannot divide by zero!")
return num1 / num2
demo = gr.Interface(
calculator,
[
"number",
gr.Radio(["add", "subtract", "multiply", "divide"]),
"number"
],
"number",
examples=[
[45, "add", 3],
[3.14, "divide", 2],
[144, "multiply", 2.5],
[0, "subtract", 1.2],
],
title="Toy Calculator",
description="Here's a sample toy calculator.",
)
if __name__ == "__main__":
demo.launch()
在 🎢 中打开 ↗ import gradio as gr def failure(): raise gr.Error("这应该会失败!") def exception(): raise ValueError("出错了") def success(): return True def warning_fn(): gr.Warning("这是一条警告!") def info_fn(): gr.Info("这是一些信息") with gr.Blocks() as demo: gr.Markdown("用于成功事件触发的 E2E 测试。then 事件在聊天机器人 E2E 测试中涵盖。" "同时测试状态模态框是否显示。") with gr.Row(): result = gr.Textbox(label="结果") result_2 = gr.Textbox(label="连续事件") with gr.Row(): success_btn = gr.Button(value="触发成功") success_btn_2 = gr.Button(value="触发连续成功") failure_btn = gr.Button(value="触发失败") failure_exception = gr.Button(value="触发带有 ValueError 的失败") with gr.Row(): trigger_warning = gr.Button(value="触发警告") trigger_info = gr.Button(value="触发信息") success_btn_2.click(success, None, None).success(lambda: "第一个事件已触发", None, result).success(lambda: "连续事件已触发", None, result_2) success_btn.click(success, None, None).success(lambda: "成功事件已触发", inputs=None, outputs=result) failure_btn.click(failure, None, None).success(lambda: "不应被触发", inputs=None, outputs=result) failure_exception.click(exception, None, None) trigger_warning.click(warning_fn, None, None) trigger_info.click(info_fn, None, None) if __name__ == "__main__": demo.launch(show_error=True)
import gradio as gr
def failure():
raise gr.Error("This should fail!")
def exception():
raise ValueError("Something went wrong")
def success():
return True
def warning_fn():
gr.Warning("This is a warning!")
def info_fn():
gr.Info("This is some info")
with gr.Blocks() as demo:
gr.Markdown("Used in E2E tests of success event trigger. The then event covered in chatbot E2E tests."
" Also testing that the status modals show up.")
with gr.Row():
result = gr.Textbox(label="Result")
result_2 = gr.Textbox(label="Consecutive Event")
with gr.Row():
success_btn = gr.Button(value="Trigger Success")
success_btn_2 = gr.Button(value="Trigger Consecutive Success")
failure_btn = gr.Button(value="Trigger Failure")
failure_exception = gr.Button(value="Trigger Failure With ValueError")
with gr.Row():
trigger_warning = gr.Button(value="Trigger Warning")
trigger_info = gr.Button(value="Trigger Info")
success_btn_2.click(success, None, None).success(lambda: "First Event Trigered", None, result).success(lambda: "Consecutive Event Triggered", None, result_2)
success_btn.click(success, None, None).success(lambda: "Success event triggered", inputs=None, outputs=result)
failure_btn.click(failure, None, None).success(lambda: "Should not be triggered", inputs=None, outputs=result)
failure_exception.click(exception, None, None)
trigger_warning.click(warning_fn, None, None)
trigger_info.click(info_fn, None, None)
if __name__ == "__main__":
demo.launch(show_error=True)