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

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

输入与输出

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

# -*- coding: utf-8 -*-
import gradio as grdef 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 openaidef model_completion(prompt):openai.api_type = "open_ai"openai.api_base = "https://api.openai.com/v1"openai.api_version = Noneopenai.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 grdef 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 openaidef predict(input_str):openai.api_type = "open_ai"openai.api_base = "https://api.openai.com/v1"openai.api_version = Noneopenai.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_listdemo = 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 Differdef diff_texts(text1, text2):d = Differ()output = [(token[2:], token[0] if token[0] != " " else None) for token in d.compare(text1, text2)]return outputdemo = 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 pycorrectordef 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 outputdemo = 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.hqwc.cn/news/90363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1、Spring是什么?

Spring 是一款主流的 Java EE 轻量级开源框架 。 框架 你可以理解为是一个程序的半成品,它帮我们实现了一部分功能,用这个框架我们可以减少代码的实现和功能的开发。 开源 也就是说,它开放源代码。通过源代码,你可以看到它是如何…

MySQL高级篇_13_事务基础知识_尚硅谷_宋红康

MySQL高级篇_事务基础知识 1. 数据库事务概述1.1 存储引擎支持情况1.2 基本概念1.3 事务的ACID特性原子性(atomicity)一致性(consistency)隔离性(isolation)持久性(durability) 1.4 事务的状态 …

安卓版yolo-fastest

安卓版本yolofastest效果测试 安卓配置OPENCV4ANDROID,见我的博客一篇文章opencv4dandroid配置 这个不需要使用JNI,十分简单的配置 说真的,其实只调用OPENCV的函数,自己写的代码不多,使用OPENCV4ANDROID和JNI的时间差…

JWT 技术的使用

应用场景:访问某些页面,需要用户进行登录,那我们如何知道用户有没有登录呢,这时我们就可以使用jwt技术。用户输入的账号和密码正确的情况下,后端根据用户的唯一id生成一个独一无二的token,并返回给前端&…

软件测试/测试开发丨Selenium 高级定位 Xpath

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27036 一、xpath 基本概念 XPATH是一门在XML文档中查找信息的语言 XPATH使用路径表达式在XML文档中进行导航 XPATH的应用非常广泛,可以用于UI自…

【哈士奇赠书活动 - 37期】- 〖深入浅出SSD:固态存储核心技术、原理与实战 第2版〗

文章目录 ⭐️ 赠书 - 《深入浅出SSD:固态存储核心技术、原理与实战 第2版》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《深入浅出SSD:固态存储核心技术、原理与实战 第2版》 ⭐️ 内容简介 本书从基础认知、核心技…

RabbitMQ+springboot用延迟插件实现延迟消息的发送

延迟队列:其实就是死信队列中消息过期的特殊情况 延迟队列应用场景: 可以用死信队列来实现,不过死信队列要等上一个消息消费成功,才会进行下一个消息的消费,这时候就需要用到延迟插件了,不过要线在docker上…

基于Java的代驾管理系统 springboot+vue,mysql数据库,前台用户、商户+后台管理员,有一万五千字报告,完美运行

基于Java的代驾管理系统 springbootvue,mysql数据库,前台用户、商户后台管理员,有一万五千字报告,完美运行。 系统完美实现用户下单叫车、商户接单、管理员管理系统,页面良好,系统流畅。 各角色功能&#x…

【探索C++】输入输出

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

nuxt3+ts+vue3的ssr项目总结

目录 一、什么是SSR、SEO、SPA,它们之间的关系又是怎样的。 二、VUE做SSR的几种方法 1、插件prerender-spa-plugin 2、VUE开启SSR渲染模式 3、使用NUXT框架 三、NUXT3VUE3TS (一)基本配置 1、文件夹介绍 assets components pages…

2023年数字孪生行业研究报告

第一章 行业概况 1.1 定义 数字孪生(Digital Twin)是一种先进的建模技术,它通过创建一个物理实体的虚拟复制品,以实时模拟、预测和优化实体的行为和性能。这个虚拟模型会同步收集和分析来自其物理对应物的数据,从而提…

Matlab图像处理-图像缩放

基本概念 图像缩放是指将给定的图像在x轴方向按比例缩放a倍,在y轴方向按比例缩放b倍,从而获得一幅新的图像。 如果ab,即在x轴方向和y轴方向缩放的比率相同,则称这样的比例缩放为图像的全比例缩放。 如果a≠b,图像比…