在Python中使用Gradio的AI应用程序构建用户界面
>当今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
:
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()
接口
- 组件
- :输入和输出元素,例如文本框,图像和音频。到目前为止,有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供电的两个现实世界文本和基于图像的界面来将所有学到的一切放在一起。
。 首先,我们将构建从英语到土耳其语,西班牙语或中文的语言翻译:
最初,我们定义一个translate_text函数。在其体内,我们设置了OpenAI API键并创建语言图。然后,我们构建了翻译的提示。然后,在一个try-except块中,我们使用系统提示符将请求发送到聊天的端点。最后,我们返回首选。$ conda create -n gradio_tutorial python=3.9 -y $ conda activate gradio_tutorial
登录后复制登录后复制登录后复制登录后复制> $ 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工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

介绍 Openai已根据备受期待的“草莓”建筑发布了其新模型。这种称为O1的创新模型增强了推理能力,使其可以通过问题进行思考

介绍 想象一下,穿过美术馆,周围是生动的绘画和雕塑。现在,如果您可以向每一部分提出一个问题并获得有意义的答案,该怎么办?您可能会问:“您在讲什么故事?

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

对于那些可能是我专栏新手的人,我广泛探讨了AI的最新进展,包括体现AI,AI推理,AI中的高科技突破,及时的工程,AI培训,AI,AI RE RE等主题
