青岛网站制作工具,淘客联盟如何做网站推广,百度数据中心,.net网站开发实验报告目录 前言一、Gradio介绍以及安装1-1、Gradio介绍1-2、安装 二、快速开始#xff08;初步了解#xff09;2-1、简单小栗子2-2、多输入多输出2-3、简易聊天机器人 三、关键技术3-1、带有样例的输入3-2、提示弹窗3-3、描述内容3-4、风格3-5、流式输出3-6、进度条3-7、分享APP 总… 目录 前言一、Gradio介绍以及安装1-1、Gradio介绍1-2、安装 二、快速开始初步了解2-1、简单小栗子2-2、多输入多输出2-3、简易聊天机器人 三、关键技术3-1、带有样例的输入3-2、提示弹窗3-3、描述内容3-4、风格3-5、流式输出3-6、进度条3-7、分享APP 总结 前言 Gradio是一个用于构建交互式界面的Python库。它可以帮助您快速创建自定义的Web界面用于展示和测试机器学习模型、自然语言处理模型、计算机视觉模型等。 一、Gradio介绍以及安装
1-1、Gradio介绍
Gradio Gradio是一个用于构建交互式界面的Python库。它可以帮助您快速创建自定义的Web界面用于展示和测试机器学习模型、自然语言处理模型、计算机视觉模型等。 Gradio使得构建交互式界面变得非常简单无需编写繁琐的HTML、CSS和JavaScript代码。您可以使用Gradio来创建一个具有输入字段如文本输入或图像上传和输出字段如模型预测结果的界面用户可以直接与您的模型进行交互。 Gradio支持多种输入和输出类型包括文本、图像、音频和视频。您可以通过定义回调函数来处理输入并将输出返回给用户。Gradio还提供了自动化的界面布局和样式使得界面设计变得简单而直观。 1-2、安装
安装Gradio需要python版本为3.8以上
pip install python
pip install gradio# update
pip install --upgrade gradio -i https://mirror.baidu.com/pypi/simple二、快速开始初步了解
2-1、简单小栗子
小栗子将会在浏览器自动弹出地址 http://localhost:7860
gr.Interface类: 可以使用用户界面包装任何函数
fn: 要运行的函数或模型。这个函数接受输入并返回输出。inputs: 输入组件的类型和顺序。可以使用字符串表示组件类型如text、“checkbox”、slider等也可以使用Gradio提供的组件对象如gr.TextInput()、gr.Checkbox()、gr.Slider()等。outputs: 输出组件的类型和顺序。同样可以使用字符串或Gradio提供的组件对象表示。
import gradio as grdef greet(name):return Hello name !demo gr.Interface(fngreet, inputstext, outputstext)if __name__ __main__:demo.launch() 输出
2-2、多输入多输出
注意输入列表中的每个组件依次对应fn函数中的参数。输出列表中的每个组件都对应于fn函数的返回值注意按照顺序排列。
import gradio as grdef greet(name, is_morning, temperature):salutation Good morning if is_morning else Good eveninggreeting f{salutation} {name}. It is {temperature} degrees todaycelsius (temperature - 32) * 5 / 9return greeting, round(celsius, 2)# 创建一个Gradio界面的实例。fn参数指定了要运行的函数inputs参数指定了输入组件的类型和顺序outputs参数指定了输出组件的类型和顺序。在这里输入组件依次是文本输入、复选框和滑块输出组件依次是文本输出和数字输出。
demo gr.Interface(fngreet,# 输入部分为Text组件checkbox组件、滑块。inputs[text, checkbox, gr.Slider(0, 100)],outputs[text, number],
)
demo.launch()输出
2-3、简易聊天机器人
gr.ChatInterface: 专门为聊天机器人UI设计的接口。该接口包装了一个函数接受message和history作为参数返回字符串作为相应。title作为标题。
message用户输入的信息history对话历史
import random
import gradio as grdef random_response(message, history):return random.choice([Yes, No])demo gr.ChatInterface(random_response, titlechatgpt)demo.launch()三、关键技术
3-1、带有样例的输入
概述提供输入数据样例主要是通过examples关键字提供一个嵌套列表。 这段代码使用Gradio库创建了一个简单的计算器应用。应用中定义了一个名为calculator的函数它接受三个参数num1第一个数字、operation操作符和num2第二个数字。根据操作符的不同函数会执行相应的计算操作包括加法、减法、乘法和除法。如果除法操作中的第二个数字为零会抛出一个gr.Error异常。import gradio as gr
#from foo import BAR
#
def calculator(num1, operation, num2):if operation add:return num1 num2elif operation subtract:return num1 - num2elif operation multiply:return num1 * num2elif operation divide:if num2 0:raise gr.Error(Cannot divide by zero!)return num1 / num2demo gr.Interface(calculator,[number, gr.Radio([add, subtract, multiply, divide]),number],number,examples[[45, add, 3],[3.14, divide, 2],[144, multiply, 2.5],[0, subtract, 1.2],],titleToy Calculator,descriptionHeres a sample toy calculator. Allows you to calculate things like $224$,
)demo.launch()
输出
3-2、提示弹窗
提示弹窗当遇到错误时以弹窗的形式弹出如上边例子中除以0的时候会引发的错误gr.Error(“Cannot divide by zero!”)也可以使用gr.Warning 或者 gr.Info 来告警。
3-3、描述内容
概述接口中的一些参数可以帮助理解APP如下方图片分别对应三个参数的内容。
title标题description 描述性内容article最下方的描述 3-4、风格
概述选择界面风格
demo gr.Interface(..., themegr.themes.Monochrome())输出
3-5、流式输出
概述流式输出文字一个个输出而不是全部输出这里用到了关键字yield。这里我们使用time.sleep(0.1)来手动的让每个文字输出有间隔。
import random
import timeimport gradio as grdef random_response(message, history):responses [谢谢您的留言,非常有趣,我不确定该如何回答。,请问还有其他问题吗,我会尽快回复您的。,很高兴能与您交流,]# 逐步生成回复responses random.choice(responses)responses_so_far for char in responses:responses_so_far chartime.sleep(0.1)yield responses_so_fardemo gr.ChatInterface(random_response, titleㄣ知冷煖★)demo.launch()输出
3-6、进度条
概述Gradio支持创建自定义进度条只需要在方法中添加progressgr.Progress()即可可以直接通过调用实例并赋值来更新进度条如progress(0.05)也可以使用其中的tqdm方法来跟踪迭代更新进度。
import gradio as gr
import timedef slowly_reverse(word, progressgr.Progress()):progress(0, descStarting)time.sleep(1)progress(0.05)new_string for letter in progress.tqdm(word, descReversing):time.sleep(0.25)new_string letter new_stringreturn new_stringdemo gr.Interface(slowly_reverse, gr.Text(), gr.Text())demo.launch()输出
3-7、分享APP
概述Gradio样例可以通过设置shareTrue来让他人访问。有访问期限。其他方案
demo.launch(shareTrue)参考文献 Gradio文档
总结
年年岁岁花相似岁岁年年人不同。