Gradio 月活用户突破 100 万!
阅读更多Gradio 月活用户突破 100 万!
阅读更多在使用自定义组件之前,请确保您已安装 Python 3.10+、Node.js v18+、npm 9+ 和 Gradio 4.0+(最好是 Gradio 5.0+)。
使用 Gradio 5.0 构建的自定义组件应该与 Gradio 4.0 兼容。如果您在 Gradio 4.0 中构建了自定义组件,您将必须重建组件才能与 Gradio 5.0 兼容。只需按照以下步骤操作
@gradio/preview
包。cd
进入 frontend
目录并运行 npm update
。pyproject.toml
中的 dependencies
键,将允许的最大 Gradio 版本锁定为版本 5,例如 dependencies = ["gradio>=4.0,<6.0"]
。运行 gradio cc show
以查看内置模板列表。您也可以从其他人的自定义组件开始!只需 git clone
他们的存储库并进行修改。
当您运行 gradio cc dev
时,开发服务器将加载并运行您选择的 Gradio 应用。这就像您运行 python <app-file>.py
一样,但是 gradio
命令将热重载,以便您可以立即看到您的更改。
1. 检查您的终端和浏览器控制台
确保您的代码中没有语法错误或其他明显问题。来自 python 的异常将显示在终端中。来自 javascript 的异常将显示在浏览器控制台和/或终端中。
2. 您是否在 Windows 上进行开发?
出于安全原因,Windows 上的 Chrome 会阻止本地编译的 svelte 文件。我们建议您在 windows linux 子系统 (WSL) 中开发您的自定义组件,同时团队正在研究此问题。
3. 检查 window.GRADIO_CC 变量
在浏览器控制台中,打印 window.__GRADIO__CC
变量(只需在控制台中键入即可)。如果它是一个空对象,则意味着 CLI 找不到您的自定义组件源代码。通常,当自定义组件安装在与用于运行 dev 命令的虚拟环境不同的虚拟环境中时,会发生这种情况。请使用 --python-path
和 gradio-path
CLI 参数来指定组件安装环境的 python 和 gradio 可执行文件的路径。例如,如果您使用的是位于 /Users/mary/venv
的 virtualenv,请分别传入 /Users/mary/bin/python
和 /Users/mary/bin/gradio
。
如果 window.__GRADIO__CC
变量不为空(请参见下面的示例),则开发服务器应正常工作。
4. 确保您正在使用虚拟环境 强烈建议您使用虚拟环境,以防止与系统中安装的其他 python 依赖项发生冲突。
不!您可以从现有的 gradio 组件作为模板开始,请参阅五分钟指南。如果您想进一步调整,也可以从现有的自定义组件开始。找到您喜欢的自定义组件的源代码后,将代码克隆到您的计算机并运行 gradio cc install
。然后,您可以运行开发服务器进行更改。如果您遇到任何问题,请通过在其存储库中打开 issue 与组件的作者联系。图库是查找已发布组件的好地方。例如,要从 PDF 组件开始,请使用 git clone https://hugging-face.cn/spaces/freddyaboulton/gradio_pdf
克隆 space,cd
进入 src
目录,然后运行 gradio cc install
。
您可以开发和构建您的自定义组件,而无需托管或连接到 HuggingFace。如果您想与 gradio 社区分享您的组件,建议将您的包发布到 PyPi 并在 HuggingFace 上托管一个演示,以便任何人都可以安装或试用它。
您必须实现 preprocess
、postprocess
、example_payload
和 example_value
方法。如果您的组件不使用数据模型,您还必须定义 api_info
、flag
和 read_from_flag
方法。请在后端指南中阅读更多信息。
data_model
的目的是什么?data_model
定义了您的组件所期望的数据格式,从而简化了组件开发过程并使您的代码具有自文档性。它简化了 API 的使用和示例缓存。
FileData
很重要?对于期望文件上传的组件,使用 FileData
至关重要。它可以确保安全的文件处理、自动缓存和简化的客户端库功能。
您可以在 EVENTS
类属性中列出所需的事件名称来定义事件触发器,这将自动为您的组件添加相应的方法。
data_model
的情况下实现自定义 Gradio 组件吗?是的,可以创建没有 data_model
的自定义组件,但是您将需要手动实现 api_info
、flag
和 read_from_flag
方法。
我们已经在 HuggingFace Hub 上准备了这个自定义组件集合,您可以用来开始入门!
我们正在努力创建一个图库,以便更容易发现新的自定义组件。在此期间,您可以在这里搜索标记为 gradio-custom-component
的 HuggingFace Spaces