前端低代码框架Gradio,快速构建可交互原型

前言

Gradio 是一个用于创建机器学习模型交互式界面的 Python 库。它提供了一系列的预定义组件,使得开发者可以快速地构建出美观且功能丰富的界面,而无需深入了解复杂的前端技术。

官方文档:

Quickstart

Gradio Custom Components Gallery

示例(QuickStart)

对话机器人

界面核心元素:文本框、按钮

实现:

# @Author: weirdgiser
# @Time: 2024/3/22
# @Function:
import gradio as gr
import random
import time
from models.llm.glm import ChatGLMLanguageModel
from prompts.roleplay import MeanPeopleRolePromptTemplate
from decouple import config
model = ChatGLMLanguageModel(api_key=config("GLM_MODEL_API_KEY"),
                             prompt=MeanPeopleRolePromptTemplate.prompt_messages)

with gr.Blocks(title="人工智障Plus") as demo:
    chatbot = gr.Chatbot()
    msg = gr.Textbox(placeholder="请输入你的问题")
    clear = gr.ClearButton([msg, chatbot],value="清空")

    def respond(message, chat_history):
        resp = model.chat(message)
        chat_history.append((message, resp.message))
        return "", chat_history

    msg.submit(respond, [msg, chatbot], [msg, chatbot])

demo.launch(

说明:上述代码使用了3类Gradio组件:

  • Chatbot:以响应对列表的形式存储用户和机器人间整个对话历史记录。我们只需要关注机器人响应逻辑即可。

  • Textbox:文本框,用户在其中输入消息,通过回车键触发机器人响应

  • ClearButton:清除按钮,用于清除文本框和整个对话历史

参考文档:Creating A Custom Chatbot With Blocks

其它机器人

  • 文艺青年

  • “江湖”高手

  • 守财奴

Gradio组件

Input

  • gr.Text:用于文本输入。
  • gr.Number:用于输入数字。
  • gr.Image:用于上传和显示图像。
  • gr.Video:用于上传和播放视频。
  • gr.Audio:用于上传和播放音频。
  • gr.Dropdown:下拉菜单,用于选择一个选项。
  • gr.Slider:滑块,用于选择一个范围内的值。
  • gr.Checkbox:复选框,用于开关选择。
  • gr.Date:日期选择器。
  • gr.Time:时间选择器。

Layouts

  • Row:水平排列子组件。
  • Column:垂直排列子组件。
  • Tab:选项卡布局,用于在不同的标签页中展示不同的组件。
  • Group:将子组件组合在一起,无间距。
  • Box:将子组件放在一个带有圆角和一些填充的框中。
  • Accordion:手风琴布局,可以切换显示/隐藏所包含的内容。

Other Components

  • gr.Button:按钮,用于触发事件。
  • gr.Markdown:用于渲染 Markdown 文本。

低代码框架

CoolCats
CoolCats
理学学士

我的研究兴趣是时空数据分析、知识图谱、自然语言处理与服务端开发