>当今AI模型的有用性大大降低了,而无需访问用户界面。使用开源Python Web UI库Gradio,您可以在LLMS和非技术最终用户之间弥合这一差距。它使您可以为您的AI项目创建快速的原型,并简化其部署到更广泛的受众。
>本教程针对的是机器学习工程师,他们通常没有任何网络开发经验。它涵盖了Gradio基础知识和核心概念,各种AI模型类型的接口创建,UX和交互性的高级功能以及部署和共享最佳实践。让我们开始。
开始使用Gradio
>>安装
我们将通过创建虚拟环境(最好是conda)开始:
然后,您可以使用pip安装gradio及其依赖项:>我们还安装了iPykernel软件包,以便可以在Jupyter笔记本中直接显示Gradio接口。此过程要求您将创建的虚拟环境添加到Jupyter实验室中。这是这样做的命令:
$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
>这应该允许您使用已安装Gradio的内核创建笔记本。要验证,以标准别名导入并打印其版本:
$ pip install gradio ipykernel
基本概念和术语
$ ipython kernel install --user --name=gradio_tutorial $ jupyter lab # Start the lab我们将通过“ Hello World”示例来学习其关键概念和术语:
:
import gradio as gr print(gr.__version__) 4.37.1>在单元格中运行上述代码时,输出将是一个返回自定义问候消息的小型交互式界面:
def greet(name): return f"Hello, {name}!" demo = gr.Interface( fn=greet, inputs=['text'], outputs="text", ) demo.launch()Gradio围绕一些关键概念旋转:
接口
- 组件
- :输入和输出元素,例如文本框,图像和音频。到目前为止,有30多个内置组件。 >函数 :python函数从输入组件处理信息,并返回结果以输出组件显示。
- 启动:启动您的Gradio应用的方法。 >
-
上面的,我们创建了一个迎接文本输入并返回文本输入的问候功能。因此,输入和输出组件在接口类中指定为文本。
最后,我们调用启动本地服务器的启动方法。为了使任何人使用UI,您可以将共享参数设置为true。这将启动SSH隧道并将Gradio应用程序部署到可公开共享的网页:
> gradio组件 -
>您将花费大部分时间在不同的组件上修补不同的组件,以及如何在构建Gradio应用程序时将它们放在页面上。因此,让我们仔细看看您可以使用的东西。>
>输入和输出组件
Gradio提供了各种各样的组件,用于构建交互式接口。这些组件通常分为两类:输入和输出。>> >输入组件允许用户向基础处理器提供数据(这可以是任何Python函数)。一些常见的输入是:
- 图像
- 音频
- 滑块
- >下拉
- 这是一个虚拟界面,使用上述某些组件:
> $ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
>
>许多输入组件也可用于显示输出。以下是一些常见的情况:
- >音频:用于播放处理或生成的音频
- 绘图:用于显示图形或图表 >
- 喜欢输入,输出组件的数量必须匹配从处理函数中返回值的数量。
- >自定义组件外观
Gradio允许您自定义组件的外观以适应您的需求。这是一个使用自定义文本框的示例:
>$ pip install gradio ipykernel
在此示例中,我们通过指定行数,添加占位符和信息文本,并包括输出的副本按钮来自定义文本框组件。> >实验不同的组件及其属性,以创建最适合您AI应用程序要求的接口。要了解可以更改组件的哪种属性,您可以访问其文档,或者更好的是使用? jupyter实验室的班级名称之后:
> llms
的构建界面>让我们通过创建由LLMS供电的两个现实世界文本和基于图像的界面来将所有学到的一切放在一起。
。 首先,我们将构建从英语到土耳其语,西班牙语或中文的语言翻译:
$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
最初,我们定义一个translate_text函数。在其体内,我们设置了OpenAI API键并创建语言图。然后,我们构建了翻译的提示。然后,在一个try-except块中,我们使用系统提示符将请求发送到聊天的端点。最后,我们返回首选。> $ pip install gradio ipykernel
- >标题和描述界面类的参数在页面的顶部中心添加了H1标题和字幕。
- 这是结果:
>您可能想知道为什么我们要询问用户的API密钥作为应用程序的一部分,而不是自己提供。原因与Gradio如何部署UI有关。
我们创建一个名为generate_surrealist_art的函数,该函数将请求发送到dall-e-3,并使用超现实主义提示返回生成的图像URL。然后,我们将再次将此函数馈送到接口类中:
>$ ipython kernel install --user --name=gradio_tutorial $ jupyter lab # Start the lab
>我们为API密钥指定了两个输入,以及要在超现实主义图像中捕获的概念。然后,我们使用图像类创建一个生成图像的输出组件。如果将其值参数设置为str,则组件可以从URL下载和显示图像,这正是我们需要的。
import gradio as gr print(gr.__version__) 4.37.1
,这是结果:>构建经典ML模型的界面
首先创建一个新的工作目录和一个名为app.py的新脚本。然后,将加载数据加载的GitHub Gist的代码粘贴,使用Scikit-Learn管道处理并训练RandomForestRegress模型。现在,让我们为经典表格回归模型构建一个接口。我们将使用钻石数据集,该数据集可在Seaborn中使用。
$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
>该函数将这些输入转换为数据框,并将其传递到训练有素的模型管道的.predict()方法。最后,它返回一个带有预测价格的字符串。
现在,接口类必须匹配此函数的签名:用于处理功能的九个输入组件和一个用于显示预测价格的输出:
$ pip install gradio ipykernel
在班级内,我们为分类功能创建了三个下拉列表。每个功能中的唯一类别都填充了这些选项。我们还创建了六个滑块组件以接受数字功能。滑块的范围取决于每个特征的最小值和最大值。
>我们现在要做的就是执行脚本以运行和部署应用程序:> $ ipython kernel install --user --name=gradio_tutorial $ jupyter lab # Start the lab
>有关最佳实践和优化提示,请跳至下面的最佳实践部分。
>
令牌仅显示一次,因此请确保将其存储在安全的地方。
>使用此令牌,您可以在空间上永久托管时尽可能多地部署想要的级别应用程序。例如,我们将从上一节中部署钻石价格预测模型,您会发现它非常容易。>
您所要做的就是使用UI脚本导航到目录,并在终端上调用Gradio部署:
> >终端使您通过将脚本转换为功能正常的拥抱面空间。它要求诸如:
之类的详细信息>空间标题:这将是部署后空间URL的一部分
包含gradio ui代码(app.py默认值)的脚本的名称
>- >空间的硬件;空白以使用CPU(免费)
- 任何脚本使用的任何环境变量(这是您安全存储API密钥和用户秘密的位置)
- > 依赖项 - 通过按Enter
- >终端为您提供了部署的空间链接。这是它的外观:
- 关于这种部署方法的另一个好处是,Gradio会自动将演示转换为工作的REST API。访问和查询的说明始终位于底部:
- 7个基本的生成AI工具,用于构建出色的AI应用程序 5个项目,您可以使用Gen AI模型
- 构建 CI/CD用于机器学习课程
-
一个一个一个接一个地输入 >
>有关更多部署和共享选项,例如将演示嵌入网页中,将Google Authentication添加到应用程序等,请访问Gradio文档的“共享您的应用程序”部分。
gradio最佳实践和技巧>
在使用Gradio开发用户界面时,遵循最佳实践可以显着提高应用程序的用户体验和可维护性。以下是一些关键建议:>
>在Python脚本中组织Gradio应用程序,以进行更好的版本控制,协作和部署。>
2。优化组件的空间分配3。提供全面的信息
>利用“信息”和“标签”属性为每个组件提供清晰的说明和上下文。
4。有效地处理大型功能集
对于具有多个功能的模型,请使用文件输入(CSV,JSON)启用批处理预测并简化接口。
5。正确管理环境变量
>使用python-dotenv进行本地开发,并将变量设置在拥抱面部空间以进行部署。
6。实施错误处理和验证确保高对比度,为图像提供ALT文本,并为所有交互式元素启用键盘导航。
9。实施渐进披露
>使用手风琴或选项卡来组织复杂的接口,根据需要揭示高级选项。
10。定期更新并维护> 上托管大型型号
>对于大型表格模型,上传到拥抱面式集线器并直接在Gradio脚本中加载,以提高性能并减少本地存储要求。13。利用拥抱面数据集
对于大型数据集,上传到HuggingFace Hub,然后直接在您的Gradio应用程序中访问它们以简化数据管理并改善加载时间。
结论和进一步的资源
在本文中,我们了解了使用Gradio为AI应用程序构建用户界面的基础知识。我们刚刚在表面下方倾斜,因为Gradio为构建复杂界面提供了更多功能。例如,接口状态允许您的应用程序记住从一个函数调用到另一个函数的输出。用户输入更改后,反应性接口会动态更改UI。使用块,您可以构建具有自定义布局和设计的应用程序。同样,请查看这些相关资源以获取更多内容:
以上是在Python中使用Gradio的AI应用程序构建用户界面的详细内容。更多信息请关注PHP中文网其他相关文章!

尽管它无法提供训练有素的治疗师的人类联系和直觉,但研究表明,许多人很乐意与相对无面和匿名的AI机器人分享他们的担忧和担忧。 这是否总是好我

人工智能(AI)是一种技术数十年的技术,正在彻底改变食品零售业。 从大规模的效率提高和成本降低到精简的各种业务功能的流程,AI的影响是Undeniabl

让我们来谈谈。 对创新AI突破的分析是我正在进行的AI中正在进行的福布斯列覆盖的一部分,包括识别和解释各种有影响力的AI复杂性(请参阅此处的链接)。此外,对于我的comp

保持专业形象需要偶尔的衣柜更新。 在线购物方便时,它缺乏面对面尝试的确定性。 我的解决方案? AI驱动的个性化。 我设想AI助手策划服装Selecti

谷歌翻译新增语言学习功能 据Android Authority报道,应用专家AssembleDebug发现,最新版本的谷歌翻译应用包含一个新的“练习”模式的测试代码,旨在帮助用户通过个性化活动来提高他们的语言技能。此功能目前对用户不可见,但AssembleDebug能够部分激活它并查看其一些新的用户界面元素。 激活后,该功能会在屏幕底部添加一个新的“毕业帽”图标,标有“Beta”徽章,表明“练习”功能最初将以实验形式发布。 相关的弹出提示显示“练习为你量身定制的活动!”,这意味着谷歌将生成定制的

麻省理工学院的研究人员正在开发Nanda,这是为AI代理设计的开创性的Web协议。 Nanda的缩写是网络代理和分散的AI,通过添加Internet功能,使AI Agen能够构建人类的模型上下文协议(MCP)。

Meta的最新冒险:与Chatgpt竞争的AI应用程序 Facebook,Instagram,WhatsApp和Threads的母公司Meta正在启动新的AI功能应用程序。 这个独立的应用程序Meta AI旨在直接与Openai的Chatgpt竞争。 杠杆

导航AI网络攻击的上升潮流 最近,CISO的杰森·克林顿(Jason Clinton)拟人化,强调了与非人类身份相关的新兴风险 - 作为机器对机器的通信增殖,维护这些“身份”


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6
视觉化网页开发工具

Dreamweaver Mac版
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具