前言
TabbedInterface 是 Gradio 中的一个高级功能,允许开发者创建带有多个标签页的界面。每个标签页可以包含不同的输入和输出组件,使得用户可以在不同的标签页中切换,查看和操作不同的内容。
一、TabbedInterface 初始化参数
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
interface_list | list[Interface] | 无 | 一个包含 Interface 或 Blocks 的列表,每个元素将渲染在一个单独的标签页中。 |
tab_names | list[str] | None | 标签页的名称列表。如果未指定,则默认为 “Tab 1”, “Tab 2” 等。 |
title | str | None | 浏览器窗口中显示的标签标题。 |
theme | Theme / str | None | 主题对象或字符串,表示内置主题名称(如 “soft” 或 “default”),或从 Hugging Face Hub 加载的主题(如 “gradio/monochrome”)。如果为 None,则使用默认主题。 |
analytics_enabled | bool | None | 是否允许基本遥测。如果为 None,则使用 GRADIO_ANALYTICS_ENABLED 环境变量或默认为 True。 |
css | str | None | 自定义 CSS 字符串或路径到 CSS 文件。此 CSS 将包含在演示网页中。 |
js | str | None | 自定义 JavaScript 字符串或路径到 JavaScript 文件。自定义 JavaScript 应为单个 JavaScript 函数。此函数将在页面加载时自动执行。 |
head | str | None | 自定义 HTML,插入到演示网页的 <head> 中。这可用于添加自定义元标签、多个脚本、样式表等。 |
二、使用范例
1.示例代码
代码如下(示例):在这个示例中,hello_world 和 bye_world 是两个简单的 Interface 对象,分别返回问候语和告别语。TabbedInterface 将它们组织在两个标签页中,标签页名称分别为 “Hello World” 和 “Bye World”。
import gradio as gr
hello_world = gr.Interface(lambda name: "Hello " + name, "text", "text")
bye_world = gr.Interface(lambda name: "Bye " + name, "text", "text")
demo = gr.TabbedInterface([hello_world, bye_world], ["Hello World", "Bye World"])
if __name__ == "__main__":
demo.launch()
总结
TabbedInterface 是 Gradio 中一个非常有用的功能,它通过标签页的方式,使得用户可以更直观地切换和查看不同的内容。这不仅提高了用户体验,还使得开发者能够更灵活地展示和测试他们的模型。通过自定义 CSS 和 JS,开发者还可以进一步增强界面的视觉效果和交互功能。