Gradio Agents & MCP 黑客马拉松

获奖者
Gradio logo
  1. Blocks 布局
  2. render

刚接触 Gradio?从这里开始:入门指南

查看 发布历史

render

@gr.render(inputs=···)
def hello(···):
   ... 

描述

render 装饰器允许 Gradio Blocks 应用拥有动态布局,使应用中的组件和事件监听器可以根据自定义逻辑进行更改。将 `@gr.render` 装饰器附加到函数上,将使得每当输入改变(或指定的触发器被激活)时,该函数都会重新运行。该函数包含将根据输入更新的组件和事件监听器。
`@gr.render` 的基本用法如下:
1. 创建一个函数并为其附加 `@gr.render` 装饰器。
2. 将输入组件添加到 `@gr.render` 的 inputs= 参数中,并为函数中的每个组件创建一个相应的参数。
3. 在函数内部添加所有您希望根据输入更新的组件。任何使用这些组件的事件监听器也应在此函数内部。

用法示例

import gradio as gr

with gr.Blocks() as demo:
    input_text = gr.Textbox()

    @gr.render(inputs=input_text)
    def show_split(text):
        if len(text) == 0:
            gr.Markdown("## No Input Provided")
        else:
            for letter in text:
                with gr.Row():
                    text = gr.Textbox(letter)
                    btn = gr.Button("Clear")
                    btn.click(lambda: gr.Textbox(value=""), None, text)

初始化

参数
🔗
inputs: list[Component] | Component | None
默认值 = None

用作输入的 Gradio 组件列表。如果函数不接受任何输入,则此项应为空列表。

🔗
triggers: list[EventListenerCallable] | EventListenerCallable | None
默认值 = None

要监听的触发器列表,例如 [btn.click, number.change]。如果为 None,将监听任何输入的变化。

🔗
queue: bool
默认值 = True

如果为 True,在队列已启用时将请求放入队列。如果为 False,则即使队列已启用,也不会将此事件放入队列。如果为 None,将使用 Gradio 应用的队列设置。

🔗
trigger_mode: Literal['once', 'multiple', 'always_last'] | None
默认值 = "always_last"

如果设置为 “once”(除 `.change()` 之外所有事件的默认值),则在事件挂起时不允许任何提交。如果设置为 “multiple”,则在挂起时允许无限次提交,而 “always_last”(`.change()` 和 `.key_up()` 事件的默认值)则允许在挂起事件完成后进行第二次提交。

🔗
concurrency_limit: int | None | Literal['default']
默认值 = None

如果设置,这是此事件可以同时运行的最大数量。可以设置为 None 表示没有并发限制(此事件可以同时运行任意数量)。设置为 “default” 以使用默认并发限制(由 `Blocks.queue()` 中的 `default_concurrency_limit` 参数定义,其本身默认为 1)。

🔗
concurrency_id: str | None
默认值 = None

如果设置,这是并发组的 ID。具有相同 `concurrency_id` 的事件将受限于最低设置的 `concurrency_limit`。

🔗
show_progress: Literal['full', 'minimal', 'hidden']
默认值 = "full"

指南