Taipy:AI应用全栈开发神器

Taipy 是一个免费使用的 Python 库,任何具备基本 Python 技能的人都可以使用。它是数据科学家、机器学习工程师和 Python 程序员的得力工具。使用 Taipy,你可以轻松地将数据和机器学习模型转换为功能齐全的 Web 应用程序。在我们生活的瞬息万变的世界中,拥有强大而灵活的工具非常重要。这就是 Taipy 的作用所在!

Vincent Gosselin 和 Albert Antoine 创立了 Taipy,他们在领先的软件公司拥有丰富的背景。他们专注于应对三大挑战 —

  • 所有与数据处理相关的职业都存在孤立的工作。
  • 缺乏用于前端和后端开发的 Python 工具。
  • 专注于数据科学应用,但考虑不足

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、Taipy vs. Streamlit

使用 Streamlit 设计应用程序非常简单,只需要很少的代码,因此它是快速展示原型的绝佳选择。任何对 Python 语法有基本了解的人都可以使用它。

Taipy 同样简单、清晰、优雅,易于开发。虽然添加超链接和视觉元素等任务可能需要对 markdown 有一定了解,但 Taipy 提供了灵活性并允许轻松参数化。

Streamlit 遵循 Web 应用程序的标准设计模板,因此很难使用 CSS 和 HTML 更改应用程序的布局。相比之下,Taipy 非常灵活,可以轻松调整视觉元素的显示属性,而无需具备 CSS 方面的专业知识。

Streamlit 主要依靠简单的前端框架进行应用程序控制和设计。另一方面,Taipy 为创建应用程序的后端提供专门支持,从而促进场景、管道和版本控制的高效创建、组织和处理。Taipy 的核心视觉元素进一步简化了前端和后端之间的联系。

Streamlit 缺乏处理大量数据的固有支持/优化。无论数据大小如何,每个 Streamlit 应用程序在后台都以相同的方式构建/编译。 Taipy 具有表格分页、图表抽取器和异步执行功能等功能,在支持大数据和重度处理方面胜过 Streamlit。

2、Taipy 的核心概念

它旨在对任何类型的数据进行建模:输入、中间或输出数据、内部或外部数据、本地或远程数据、历史数据、一组参数、经过训练的模型等。

Taipy GUI

Taipy GUI 库提供了 Python 类,可让您在几分钟内轻松创建强大的 Web 应用程序。

在 Taipy 中,图形用户界面 (GUI) 是由 Taipy 应用程序本身或 Taipy 应用程序所依赖的 Web 服务器生成的网页制作而成。Taipy 通过其 Gui 类简化了此过程,该类管理服务器及其设置。

在 GUI 类中,你可以创建多个页面,你可以在其中放置文本和图形。这些元素可以动态显示应用程序变量的状态,为用户提供相关信息。用户可以与这些元素交互以触发应用程序代码、更改显示的信息、生成更多数据或移动到不同的页面。

网页由你提供的模板文本文件构建,其中包含显示应用程序数据的占位符。这些视觉和交互元素称为视觉元素。

Taipy 支持两种模板格式,由 Markdown 和 Html 类处理,用于描述页面内容。基本思想是根据需要创建页面,为它们分配名称以便于访问,并将它们提供给应用程序中的 GUI 实例。

当你使用 GUI 的 run() 方法时,它会启动一个 Web 服务器,允许客户端连接并请求页面。然后 Taipy 将创建的页面转换为发送回客户端的 HTML 内容,使用户能够查看并与应用程序界面交互。

数据节点

在 Taipy Core 中,数据节点是一个至关重要的概念。它不保存实际数据,而是包含访问和修改数据所需的所有基本信息——一种数据集描述符或数据引用。

数据节点可以灵活地引用各种类型的数据:

  • 文本
  • 数值
  • 参数的列表、元组、集合或字典
  • 自定义 Python 对象(如数据框或数据类)
  • 来自 JSON、CSV、Pickle 或 Parquet 等文件的内容
  • 来自一个或多个数据库表的数据
  • 任何其他形式的数据

其目的是对各种数据类型进行建模,无论它们是输入、中间或输出数据、内部或外部、本地或远程、历史数据、一组参数、经过训练的模型等等。

任务

Taipy 中的任务是开发人员打算执行的 Python 函数。它表示开发人员打算在序列中实现的步骤之一。

例如,任务可能是负责清理初始数据集的预处理函数。或者,它可能是一个涉及训练机器学习模型的更复杂的函数。

鉴于任务代表一个函数,它可以接收一组参数作为输入并产生一组结果作为输出。每个输入参数和输出结果都被视为一个数据节点。

任务的特征(包括输入数据节点、输出数据节点和 Python 函数)由任务配置 (TaskConfig) 指定。创建新任务时必须提供此配置。(有关配置的更多详细信息,请参阅配置文档。)

作业

可以发送任务、序列和场景等实体以供执行。提交场景时,它会启动其包含的所有任务的提交。同样,提交序列会触发该序列内所有任务的执行。

每次提交任务以供执行时,都会生成一个新的作业。作业代表任务的单一执行实例。它包含与任务执行相关的所有相关信息,例如创建日期、执行状态、用户函数日志消息以及可能发生的任何异常堆栈跟踪。

场景

Taipy 场景表示具有一致数据和参数的业务问题。

场景是一种强大的工具,可用于根据不同的假设创建业务问题的不同版本。这对于决策过程中的假设分析特别有用,允许用户在单个应用程序中生成、保存、编辑和运行具有各种参数的多个场景。

每个场景都包含一个可提交执行的有向无环图 (DAG)。此 DAG 是一组连接数据节点的任务,可以通过定义序列将其进一步划分为较小的图以供执行。序列是来自场景任务集的连接任务的子集,形成可独立提交的较小的可执行 DAG。此外,场景可能包含不属于场景 DAG 的额外数据节点,表示与场景相关的额外数据。但是,场景的执行不会计算这些额外的数据节点。

用户分析了初始场景后,他们可能想要调整输入数据节点(不包括中间节点和输出节点),重新运行相同的序列或整个场景,并比较结果。

这涉及创建新场景、调整输入数据、执行该场景,然后将结果与第一个场景进行比较。

此迭代过程可以在多个场景中重复,从而可以彻底探索和分析问题的各种版本。

周期

数据应用程序通常解决遵循特定时间周期的重复性业务挑战。

示例包括:

  • 商店 X 的每周销售数据预测。
  • 公司 A 的供应链的每月总体规划。

为了满足这一需求,Taipy 引入了“周期”(或工作周期)的概念,表示这种时间模式的单次迭代。 每个周期都有一个开始日期和持续时间,由场景的选定时间频率决定。在 Taipy 中,场景可以具有以下频率:

  • Frequency.DAILY
  • Frequency.WEEKLY
  • Frequency.MONTHLY
  • Frequency.QUARTERLY
  • Frequency.YEARLY

创建新场景时,它会链接到与其频率和创建日期相匹配的特定周期。

范围

数据节点的范围由具有以下值的枚举确定:

  • Scope.SCENARIO(默认值)
  • Scope.CYCLE
  • Scope.GLOBAL

每个数据节点都拥有一个范围,这是由 DataNodeConfig 定义的属性,指示数据节点在实体图中的可见性。在此图中,每个节点都是一个或多个父节点的一部分。数据节点与单个周期内的至少一个场景相关联。

简而言之:

  • 具有 Scope.SCENARIO 的数据节点可以由单个场景中的多个任务和序列使用,但不能成为另一个场景的任务或序列的一部分。
  • Scope.CYCLE 的数据节点可以在一个周期内的所有任务、序列和场景之间共享,但不能与不同周期的任务、序列或场景共享。
  • Scope.GLOBAL 的数据节点可以由任何任务、序列和场景共享,无论它们的周期如何。

3、Taipy Studio

Taipy Studio 是 Visual Studio Code 的一个扩展,它显著简化了 Taipy 应用程序的开发,重点关注两个关键领域:

构建配置:

  • 对于 Taipy Core 功能,创建 Taipy 配置至关重要。这涉及声明 DataNode 配置、任务配置等。
  • 应用程序执行通常从制作依赖于这些配置元素的实体开始。
  • Taipy Studio 具有一个图形编辑器,可以创建和配置存储在 TOML 文件中的元素。这些文件由 Taipy 应用程序在运行时加载。
  • 编辑器将序列和场景表示为图形,其中节点代表数据节点或任务。
  • 在配置文件版本页面上探索有关编辑 Taipy 配置文件的更多详细信息。

使用 Markdown 定义 Taipy GUI 页面内容:

  • Taipy GUI 利用 Markdown 语法的增强实现,允许定义应用程序页面的视觉元素。
  • 鉴于可用的视觉元素种类繁多,手动输入所有内容可能会很麻烦。Taipy Studio 提供代码完成功能,以帮助填充元素定义文本片段。
  • 检测 Markdown 文本中的拼写错误和错误可能具有挑战性。 Taipy Studio 会识别这些问题并在“问题”视图中报告它们,通常会提供“快速修复”操作以快速解决语法问题。

安装后,Taipy Studio 在以下条件下变为活动状态:

  • 当前项目包含任何带有 .toml 扩展名的文件(假定为 Taipy 配置文件)。
  • 当前项目包含任何带有 .md 扩展名的文件(假定为 Taipy GUI 页面定义页面)。
  • 当前项目包含任何带有 .py 扩展名的文件(可能包含定义 Taipy GUI 页面的字符串的 Python 源文件)。
  • 使用“视图 > 打开视图…”菜单选项明确打开 Taipy 配置视图时。

5、UI 视觉元素

以下是Taipy 中可用控件的列表:

文本

按钮

输入

数字

滑块

切换

日期

文件下载

文件选择器

图像

指示器

菜单

导航栏

选择器

状态

表格

对话框

图表

以下是Taipy 中所有可用块元素的列表:

零件

可展开

布局

窗格

6、Taipy安装

使用 pip 安装 taipy 库:

pip install taipy

7、场景和数据管理示例

以下示例展示了 Taipy 分析 CSV 文件并提供富有洞察力的演示的能力。它充分利用了 Taipy 的功能,涵盖了前端和后端开发。

虽然此演示中的后端涉及一个由单个任务组成的简单管道,但需要注意的是,Taipy 旨在构建具有多个任务的更复杂的管道。

在这种情况下,管道(在 Taipy 中称为“场景”)根据所选类型过滤电影数据。对类型选择的任何修改都会触发管道的自动运行,显示一个图表,其中包含该类型中最受欢迎的七部电影。

import taipy as tp
import pandas as pd
from taipy import Config, Scope, Gui# Taipy Scenario & Data Management# Filtering function - task
def filter_genre(initial_dataset: pd.DataFrame, selected_genre):filtered_dataset = initial_dataset[initial_dataset["genres"].str.contains(selected_genre)]filtered_data = filtered_dataset.nlargest(7, "Popularity %")return filtered_data# Load the configuration made with Taipy Studio
Config.load("config.toml")
scenario_cfg = Config.scenarios["scenario"]# Start Taipy Core service
tp.Core().run()# Create a scenario
scenario = tp.create_scenario(scenario_cfg)# Taipy User Interface
# Let's add a GUI to our Scenario Management for a full application# Callback definition - submits scenario with genre selection
def on_genre_selected(state):scenario.selected_genre_node.write(state.selected_genre)tp.submit(scenario)state.df = scenario.filtered_data.read()# Get list of genres
genres = ["Action", "Adventure", "Animation", "Children", "Comedy", "Fantasy", "IMAX""Romance","Sci-FI", "Western", "Crime", "Mystery", "Drama", "Horror", "Thriller", "Film-Noir","War", "Musical", "Documentary"]# Initialization of variables
df = pd.DataFrame(columns=["Title", "Popularity %"])
selected_genre = "Action"## Set initial value to Action
def on_init(state):on_genre_selected(state)# User interface definition
my_page = """
# Film recommendation## Choose your favorite genre
<|{selected_genre}|selector|lov={genres}|on_change=on_genre_selected|dropdown|>## Here are the top seven picks by popularity
<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>
"""Gui(page=my_page).run()

8、在 Taipy Cloud 中部署

使用 Taipy Cloud,我们可以部署 Taipy 应用程序。

9、为什么你应该尝试 Taipy

Taipy 为寻求打造高度特定用户体验的开发人员提供了广泛的自定义选项。同时,它为那些想要快速创建简单应用程序的人提供了合理的默认设置。

使用 Taipy GUI,开发人员可以毫不费力地创建多页应用程序,处理各个页面之间的共享状态,应用 CSS 样式,以及许多其他多功能功能。Taipy 的学习曲线比 Streamlit 略高,但提供的自定义功能使其成为非常好的权衡。


原文链接:Taipy:AI应用开发神器 - BimAnt

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

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

相关文章

SpringBoot:让开发更加简单

文章目录 前言什么是 SpringBoot快速启动一个 SpringBoot 项目开发一个登录功能小结 前言 有一天&#xff0c;你脑海中闪现了一个想法&#xff1a;“学了 Java 好像还没怎么使用&#xff0c;今天要不用 Java 开发一个自己的网站&#xff1f;” 你想着不禁激动起来&#xff0c;…

棋牌灯控计时计费系统软件免费试用版怎么下载 佳易王计时收银管理系统操作教程

一、前言 【试用版软件下载&#xff0c;可以点击本文章最下方官网卡片】 棋牌灯控计时计费系统软件免费试用版怎么下载 佳易王计时收银管理系统操作教程 棋牌计时计费软件的应用也提升了顾客的服务体验&#xff0c;顾客可以清晰的看到自己的消费时间和费用。增加了消费的透明…

NASA:GES DISC 的 ATMOS L1 光谱和运行日志 V3 (ATMOSL1)大气痕量分子光谱(ATMOS)1 级产品

目录 简介 变量 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATMOS L1 Spectra and Runlogs V3 (ATMOSL1) at GES DISC 简介 这是第三版大气痕量分子光谱&#xff08;ATMOS&#xff09;1 级产品&#xff0c;包含 netCDF 格式的光谱和运行日志&#xff08;即 &…

Codeforces Round 977

这场比赛是晚上vp的&#xff0c;太逆天了自己&#xff0c;给我自己都菜笑了&#xff0c;第二题当时差了一个那个循序渐进的点没想到&#xff0c;关键细节都想到了&#xff0c;当时以为是错的就没写&#xff0c;第二题没做出来确实好久没遇到过了&#xff0c;裂开 话不多说&…

WMCTF 2024 wp

WEB PasswdStealer 前言 本来题目叫PasswdStealer的&#xff1a;) 考点就是CVE-2024-21733在SpringBoot场景下的利用。 漏洞基本原理参考 https://mp.weixin.qq.com/s?__bizMzg2MDY2ODc5MA&mid2247484002&idx1&sn7936818b93f2d9a656d8ed48843272c0不再赘述。 Spri…

谷歌发布了日语版的 Gemma2 模型——gemma-2-2b-jpn-it

Gemma 是一系列同类最佳的开放式模型&#xff0c;其灵感和技术源自 Gemini 系列模型。 它们是具有开放权重的文本到文本、纯解码器大型语言模型。 Gemma 模型非常适合各种文本生成任务&#xff0c;包括问题解答、摘要和推理。 Gemma-2-JPN 是一个针对日语文本进行微调的 Gemma…

详细分析Spring Framework中 @ConditionalOnProperty的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 基本的Java知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 从实战中学习启发 1. 基本知识 Conditiona…

20分钟写一个链表

目录 前言1.带头结点的循环双链表1.1 链表的分类、线性表的对比1.2 双链表基本操作代码实现1.2.1 初始化1.2.2 销毁、打印链表 总结 前言 有一个学长在面试的时候被问到这样一个问题&#xff0c;“你可以用20分钟写一个链表吗&#xff1f;”学长第一反应是&#xff0c;至少要一…

BFS解决多源最短路问题_01矩阵_C++【含多源最短路问题介绍+dist数组介绍】

BFS解决多源最短路问题_01矩阵_C 0. 多源最短路问题介绍1. 题目解析算法分析2. 代码实现 0. 多源最短路问题介绍 如图&#xff0c;红色是出发点&#xff0c;蓝色是终点。以前我们做的题中&#xff0c;出发点只有一个&#xff0c;所谓多源的意思就是&#xff0c;出发点有多个&am…

KubeSphere中集成ApiSix

一、Apache APISIX 介绍 Apache APISIX 是一款开源的高性能、动态云原生网关&#xff0c;由深圳支流科技有限公司于 2019 年捐赠给 Apache 基金会&#xff0c;当前已经成为 Apache 基金会的顶级开源项目&#xff0c;也是 GitHub 上最活跃的网关项目。Apache APISIX 当前已经覆盖…

✨ComfyUI workflow加密工具节点ComfyUI_CryptoCat

✨背景 玩comfyui的朋友都了解&#xff0c;工作流workflow是一种很重要的资产&#xff0c;可以通过workflow把一系列的处理工作组织起来&#xff0c;提升工作效率&#xff0c;甚至分享生成的图片就可以还原整个的工作流&#xff0c;对于分享传播是个好事情&#xff0c;但是对于…

8位单片机与32位单片机

8位单片机与32位单片机 8位与32位指的是什么 单片机的8位或32位说的是什么呢&#xff1f;要搞懂这个问题&#xff0c;首先要搞明白8位或32位说的是单片机上的哪一个部件。 这是单片机的内部框图。单片机内部由这么多部件构成&#xff0c;并不单单是一个CPU&#xff0c;它内部…

微软推出针对个人的 “AI伴侣” Copilot 会根据用户的行为模式、习惯自动进化

微软推出了为每个人提供的“AI伴侣”Copilot&#xff0c;它不仅能够理解用户的需求&#xff0c;还能根据用户的日常习惯和偏好进行适应和进化。帮助处理各种任务和复杂的日常生活场景。 它能够根据用户的生活背景提供帮助和建议&#xff0c;保护用户的隐私和数据安全。Copilot…

【Canvas与色彩】十六等分多彩隔断圆环

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>隔断圆环Draft5十六等分多彩</title><style type"text…

BFS解决FloodFill算法_被围绕的区域_C++

BFS解决FloodFill算法_被围绕的区域_C 1. 题目描述2. 算法分析3. 代码实现 1. 题目描述 leetcode链接&#xff1a;https://leetcode.cn/problems/surrounded-regions/description/ 给你一个m x n的矩阵board&#xff0c;由若干字符X和O组成&#xff0c;捕获 所有 被围绕的区域…

数据结构 ——— 单链表oj题:链表的回文结构

目录 题目要求 手搓简易单链表 代码实现 题目要求 对于一个单链表&#xff0c;设计一个时间复杂度为O(N)&#xff0c;空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构&#xff0c;给定一个链表的头指针 head&#xff0c;返回一个 bool 值&#xff0c;代表其是否为…

矩阵式键盘接口设计(用单片机读取4x4矩阵式键盘的键号,并将其显示在数码管上)(Proteus 与Keil uVision联合仿真)

一、实验原理 1、分析电路中按键状态检测的方法。 矩阵式&#xff08;也称行列式&#xff09;键盘用于按键数目较多的场合&#xff0c;由行线和列线组成&#xff0c;按键位于行、列交叉点上&#xff0c;见图5-26&#xff0c;一个44的行、列结构可以构成一个16个按键的键盘&…

FastAPI框架使用枚举来型来限定参数、FastApi框架隐藏没多大意义的Schemes模型部分内容以及常见的WSGI服务器Gunicorn、uWSGI了解

一、FastAPI框架使用枚举来型来限定参数 FastAPI框架验证时&#xff0c;有时需要通过枚举的方式来限定参数只能为某几个值中的一个&#xff0c;这时就可以使用FastAPI框架的枚举类型Enum了。publish:December 23, 2020 -Wednesday 代码如下&#xff1a; #引入Enum模块 from fa…

一张图片生成数字人的3D发型:技术创新与应用前景

随着人工智能(AI)和计算机图形学的不断进步,从单张肖像图像生成3D数字头发的技术正在变得越来越成熟。这项技术不仅能够处理复杂的编织和未编织发型,还能在虚拟现实、电影制作和美容行业中找到广泛的应用。本文将详细介绍一种创新的3D头发重建技术,探讨其关键特性、技术创…

Dit架构 diffusion范式分类+应用

1.ping 网址 2.ssh nscc/l20 3.crtl,打开vscode的setting 4.win 10修改ssh配置文件及其密钥权限为600 - 晴云孤魂 - 博客园 整体来看&#xff1a; 使用transformer作为其主干网络&#xff0c;代替了原先的UNet 在latent space进行训练&#xff0c;通过transformer处理潜…