作者:David Eastman
是 Hugging Face 上为机器学习开发人员提供的组件库,现已更新为版本5。其值得注意的新功能之一是“实验性 AI Playground”,它允许您“使用 AI 生成或修改 Gradio 应用程序并立即在浏览器中预览应用程序。” 后端开发人员专注于AI 仍然需要将其工作显示为可见输出,而这正是 Gradio 所服务的利基市场。因为我几乎总是被一流的作品所左右。 操场,在这篇文章中,我们将演练该新功能。
正如我们开始吧,很明显我们有一个Python前端生成器。这个想法是人工智能工程师会发现这比使用 CSS 和 JavaScript 更有吸引力。正如您将看到的,这与人工智能无关。
我们从 pip 安装开始:
我们实际上并不需要只有几行的代码编辑器,因此我们可以编写示例应用程序.py直接进入终端。
进口 渐变作为 格 定义 迎接(姓名, 强度): 返回 “你好, ” + 姓名 + “!” * 整数(强度) 演示 = 格。界面( 号=迎接, 输入=[“文本”, “滑块”], 输出=[“文本”], ) 演示。发射() |
我们确实可以在Jupyter笔记本,如果您选择这条道路,Gradio 会照顾您。
如果你只运行上面的代码,它的行为就像一个网络服务器:
输出如下:
从表面上看,这是在网页上生成用户界面 (UI) 的一种非常有效的方法。我们指向一个函数并提到我们想要输入和输出的组件。我们没有指出滑块应如何表现或组件应如何排列(例如)。幸运的是,这些组件以响应方式合理地堆叠。重点是,如果您对 UI 美观不感兴趣,只对可用性感兴趣,那么这很好用。
要检查版本,请运行以下代码:
进口 渐变作为 格 打印(格。__版本__) |
我认为来自 Gradio 命令本身的版本响应会更好。请注意,我只能获取 v4.44.1,因此较新的 Gradio 5 功能可能尚不可见。
有趣的是,在公共服务器上创建这个演示很简单,并且可以通过代码完成。事实上,我们运行代码后在上面的终端响应中已经指出了这一点。我们只需将最后一行替换为demo.launch(分享=True)
该应用程序现已公开托管。当我这样做时(我使用 gradio 命令调用代码,该命令运行热加载),公共 URL 和条件如下:
为了创建一些快速的临时托管,已经完成了大量繁重的工作。对于在线教学来说,这本身就非常有用。
格拉迪奥有一个丰富的组件尝试一下,包括必须明确支持事件的按钮之类的东西。但明智的是,它们允许较低水平的建筑使用积木。这是我将花更多时间进行检查的地方,因为这可能使 Gradio 与其他 UI 设计师处于同一水平。
让我们看一下带有块的简单输入输出类型示例。你可以只使用操场;只需从左侧选择“Hello Blocks”即可:
我们在这里所做的所有不同之处是通过按钮事件驱动体验流,而不是将其委托给黑匣子。我们明确控制组件标签,但仅此而已。我不是 Python 开发人员,所以我必须查找和
陈述。正如这里所使用的,它实际上是一种在 try/catch 块中编写异常处理的更简洁的方法。请注意,相同的组件文本框
既用作输入又用作输出,因此是角色对其行为进行建模。
除了单击按钮之外,您还可以监听变化行为。因此,我们可以更改第一个示例并强制输出框监听滑块:
实际上,输入(或输出)的数量必须与函数参数的数量相匹配。
您可以在 Playground 中使用以下代码,它是 Sepia Filter 示例的改编版本。使用图像组件和快速棕褐色滤镜:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 号 18 19 20 |
进口 麻木作为 NP 进口 渐变作为 格 定义 棕褐色(输入图像): 棕褐色过滤器 = NP。大批([ [0.393, 0.769, 0.189], [0.349, 0.686, 0.168], [0.272, 0.534, 0.131] ]) 棕褐色_img = 输入图像。点(棕褐色过滤器。时间) 棕褐色_img /= 棕褐色_img。最大限度() 返回 棕褐色_img 和 格。积木() 作为 演示: 图像输入= 格。图像(标签 = 「原图」) 图像输出 = 格。图像(标签 = “让我变成棕褐色”) 图像输入。改变(号=棕褐色, 输入=图像输入, 输出=图像输出) 如果 __姓名__ == “__主要的__”: 演示。发射() |
以下是一些先前生成的艺术作品的结果:
此时,我对哪些示例可以在 Playground 中运行以及为什么我只能获得 4.44.1 版本而不是 5 感到有点困惑。但是,当从命令行构建时,我确实得到了以下缓慢的编写器工作:
进口 时间 进口 渐变作为 格 定义 慢回声(信息, 历史): 为了 我 在 范围(伦(信息)): 时间。睡觉(0.3) 屈服 “您输入:” + 信息[: 我+1] 格。聊天界面(慢回声)。发射() |
这使用了两个想法:流式聊天机器人界面和 发电机函数。结果是我最近自己实现的东西:一个缓慢的作家。这是每个字母以很短的时间间隔写出来的时候,就像数字通信非常慢的电影中一样。
显然,聊天界面的想法是您使用自己的 LLM 模型作为源(我可能会在以后的文章中尝试使用 Gradio 和 LLM 构建一些东西),但在这个示例中,我们使用慢回声生成器函数,每次调用都会从一系列中产生不同的结果。
对于 UI 只是显示结果或概念的临时框架的情况,您可以看到为什么 Python 开发人员会受益于 Gradio。虽然有些逻辑有点迟钝,但仍然需要很少的代码即可在屏幕上获得工作界面 - 如果您不围绕 UI 进行创新,为什么还要浪费时间呢?
YOUTUBE.COM/THENEWSTACK
科技发展日新月异,不要错过任何一集。订阅我们的 YouTube频道可播放我们所有的播客、采访、演示等。