- 助手
- api
api
gradio.api(···)描述
设置一个用于通用功能的 API 或 MCP 端点,无需定义事件监听器或组件。其类型推导来自于所提供的函数签名中的类型提示,而非组件。
示例用法
import gradio as gr
with gr.Blocks() as demo:
with gr.Row():
input = gr.Textbox()
button = gr.Button("Submit")
output = gr.Textbox()
def fn(a: int, b: int, c: list[str]) -> tuple[int, str]:
return a + b, c[a:b]
gr.api(fn, api_name="add_and_slice")
_, url, _ = demo.launch()
from gradio_client import Client
client = Client(url)
result = client.predict(
a=3,
b=5,
c=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
api_name="/add_and_slice"
)
print(result)初始化
参数
fn: Callable | Literal['decorator']
fn: Callable | Literal['decorator']默认
= "decorator"此事件触发时要调用的函数。通常是机器学习模型的预测函数。该函数应有完整的类型提示,类型提示将用于推导 API/MCP 端点的类型信息。
api_name: str | None
api_name: str | None默认
= None定义该端点在 API 文档中如何显示。可以是字符串或 None。如果设置为字符串,则该端点将在 API 文档中以给定名称显示。如果为 None(默认),则使用函数的名称作为 API 端点。
api_description: str | None
api_description: str | None默认
= NoneAPI 端点的描述。可以是字符串、None 或 False。如果设置为字符串,则该端点将在 API 文档中以给定描述显示。如果为 None,则使用函数的 docstring 作为 API 端点描述。如果为 False,则 API 文档中不会显示任何描述。
queue: bool
queue: bool默认
= True如果为 True,则会将请求放在队列中(如果队列已启用)。如果为 False,则不会将此事件放入队列,即使队列已启用。如果为 None,则将使用 Gradio 应用的队列设置。
batch: bool
batch: bool默认
= False如果为 True,则函数应处理一批输入,这意味着它应该为每个参数接受一个输入值列表。列表的长度应相同(最多为 `max_batch_size`)。然后,该函数*必须*返回一个元组的列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。
concurrency_limit: int | None | Literal['default']
concurrency_limit: int | None | Literal['default']默认
= "default"如果设置,这是可以同时运行的此事件的最大数量。可以设置为 None,表示没有并发限制(此事件可以同时运行任意数量)。设置为 "default" 可使用 `Blocks.queue()` 中的 `default_concurrency_limit` 参数定义的默认并发限制(该参数本身默认为 1)。
concurrency_id: str | None
concurrency_id: str | None默认
= None如果设置,这是并发组的 ID。具有相同 `concurrency_id` 的事件将受到最低设置的 `concurrency_limit` 的限制。