Gradio 的用户月活突破 100 万!

阅读更多
Gradio logo
  1. 自定义组件
  2. 五分钟自定义组件

5 分钟自定义组件

Gradio 允许开发者创建自己的自定义组件并在 Gradio 应用中使用它们。你可以将你的组件作为 Python 包发布,以便其他用户也可以使用。

用户将能够将 Gradio 的所有现有功能,如 gr.Blocksgr.Interface、API 使用、主题等与自定义组件一起使用。本指南将介绍如何开始制作自定义组件。

安装

你需要拥有

工作流程

自定义组件工作流程包含 4 个步骤:创建、开发、构建和发布。

  1. 创建:创建一个模板,供你开始开发自定义组件。
  2. 开发:启动一个带有示例应用和热重载的开发服务器,让你轻松开发自定义组件
  3. 构建:构建一个包含自定义组件的 Python 和 JavaScript 代码的 python 包 -- 这使其正式化!
  4. 发布:将你的包上传到 PyPi 和/或将示例应用上传到 HuggingFace Spaces

这些步骤中的每一步都是通过自定义组件 CLI 完成的。你可以使用 gradio ccgradio component 调用它

提示: 运行 gradio cc --help 获取所有可用命令的帮助菜单。本指南未涵盖某些命令。你也可以在任何命令名称后附加 --help 以调出该命令的帮助页面,例如 gradio cc create --help

1. 创建

通过在任何工作目录中运行以下命令来引导新模板

gradio cc create MyComponent --template SimpleTextbox

用你的组件的任何名称替换 MyComponent

用你可以使用任何 Gradio 组件作为模板替换 SimpleTextboxSimpleTextbox 实际上是一个特殊的组件,它是 Textbox 组件的简化版本,这使得它在创建你的第一个自定义组件时特别有用。如果你是初学者,其他一些不错的组件包括:SimpleDropdownSimpleImageFile

提示: 运行 gradio cc show 以获取可用组件模板的列表。

create 命令将

  1. 创建一个目录,目录名称为你的组件名称的小写形式,并具有以下结构
- backend/ <- The python code for your custom component
- frontend/ <- The javascript code for your custom component
- demo/ <- A sample app using your custom component. Modify this to develop your component!
- pyproject.toml <- Used to build the package and specify package metadata.
  1. 以开发模式安装组件

每个目录都将包含你开始开发所需的代码!

2. 开发

创建新组件后,你可以通过 进入目录 并运行以下命令来启动开发服务器

gradio cc dev

你将看到打印到控制台的几行信息。最重要的一行是显示

前端服务器 (前往此处): http://localhost:7861/

你的端口号可能不同。点击该链接以在热重载模式下启动演示应用。现在,你可以开始修改后端和前端,你将看到结果实时反映在示例应用中!我们将在后面的指南中介绍一个实际示例。

提示: 你不必从自定义组件目录运行开发模式。dev 模式的第一个参数是目录的路径。默认情况下,它使用当前目录。

3. 构建

当你对自定义组件的实现感到满意时,你可以 构建 它以便在开发服务器外部使用。

从你的组件目录中,运行

gradio cc build

这将在 dist/ 子目录中创建一个 tar.gz.whl 文件。如果你或任何其他人安装了该 .whl 文件 (pip install <path-to-whl>),他们将能够在任何 gradio 应用中使用你的自定义组件!

build 命令还会为你的自定义组件生成文档。这采取交互式空间和静态 README.md 的形式。你可以通过传递 --no-generate-docs 来禁用此功能。你可以在 专用指南 中阅读有关文档生成器的更多信息。

4. 发布

现在,你的包仅在计算机上的 .whl 文件中可用。你可以使用 publish 命令与世界分享该文件!

只需从你的组件目录运行以下命令

gradio cc publish

这将引导你完成以下过程

  1. 将你的分发文件上传到 PyPi。这是可选的。如果你决定上传到 PyPi,你将需要一个 PyPI 用户名和密码。你可以在 此处 获取一个。
  2. 将你的组件的演示上传到 hugging face spaces。这也是可选的。

这是一个发布外观的示例

结论

既然您已经了解了创建自定义组件的高级工作流程,您可以在接下来的指南中深入了解!阅读指南后,查看 HuggingFace Hub 上的自定义组件集合,以便您可以从其他人的代码中学习。

提示: 如果你想从别人的自定义组件开始,请查看本指南