Gradio入门(1)输入输出、表格、文本高亮

news2024/11/28 8:24:16

  本文将会介绍gradio的入门使用,并结合大模型(LLM),给出三个使用例子。
  Gradio 是通过友好的 Web 界面演示机器学习模型的最快方式,以便任何人都可以在任何地方使用它。其官网网址为:https://www.gradio.app/ ,Github网址为:https://github.com/gradio-app/gradio 。

输入与输出

  一个简单的Web页面的输入、输出代码如下:

# -*- coding: utf-8 -*-
import gradio as gr


def greet(name):
    return "Hello " + name + "!"


demo = gr.Interface(
    fn=greet,
    # 自定义输入框
    inputs=gr.Textbox(lines=3, placeholder="Name Here...", label="my input"),
    outputs="text",
)

demo.launch()

页面如下:

简单的输入、输出
  我们使用openaigpt-3.5-turbo模型进行问答,结合Gradio,代码如下:

# -*- coding: utf-8 -*-
import gradio as gr
import openai


def model_completion(prompt):
    openai.api_type = "open_ai"
    openai.api_base = "https://api.openai.com/v1"
    openai.api_version = None
    openai.api_key = "sk-xxx"

    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": prompt}
        ],
        max_tokens=100
    )

    return response['choices'][0]['message']['content']


demo = gr.Interface(
    fn=model_completion,
    inputs=gr.Textbox(lines=3, placeholder="your question here...", label="Question"),
    outputs="text",
)

demo.launch()

页面如下:

大模型问答页面

表格展示

  一个简单的表格展示的示例代码如下:

# -*- coding: utf-8 -*-
import gradio as gr


def make_list(input_str):
    return [_.split(',') for _ in input_str.split('\n')]


demo = gr.Interface(
    fn=make_list,
    # 自定义输入框
    inputs=gr.Textbox(lines=3, placeholder="String Here...", label="input"),
    # 设置输出组件
    outputs=gr.DataFrame(label='Table',
                         interactive=True,
                         wrap=True)
)

demo.launch()

页面如下:
简单的表格应用
  我们使用openai中的gpt-3.5-turbo模型进行文本分类,代码如下:

# -*- coding: utf-8 -*-
import gradio as gr
import openai


def predict(input_str):
    openai.api_type = "open_ai"
    openai.api_base = "https://api.openai.com/v1"
    openai.api_version = None
    openai.api_key = "sk-xxx"

    output_list = []
    for prompt in input_str.split('\n'):
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "Classify the text into Positive, Negative, Neural."},
                {"role": "user", "content": prompt}
            ],
            max_tokens=5
        )
        output = response['choices'][0]['message']['content']
        output_list.append([prompt, output])

    return output_list


demo = gr.Interface(
    fn=predict,
    # 自定义输入框
    inputs=gr.Textbox(lines=3, placeholder="Documents...", label="Documents"),
    # 设置输出组件
    outputs=gr.DataFrame(label='Predict Result',
                         headers=["document", "class"],
                         datatype=["str", "str"],
                         interactive=True,
                         wrap=True)
)

demo.launch()

页面如下:

在Gradio中实现文本分类

文本高亮

  Gradio给出了基于文本比对的文本高亮的例子,文本比对使用difflib模块,示例代码如下:

import gradio as gr
from difflib import Differ


def diff_texts(text1, text2):
    d = Differ()
    output = [(token[2:], token[0] if token[0] != " " else None) for token in d.compare(text1, text2)]
    return output


demo = gr.Interface(
    fn=diff_texts,
    inputs=[
            gr.Textbox(
                label="Text 1",
                info="Initial text",
                lines=3,
                value="The quick brown fox jumped over the lazy dogs.",
            ),
            gr.Textbox(
                label="Text 2",
                info="Text to compare",
                lines=3,
                value="The fast brown fox jumps over lazy dogs.",
            ),
           ],
    outputs=gr.HighlightedText(label="Diff",
                               combine_adjacent=True,
                               show_legend=True
                               ).style(color_map={"+": "red", "-": "green"}),
    theme=gr.themes.Base()
)


demo.launch()

页面如下:
简单的文本高亮例子
  我们使用文本高亮来显示文本纠错结果,文本纠错工具我们使用pycorrector模块,其Github网址为:https://github.com/shibing624/pycorrector 。代码如下:

# -*- coding: utf-8 -*-
import gradio as gr
import pycorrector


def corrector(text):
    corrected_text, detail = pycorrector.correct(text)
    index_list = []
    for _ in detail:
        index_list.extend(range(_[2], _[3]))
    output = [(char, '+' if i in index_list else None)for i, char in enumerate(corrected_text)]
    return output


demo = gr.Interface(
    fn=corrector,
    inputs=gr.Textbox(lines=3, placeholder="Text...", label="Text"),
    outputs=gr.HighlightedText(label="Diff",
                               combine_adjacent=True,
                               show_legend=True
                               ).style(color_map={"+": "yellow"}),
    theme=gr.themes.Base()
)


demo.launch()

页面如下:

使用文本高亮来展示文本接错结果

总结

  本文介绍了机器学习领域中一个很好用的前端展示工具Gradio,分别就输入和输出、表格、文本高亮三个功能上给出了简单示例和大模型方面的应用。
  本人个人博客网站为 https://percent4.github.io/ ,欢迎大家访问~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1978-2022年全国整体GDP平减指数计算模板(可任意调整基期)

1978-2022年全国整体GDP平减指数计算模板(可任意调整基期) 1、时间区间:1978-2022年 2、指标:名义GDP、实际GDP、GDP平减指数 3、中国GDP平减指数计算公式可以给定基期,自动计算平减指数,可根据需要任意…

易混淆的符号

C自学精简教程 目录(必读) &符号在C中有多个含义。 下面我们列出常见的3种&#xff0c;你都能分得清吗&#xff1f; #include <iostream> using namespace std;//传递引用类型的参数 pass by reference void fun(int& a)//(1) 这里的 & 表示参数a是引用类…

加速度传感器术语解析

一、加速度单位 g 一般用g表示加速度&#xff0c;g即为重力加速度9.8米/秒的平方 如上图表示了加速度传感器的量程范围&#xff0c;可选为2g&#xff0c;4g&#xff0c;8g&#xff0c;16g,即对应19.6米/秒的平方、39.2米/秒的平方、78.4米/秒的平方、156.8米/秒的平方。 二、…

k8s(kubernetes)介绍篇

一、Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案&#xff0c;是 Google 开源的一个容器集群管理系统&#xff0c;Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台&#xff0c;更是一个开放平台&#xff0c;对…

docker linux(centos 7) 安装

这是个目录 1:安装1:手动安装(适用于centos7)之一2:手动安装(适用于centos7)之二3&#xff1a;一键安装docker4:二进制安装1&#xff1a;下载二进制包2&#xff1a;解压3&#xff1a;移动文件4&#xff1a;后台运行docker5&#xff1a;测试 dicker命令表999&#xff1a;遇到的问…

C语言每日一练--------Day(8)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;图片整理 寻找数组下标 &#x1f493;博主csdn个人主页&#xff1a;小小…

二十、观察者模式

一、什么是观察者模式 观察者&#xff08;Observer&#xff09;模式的定义&#xff1a;指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&…

苹果秋季发布会,北京时间9月13日

苹果公司宣布&#xff0c;将于当地时间9月12日&#xff08;北京时间9月13日&#xff09;召开新闻发布会&#xff0c;发布会将于美东时间下午1点&#xff08;北京时间凌晨1点&#xff09;在苹果官网上进行直播&#xff0c;预计苹果届时将在会上发布iPhone 15系列和新款苹果手表。…

如何制作并运行 jar 程序

以下是用 Intellij 制作 jar 程序&#xff0c;并运行的方法。 【1】新建工程&#xff0c;保持默认选项&#xff0c;Next 【2】保持默认选项&#xff0c;Next 【3】给工程命名&#xff0c;设置保存位置&#xff0c;Finish 【4】新建工程结束&#xff0c;进入开发界面 【5】展开…

Spring源码分析(七)不同作用域下Bean的创建

目录 1.1 单例模式的实例化1.1.1 从缓存中获取1.1.2 前置处理1.1.3 获取Bean1.1.4 后置处理1.1.5 加入缓存 1.2 原型模式实例化1.3 其他模式实例化 官网&#xff1a;Home参考书籍&#xff1a;Spring源码深度解析-郝佳编著-微信读书 上一篇文章我们分析到不同的作用域创建Bean&…

推荐两款开源的绘制流程图软件

一句话导读 目前流程图绘制软件非常多&#xff0c;包括本机安装的、web端的都有&#xff0c;如Visio、Graphviz、processOn等等。但是几乎都是收费的。本文给大家介绍两款优秀的开源免费的流程图绘制软件。 目录 一句话导读 一、draw.io 二、Meta2d.js ​1.为什么使用 2.…

权限提升-PostgreSQL数据库提权+第三方应用提权

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…

关于两个不同数据库的两张表建立数据库链接,关联查询数据

一、数据库链接 数据库链接&#xff08;database link&#xff09;是用于跨不同数据库之间进行连接和数据传输的工具或方法。它允许在一个数据库中访问另一个数据库中的对象和数据。 二、具体操作 以Oracle数据库为例 --1.建立链接tjpt CREATE DATABASE LINK tjpt CONNECT…

STM32G0 定时器PWM DMA输出驱动WS2812配置 LL库

通过DMA方式输出PWM模拟LED数据信号 优点&#xff1a;不消耗CPU资源 缺点&#xff1a;占用内存较大 STM32CUBEMX配置 定时器配置 定时器通道&#xff1a;TIM3 CH2 分频&#xff1a;0 重装值&#xff1a;79&#xff0c;芯片主频64Mhz&#xff0c;因此PWM输出频率&#xff1a…

mall :rabbit项目源码解析

文章目录 一、mall开源项目1.1 来源1.2 项目转移1.3 项目克隆 二、RabbitMQ 消息中间件2.1 rabbit简介2.2 分布式后端项目的使用流程2.3 分布式后端项目的使用场景 三、安装RabbitMQ(Win10)3.1安装erLang语言&#xff0c;配置环境变量3.2 安装RabbitMQ服务端3.3 测试安装效果 四…

webservice调用对接第三方系统

#webservice调用对接第三方系统# 最近接到一个任务&#xff0c;需要对接第三方数据&#xff0c;第三方提供对接方式的是通过webservice调用&#xff0c;webservice调用有好几种方式&#xff0c;具体可以自行了解&#xff0c;我选择的是通过wsdl文件自动生成客户端代码对接。 …

专门针对开发人员,攻击者利用Rust获取操作系统信息

近日&#xff0c;研究人员在 Rust 编程语言的 crate 注册表中发现了一些恶意软件包&#xff0c;专门针对开发人员。 Phylum 在上周发布的一份报告中称&#xff0c;这些库是由一个名为 "amaperf "的用户在 2023 年 8 月 14 日至 16 日之间上传的。现已删除的软件包名…

2461. 长度为 K 子数组中的最大和

2461. 长度为 K 子数组中的最大和 C代码&#xff1a;滑动窗口 long long maximumSubarraySum(int* nums, int numsSize, int k){int hash[100001] {0};long long sum 0;int l 0;long long ans 0;for (int r 0; r < numsSize; r) {hash[nums[r]];sum nums[r];while ((…

ZooKeeper基础命令和Java客户端操作

1、zkCli的常用命令操作 &#xff08;1&#xff09;Help &#xff08;2&#xff09;ls 使用 ls 命令来查看当前znode中所包含的内容 &#xff08;3&#xff09;ls2查看当前节点数据并能看到更新次数等数据 &#xff08;4&#xff09;stat查看节点状态 &#xff08;5&#xf…

【Unity-Cinemachine相机】Cinemachine Brain属性详解

在Package Manager中下载Cinemachine 创建一个Virtual Camera&#xff0c;然后会发现Main Camera后面多出了个标志&#xff0c;而且属性也不能再修改了 因为绑定了CinemachineBrain&#xff0c;它会读取场景中某个虚拟相机的配置&#xff0c;并以此配置来控制相机的行为&#x…