Gradio Agents & MCP 黑客马拉松

获奖者
Gradio logo
  1. 辅助函数
  2. 示例

Gradio 新手?从这里开始:入门

查看发布历史

示例

gradio.Examples(···)

描述

此类是 Dataset 组件的包装器,可用于为 Blocks / Interfaces 创建示例。它用示例填充 Dataset 组件并分配事件监听器,以便单击示例时填充输入/输出组件。可选择处理示例缓存以实现快速推理。

初始化

参数
🔗
examples: list[Any] | list[list[Any]] | str

可点击以填充特定组件的示例输入。应为嵌套列表,其中外部列表包含样本,每个内部列表包含与每个输入组件对应的输入。也可以提供示例目录的字符串路径,但它应位于运行 Gradio 应用的 Python 文件所在的目录中。如果存在多个输入组件并提供了目录,则目录中必须存在一个 log.csv 文件以链接相应的输入。

🔗
inputs: Component | list[Component]

与示例对应的组件或组件列表

🔗
outputs: Component | list[Component] | None
默认值 = None

可选地,提供与示例输出对应的组件或组件列表。如果 `cache_examples` 不为 False,则此项为必填。

🔗
fn: Callable | None
默认值 = None

可选地,提供用于生成与示例对应的输出的函数。如果 `cache_examples` 不为 False,则此项为必填。如果 `run_on_click` 为 True,则也为必填。

🔗
cache_examples: bool | None
默认值 = None

如果为 True,则在服务器中缓存示例,以加快示例的运行时。如果为“lazy”,则示例会在首次使用后(由应用程序的任何用户使用)被缓存(供应用程序的所有用户使用)。如果为 None,将使用 GRADIO_CACHE_EXAMPLES 环境变量,该变量应为“true”或“false”。在 HuggingFace Spaces 中,此参数为 True(只要也提供了 `fn` 和 `outputs`)。否则默认选项为 False。请注意,示例是独立于 Gradio 的 queue() 缓存的,因此某些功能,例如 gr.Progress()、gr.Info()、gr.Warning() 等,不会在 Gradio UI 中显示已缓存示例。

🔗
cache_mode: Literal['eager', 'lazy'] | None
默认值 = None

如果为“lazy”,示例会在首次使用后被缓存。如果为“eager”,所有示例会在应用程序启动时被缓存。如果为 None,将使用 GRADIO_CACHE_MODE 环境变量(如果已定义),否则默认为“eager”。

🔗
examples_per_page: int
默认值 = 10

每页显示的示例数量。

🔗
label: str | I18nData | None
默认值 = "Examples"

用于示例组件的标签(默认为“Examples”)

🔗
elem_id: str | None
默认值 = None

一个可选字符串,用作此组件在 HTML DOM 中的 ID。

🔗
run_on_click: bool
默认值 = False

如果 cache_examples 为 False,则单击示例时不会运行函数。将其设置为 True 以在单击示例时运行函数。如果 cache_examples 为 True,则此设置无效。

🔗
preprocess: bool
默认值 = True

如果为 True,则在运行预测函数和缓存输出之前预处理示例输入。仅在 `cache_examples` 不为 False 时适用。

🔗
postprocess: bool
默认值 = True

如果为 True,则在运行预测函数和缓存之前后处理示例输出。仅在 `cache_examples` 不为 False 时适用。

🔗
api_name: str | Literal[False]
默认值 = "load_example"

定义与单击示例关联的事件在 API 文档中如何显示。可以是字符串或 False。如果设置为字符串,则该端点将以给定名称在 API 文档中公开。如果为 False,则该端点不会在 API 文档中公开,并且下游应用程序(包括那些 `gr.load` 此应用程序的)将无法使用示例函数。

🔗
batch: bool
默认值 = False

如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。仅在 cache_examples 不为 False 时使用。

🔗
example_labels: list[str] | None
默认值 = None

每个示例的标签列表。如果提供,此列表的长度应与示例数量相同,并且这些标签将在 UI 中使用,而不是渲染示例值。

🔗
visible: bool
默认值 = True

如果为 False,示例组件将在 UI 中隐藏。

🔗
preload: int | Literal[False]
默认值 = False

如果提供整数(并且示例正在缓存),则 Gradio 应用程序加载时将预加载示例列表中该索引处的示例。如果为 False,则不会预加载任何示例。

属性

参数
🔗
dataset: gradio.Dataset

与此 Examples 对象对应的 `gr.Dataset` 组件。

🔗
load_input_event: gradio.events.Dependency

当示例被点击时填充输入值的 Gradio 事件。您可以将 `.then()` 或 `.success()` 附加到此事件,以在此事件触发后触发后续事件。

🔗
cache_event: gradio.events.Dependency | None

当示例被点击时填充缓存输出值的 Gradio 事件。您可以将 `.then()` 或 `.success()` 附加到此事件,以在此事件触发后触发后续事件。如果 `cache_examples` 为 False,则此事件为 `None`;如果 `cache_examples` 为 `'lazy'`,则此事件与 `load_input_event` 相同。

示例

更新示例

在此演示中,我们展示了如何通过更新底层数据集的样本来更新示例。请注意,这仅在 cache_examples=False 时有效,因为更新底层数据集不会更新缓存。

import gradio as gr

def update_examples(country):
    if country == "USA":
        return gr.Dataset(samples=[["Chicago"], ["Little Rock"], ["San Francisco"]])
    else:
        return gr.Dataset(samples=[["Islamabad"], ["Karachi"], ["Lahore"]])

with gr.Blocks() as demo:
    dropdown = gr.Dropdown(label="Country", choices=["USA", "Pakistan"], value="USA")
    textbox = gr.Textbox()
    examples = gr.Examples([["Chicago"], ["Little Rock"], ["San Francisco"]], textbox)
    dropdown.change(update_examples, dropdown, examples.dataset)
    
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":
        return num1 / num2

with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column():
            num_1 = gr.Number(value=4)
            operation = gr.Radio(["add", "subtract", "multiply", "divide"])
            num_2 = gr.Number(value=0)
            submit_btn = gr.Button(value="Calculate")
        with gr.Column():
            result = gr.Number()

    submit_btn.click(
        calculator, inputs=[num_1, operation, num_2], outputs=[result], api_name=False
    )
    examples = gr.Examples(
        examples=[
            [5, "add", 3],
            [4, "divide", 2],
            [-4, "multiply", 2.5],
            [0, "subtract", 1.2],
        ],
        inputs=[num_1, operation, num_2],
    )

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

		

指南