TinyEngine 2.4版本正式发布:文档全面开源,实现主题自定义,体验焕新升级!
本文由体验技术团队李璇原创。
前言
TinyEngine低代码引擎使开发者能够定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过cli创建个人工程进行二次开发,实时定制出自己的低代码平台。适用于多场景的低代码平台开发,如:资源编排、服务端渲染、模型驱动、移动端、大屏端、页面编排等。
近期,TinyEngine v2.4版本带着新的功能和优化正式上线~ 希望这次更新能为大家的使用带来更多的便利与惊喜。
- 源码:https://github.com/opentiny/tiny-engine (欢迎 Star ⭐)
- 官网:https://opentiny.design/tiny-engine#/home
这次版本特性开发和问题修复已经有更多的开发者朋友参与进来,我们在此诚挚感谢 @STATICHIT、@stwflyfox、@webzmj530、@Ljhhhhhh、@1degrees 积极参加 TinyEngine 的开源共建,同时也邀请大家一起加入开源社区的建设,让 TinyEngine 成长的更加优秀和茁壮。
在本次更新中,我们重点开发及优化了以下几个方面
v2.4.0 变更特性概览
-
主题开发能力:cli支持用户自定义主题
-
插件灵活布局:所有插件面板统一浮动和固定逻辑,部分面板可拖拽调整宽度
-
默认页与主页功能优化调整
-
大纲树支持复制、删除、多选能力
-
文档开源:文档从内部托管迁移至了Github
-
项目TS改造
-
AI插件支持输入用户大模型API Token使用AI功能
-
同时支持 unpkg 与 npmmirror CDN
-
修复了多个问题,优化了一些交互与功能细节。
v2.4.0 所有 changelog
TinyEngine v2.4.0 新特性解读
1. 主题开发能力
1.1默认提供了深色和浅色主题,通过顶部主题切换插件点击图标即可进行切换
1.2用户在注册表配置自定义主题,主题切换展示为列表切换
- 创建设计器可参考官网文档:https://opentiny.design/tiny-engine#/help-center/course/dev/91
- 在已经创建的设计器根目录执行engine-cli create,选择theme以创建一个新的主题
npx @opentiny/tiny-engine-cli create# 上面命令默认会拉取最新的版本,也可以指定版本号npx @opentiny/tiny-engine-cli@2.4.0 create
执行下面命令安装依赖
# 安装依赖
npm install
- 将主题接入设计器
使用vs Code 打开 customPlatform 项目,修改 registry.js
- 开发调试主题
重新打开项目页面,可以看到主题展示为列表切换,可以切换自定义主题
2. 插件灵活布局
2.1 统一固定和浮动逻辑
所有插件面板统一浮动和固定逻辑
之前版本的 固定 和 浮动 插件面板操作 仅支持 物料 和 大纲树 ;\
现在左右侧的插件全部支持 固定 和 浮动 面板操作。
*
以 区块管理 和 数据源 面板为例进行展示*\
2.2 部分面板可拖拽调整宽度
操作方法:鼠标悬浮在相应面板右侧的边框线上,边框线变色即可开始拖动。
目前支持拖拽改变面板宽度的插件是:大纲树、页面 JS 和 页面 Schema
- 大纲树
- 页面 JS
- 页面 Schema
3. 默认页与主页功能优化调整
- 主页调整为在”…“菜单设置
- 默认页调整
之前的默认页是在子页面的页面设置中将其设置为父级的默认页(如图所示)
这个版本调整为在父页面直接选择默认页(如图所示)
4. 大纲树支持复制、删除、多选能力
在上一个2.3版本中,画布提供了多选节点的功能,并且多选节点支持快捷键进行操作,多选时支持 ctrl+c
复制、ctrl+v
粘贴、delete
删除等。2.4版本我们把支持多选的功能同步给了大纲树,并且多选操作逻辑和画布保持一致,多选选中的节点在大纲树和画布会同步显示。如下图所示
另外还给大纲树补充了几个其他常用的快捷键,具体看如下表格
大纲树支持的快捷键 | 功能说明 | 支持多选 |
---|---|---|
ctrl+鼠标点击 | 选择多个节点。如点击已选中节点后,则为取消选中 | 否 |
ctrl+c | 复制节点 | 是 |
ctrl+v | 粘贴节点 | 是 |
ctrl+x | 剪切节点 | 是 |
delete | 删除节点 | 是 |
ctrl+z | 撤销历史记录 | 否 |
ctrl+y | 回退历史记录 | 否 |
ctrl+s | 保存页面schema | 否 |
5. 文档开源
文档现已开源!我们将文档从内部托管迁移至了Github。这份文档现在属于整个社区!欢迎开发者:
- ✍ 修正你发现的问题
- 💡 添加你熟悉的技巧
- 📚 编写新的教程章节
期待与你共同打造更好的技术文档
6. 项目TS改造
随着项目规模的扩大,基于 Javascript 的代码在可维护性和团队协作方面逐渐暴露出一些问题。为了解决潜在的类型错误、提高开发效率并增强代码稳定性,我们决定将项目改造成 Typescript。这个改造过程是逐步的,目前2.4版本进行了如下更改
- 项目改造成了ts项目,ts类型完善工作正在进行中
- 添加了ts的ESLint规则校验以增强代码质量
7. AI插件支持输入用户大模型API Token使用AI功能
Ai对话框交互样式调整,点击 标题 或 设置图标 展示弹窗,弹窗内可配置大模型类型以及对应的token
8. 同时支持 unpkg 与 npmmirror CDN
鉴于 unpkg cdn 在国内网络有可能波动,访问不稳定的原因。我们增加了 npmmirror CDN 的支持。PR:#1220
使用方法:
(1). 使用 npmmirror CDN
// .env.alpha、.env.development、.env.productionVITE\_CDN\_DOMAIN=<https://registry.npmmirror.com>\# 需配合 VITE\_CDN\_TYPE 使用,值必须是 npmmirrorVITE\_CDN\_TYPE=npmmirror
(2). 使用 unpkg CDN
VITE\_CDN\_DOMAIN=<https://unpkg.com>
(3). 物料使用 npmmirror CDN
npmmirror CDN 格式为: https://registry.npmmirror.com/${packageName}/${version}/files/filePath
如果我们物料也需要使用 npmmirror 的 CDN,我们按照格式进行配置即可。比如:
- https://registry.npmmirror.com/@opentiny/vue-runtime/~3.20/files/dist3/tiny-vue-pc.mjs
- https://registry.npmmirror.com/element-plus/2.4.2/files/dist/index.full.mjs
9. 其他:交互、功能细节优化 & bug 修复
- 修复:insert 方法因为 referTargetNode 找不到引起的报错,导致 slot插槽增加失败。@chilingling #1140
- 修复:margin 不支持配置负数 @xuanlid #1164
- 修复:数据源绑定时,将数据源初始化的State 和原有State错误更新,导致功能无效,Schame沉余无用数据 @1degrees #1208
- 修复:拆包之后packages字段丢失 @webzmj530 #1200
- 修复:拆包的时候一个组件在多个分组里面也可以一个分组里面存在两个组件(componentName相同, snippetName不同) @webzmj530 #1212
- 修复:页面初始化时,页面加载 dataSourceMap 提示 undefined 的 bug @chilingling #1142
- 修复:设计器画布上下移动和复制按钮异常 @chilingling #1180
- 修复:schema 中 css 字段缺失时,出码成 的 bug @chilingling #1179
- 修复:文案为空时 i18n 下的文案为 null 导致出码异常,新增判断条件,默认为空对象 @Ljhhhhhh #1211
- 修复:1. 多选节点进行点击回退剩余一个元素时,框选效果异常 2. 快捷键剪切失效 @SonyLeo #1201
- 修复:自定义渲染函数中的组件,如果页面没有引入,预览页面和出码页面会存在问题 @webzmj530 #1146
- 修复:引入的第三方组件无法在出码、预览中正常使用 @Ljhhhhhh #1215
- 修复:表格组件插槽变量无法使用$rowIndex变量 @xuanlid #1224
- 修复:页面JS插件中函数存在注释时保存会导致内容丢失或无法保存 @chilingling #1184
- 修复:连续设置需要过滤内容的 script 到js面板,js 面板没有正确显示更新 @chilingling #1196
- 修复:画布行列容器组件,鼠标悬停剪刀图标时,分割虚线不显示 @gene9831 #1233
- 修复:滚动画布时,hover框不会随着元素位置变动更新 @gene9831 #1235
以上是此次更新问题修复的主要内容,更多细节请查看 v2.4.0 changelog Bug Fixes
如何使用新版本
- 如果是从 2.0.0 版本升级上来,只需要在 cli 创建出来的工程,将 @opentiny/tiny-engine 相关的依赖,升级到 2.4.0 即可
- 如果是从 1.x 版本升级上来,需要参考迁移指南,升级到 2.4 版本
- 如果是全新创建项目,仅需要使用 tinyengine-cli 创建项目即可。
npx @opentiny/tiny-engine-cli create-platform my-designer
结语
TinyEngine 2.4 版本更新不仅是对大纲树功能进行了完善,实现了插件灵活布局等,最重要的是我们将文档从内部托管迁移至了Github!每一步前行都值得铭记,感谢有您陪伴我们一起迭代成长,同时也欢迎大家加入社区讨论,参与社区共建!
关于OpenTiny
欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~
OpenTiny 官网:https://opentiny.design
OpenTiny 代码仓库:https://github.com/opentiny
TinyVue 源码:https://github.com/opentiny/tiny-vue
TinyEngine 源码: https://github.com/opentiny/tiny-engine
欢迎进入代码仓库 Star🌟TinyEngine、TinyVue、TinyNG、TinyCLI、TinyEditor~
如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~
相关文章:
TinyEngine 2.4版本正式发布:文档全面开源,实现主题自定义,体验焕新升级!
本文由体验技术团队李璇原创。 前言 TinyEngine低代码引擎使开发者能够定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过cli创建个人工程进行二次开发,实时定制出自己的低…...
gemini讲USRP
您好!USRP (Universal Software Radio Peripheral) 是一种软件无线电 (SDR) 设备系列,由 Ettus Research (现为 National Instruments 旗下公司) 开发和销售。USRP 提供了一个灵活且可配置的平台,用于设计、原型开发和部署各种无线通信系统。…...
智能超表面通信控制板--通道电压并行控制版
可重构智能超表面(Reconfigurable Intelligent Surface, RIS)技术是一种新兴的人工电磁表面技术,它通过可编程的方式对电磁波进行智能调控,从而在多个领域展现出巨大的应用潜力。超表面具有低成本、低能耗、可编程、易部署等特点&…...
Spring Task(笔记)
介绍: 应用场景: cron表达式: cron表达式在线生成器: 入门案例:...
YOLOv3的改进思路与方法:解析技术难点与创新突破
YOLOv3作为目标检测领域的经典算法,凭借其出色的速度和性能平衡获得了广泛应用。然而,随着计算机视觉技术的不断发展,YOLOv3在某些场景下的局限性也逐渐显现。本文将深入分析YOLOv3的不足之处,并系统介绍常见的改进策略和方法&…...
【解锁元生代】ComfyUI工作流与云原生后端的深度融合:下一代AIGC开发范式革命
## 从单机到云原生的认知跃迁 当2023年Stable Diffusion WebUI还在争夺本地显卡性能时,ComfyUI已悄然开启工作流模块化革命;当2024年AI绘画工具陷入"参数调优内卷",云原生技术正重塑AI开发的基础设施层。二者的深度融合࿰…...
shell 编程之正则表达式与文本处理器
目录 一、正则表达式 1. 概念 2. 作用 3. 分类 二、基础正则表达式(BRE) grep 命令选项 三、扩展正则表达式(ERE) 与 BRE 的区别 四、文本处理器 1. sed 工具 2. awk 工具 五、总结 总结对比 元字符总结 工具对比与…...
Shell编程之正则表达式与文本处理器
目录 一、引言 二、正则表达式 2.1 定义与用途 2.2 基础正则表达式 2.2.1 查找特定字符 2.2.2 利用中括号 “[]” 查找集合字符 2.2.3 查找行首 “^” 与行尾字符 “$” 2.2.4 查找任意一个字符 “.” 与重复字符 “*” 2.2.5 查找连续字符范围 “{}” 2.3 元字符总结…...
TMDOG——语言大模型进行意图分析驱动后端实践
语言大模型进行意图分析驱动后端实践 项目概述 项目地址:https://github.com/TMDOG666/AI_Backend_Demo 该项目通过语言大模型,通过分析用户意图、拆分任务、构建API调用链来驱动后端实践。 以一个简单的教务系统后端为例,将教务系统后端…...
未启用CUDA支持的PyTorch环境** 中使用GPU加速解决方案
1. 错误原因分析 根本问题:当前安装的PyTorch是CPU版本,无法调用GPU硬件加速。当运行以下代码时会报错:model YOLO("yolov8n.pt").to("cuda") # 或 .cuda()2. 解决方案步骤 步骤1:验证CUDA可用性 在Pyth…...
【mysql】Mac 通过 brew 安装 mysql 、启动以及密码设置
Mac 通过 brew 安装 mysql 、启动以及密码设置 使用 brew 安装 mysqlmysql 启动mysql密码设置参考文章: 使用 brew 安装 mysql brew install mysqlmysql 启动 下载完毕,终端告诉我们mysql数据库没有设置密码的,我们可以直接执行 mysql -u r…...
Vue2 nextTick
核心源码位置 Vue 2 的 nextTick 实现主要在 src/core/util/next-tick.js 文件中。 完整源码结构 import { noop } from shared/util import { handleError } from ./error import { isIE, isIOS, isNative } from ./envexport let isUsingMicroTask falseconst callbacks …...
Ubuntu 安装 NVIDIA显卡驱动、CUDA 以及 CuDNN工具
文章目录 一、简介二、查看显卡设备三、安装显卡驱动四、安装CUDA工具箱五、安装CuDNN小结 一、简介 NVIDIA 驱动:操作系统与 NVIDIA 显卡硬件之间的桥梁,负责驱动显卡硬件的运行,显卡的“底层操作系统”,一切的基础。CUDA&#…...
LeetCode算法题(Go语言实现)_50
题目 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类: SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。 int popSmallest() 移除 并返回该无限集中的最小整数。 void addBack(int num) 如果正整数 …...
idea报错java: 非法字符: ‘\ufeff‘解决方案
解决方案步骤以及说明 BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题? 最后重新编译,即可运行!!! BOM是什么? \ufeff 是 Unicode 中的 BOM࿰…...
WPF依赖注入IHostApplicationLifetime关闭程序
WPF依赖注入IHostApplicationLifetime关闭程序 使用Application.Current.Shutdown();退出会报异常 应该使用 app.Dispatcher.InvokeShutdown(); Application.Current.Shutdown();app.Dispatcher.InvokeShutdown();static App app new();[STAThread]public static void Main(…...
如何在 IntelliJ IDEA 中安装通义灵码 - AI编程助手提升开发效率
随着人工智能技术的飞速发展,AI 编程助手已成为提升开发效率和代码质量的强大工具。在众多 AI 编程助手之中,阿里云推出的通义灵码凭借其智能代码补全、代码解释、生成单元测试等丰富功能,脱颖而出,为开发者带来了全新的编程体验。…...
【力扣】两两交换链表中的节点
两两交换链表中的节点 代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *n…...
数据共享交换平台之文件交换
数据共享交换平台的文件交换管理功能提供部门与部门之间的文件交换通道,满足跨部门之间文件交换需求。文件交换需要能够按照交换业务场景对交换通道进行分类管理。文件交换管理需满足如下要求: 1.文件交换统计:支持查看本部门与其他部门之间…...
什么是全球代理?如何选择全球代理服务?
在全球化不断深化的今天,互联网已经成为人类沟通、工作和学习的重要纽带。而全球代理则是这一纽带上的关键技术之一,它赋予了我们探索不同地区网络资源的能力。今天,我们来聊聊什么是全球代理、它能做什么,以及如何选择合适的全球…...
Spring Boot整合Kafka的详细步骤
1. 安装Kafka 下载Kafka:从Kafka官网下载最新版本的Kafka。 解压并启动: 解压Kafka文件后,进入bin目录。 启动ZooKeeper:./zookeeper-server-start.sh ../config/zookeeper.properties。 启动Kafka:./kafka-server-…...
【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——USB WIFI测试 #WIFI蓝牙二合一 #RTL8733BU
1)实验平台:正点原子ATK-DLMP257B开发板 2)浏览产品:https://www.alientek.com/Product_Details/135.html 3)全套实验源码手册视频下载:正点原子资料下载中心 文章目录 第四章 ATK-DLMP257B功能测试——USB…...
Doip功能寻址走UDP协议
目前使用 connect()函数的UDP客户端 ,这里接收数据 解析的地方 查看一下。 如果使用 bind()、sendto()、recvfrom() 组合 那么返回值 和发送要在做调整,,根据业务需要后续在调整 其余的 和原来的 逻辑都是一样的,只是协议变了而已。 if serv…...
硬件电路设计之51单片机(2)
声明:绘制原理图和PCB的软件为嘉立创EDA。根据B站尚硅谷嵌入式之原理图&PCB设计教程学习所作个人用笔记。 目录 一、原理图详解 1、TypeC接口 (1)TypeC接口介绍 (2)TypeC原理图 2、5V转3.3V 3、单片机电源开…...
Deeplizard 深度学习课程(一)—— Pytorch 和 Tensor 简介
前言 该pytorch笔记参考deeplizard官方网站课程,有相应视频和博客,链接如下: deeplizardhttps://deeplizard.com/learn/video/v5cngxo4mIg 1.Pytorch 简介 PyTorch 是一个深度学习框架和一个科学计算包。PyTorch 的科学计算方面主要是 PyTo…...
Delphi HMAC算法
1. 前言 今天做一个三方接口,接口文档描述签名采用MD5,但是实际测试过程中,始终校验不通过,经过和三方沟通,才知道采用的是HMAC-MD5。由于Delphi7没有对HMAC的支持,则采用XE版本来支持。本次使用Delphi XE …...
Ubuntu服务器性能调优指南:从基础工具到系统稳定性提升
一、性能监控工具的三维应用 1.1 监控矩阵构建 通过组合工具搭建立体监控体系: # 实时进程监控 htop --sort-keyPERCENT_CPU# 存储性能采集 iostat -dx 2# 内存分析组合拳 vmstat -SM 1 | awk NR>2 {print "Active:"$5"MB Swpd:"$3"…...
深度解析C++开源OCR引擎:架构、编译优化与工业级部署指南
1. 引言:OCR技术演进与现状分析 光学字符识别(OCR)技术经历了从传统模式识别到深度学习的三代发展: 第一代:基于模板匹配(1970s-1990s) 第二代:特征提取+分类器(1990s-2010s) 第三代:端到端深度学习(2010s-至今) 当前工业界主流方案呈现"双轨制"发展态势…...
关于Newtonsoft.Json
历史 Newtonsoft.Json(也称为 Json.NET)是由 James Newton - King 开发的一个开源的 JSON 处理库,它于 2007 年首次发布。在早期,.NET 平台缺乏一个强大且灵活的 JSON 处理工具,Newtonsoft.Json 应运而生,…...
Spark-Sql编程(三)
一、数据加载与保存 通用方式:使用spark.read.load和df.write.save,通过format指定数据格式(如csv、jdbc、json等),option设置特定参数(jdbc格式下的url、user等),load和save指定路…...
CTF--好像需要管理员
一、原网页: 二、步骤: 1.扫描: 发现:robots.txt 2.打开robots.txt: 3.打开resul.php: 4.代码解析: if ($_GET[x]$password) //检查通过 URL 参数 x 传递的值是否等于变量 $password 的值 详…...
耀圣控制设备有限公司总经理李雨蔓的创业之路
破浪者李雨蔓:从零到行业标杆的铿锵之路 在浙江永嘉这片被誉为“中国泵阀之乡”的热土上,一位86年出生的女性企业家,用十年光阴书写了一段白手起家的传奇。她,是一曲关于勇气、智慧与匠心的赞歌。从技术员到行业标杆的缔造者&…...
Spring Boot JPA 开发之Not an entity血案
项目状况介绍 项目环境 JDK 21Spring Boot 3.4.3Hibernate: 6.6.13.Final项目描述 因为是微服务架构,项目层级如下 project-parent project-com project-A … project-X 其中: project-parent定义依赖库的版本project-com 定义了一些公用的方法和配置,包括持久层的配置。…...
什么是车规级MCU?STM32也能上车规级场景?
一、车规级MCU的定义 车规级MCU(Microcontroller Unit)是专为汽车电子系统设计的微控制器芯片,集成CPU、存储器、外设接口等功能模块,用于实现车辆控制、数据处理和实时响应。其核心特点包括: 高可靠性:需在…...
vue3.2 + element-plus 实现跟随input输入框的弹框,弹框里可以分组或tab形式显示选项
效果 基础用法(分组选项) 高级用法(带Tab栏) <!-- 弹窗跟随通用组件 SmartSelector.vue --> <template><div class"smart-selector-container"><el-popover :visible"visible" :w…...
go 指针接收者和值接收者的区别
go 指针接收者和值接收者的区别 指针接收者和值接收者的区别主要有两点: Go 中函数传参是传值,因此指针接收者传递的是接收者的指针拷贝,值接收者传递的是接收者的拷贝---在方法中指针接收者的变量会被修改,而值接收者的成员变量…...
部署qwen2.5-VL-7B
简单串行执行 from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor from qwen_vl_utils import process_vision_info import torch, time, threadingdef llm(model_path,promptNone,imageNone,videoNone,imagesNone,videosNone,max_new_tokens2048,t…...
Go:测试
go test 工具 go test是 Go 语言包的测试驱动程序 ,包依据特定约定组织 。包目录中以_test.go结尾的文件是go test编译对象,而非go build的编译目标 。 特殊测试函数 在*_test.go文件中有三种特殊函数 : 功能测试函数:以Test为…...
用微信小程序制作一个性行为同意协议系统
用微信小程序制作一个性行为同意协议系统 用微信小程序制作一个性行为同意协议系统,具备查询、修改、增加和演示的Web功能。首先,我需要明确这个系统的核心功能和法律合规性。性同意是一个敏感且法律相关的话题,必须确保系统的设计符合法律法…...
leetcode 122. Best Time to Buy and Sell Stock II
题目描述 这道题可以用贪心思想解决。 本文介绍用动态规划解决。本题分析方法与第121题一样,详见leetcode 121. Best Time to Buy and Sell Stock 只有一点区别。第121题全程只能买入1次,因此如果第i天买入股票,买之前的金额肯定是初始金额…...
FairyGUI图标文字合批失败的原因
1)FairyGUI图标文字合批失败的原因 2)为什么Cubemap的内存占用超高 3)如何找到网格某个切面的中心点 4)为什么SafeZone在倒屏后方向相反 这是第428篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了…...
C/C++ 通用代码模板
✅ C 语言代码模板(main.c) 适用于基础项目、算法竞赛或刷题: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <math.h>// 宏定义区 #define MAX_N 1000 #defi…...
void MainWindow::on_btnOutput_clicked()为什么我在QT里面没有connect,也能触发点击效果
在 Qt 中,即使你没有显式调用 connect 函数,某些信号(如按钮的 clicked() 信号)仍然可以触发槽函数。这是因为 Qt 提供了一种自动连接机制,称为 自动连接(Auto-Connection)。以下是可能的原因和…...
基于YOLO11的车牌识别分析系统
【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】系统数据统计与可视化分析支持 【技术栈】 ①:系统环境:Windows/macOS/Linux ②:开发环境:Python 3.8 ③:技术栈&#x…...
openwebui搭建mcp
1、升级ollama https://github.com/ollama/ollama/blob/main/docs/faq.md curl -fsSL https://ollama.com/install.sh | shOllama 启动后,设置外网访问_ollama 外部访问-CSDN博客 ubuntu安装deepseek-CSDN博客 sudo vim /etc/systemd/system/ollama.serviceEnvi…...
邀请函 | 知从科技邀您共赴2025上海车展
2025上海车展将于4月23日至5月2日在国家会展中心(上海)盛大举行。本届车展以 “科技智驾未来”为主题,共同展示新能源汽车、智能驾驶等领域的最新技术与成果。 知从科技将携行业领先的软件产品与技术服务亮相于本次展览会,全方位…...
ESP32开发工具链选择指南:ESP-IDF vs PlatformIO vs Arduino
1. 引言 ESP32作为乐鑫(Espressif)推出的一款高性能Wi-Fi & Bluetooth双模芯片,凭借其强大的性能和丰富的生态,在物联网(IoT)领域广受欢迎。然而,开发ESP32时面临的一个关键问题是…...
【JAVA】bat文件启动jar场景获取bat文件路径的方法
一、推荐方案:参数传递法 步骤1:修改BAT脚本 echo off java -jar -Dbat.file"%~f0" your-app.jar %*关键参数说明: %~f0:获取BAT文件的完整路径%*:传递所有原始参数 步骤2:Java代码获取参数 …...
OpenLayers:extent与view extent 介绍
一、范围的概念 1.什么是范围? 在Openlayers中范围(Extent)是用于表示地理空间区域的一种概念。它通常由一个数字数组构成,数组中的内容为:[最小x坐标,最小y坐标,最大x坐标,最大y坐…...
Python开发一个简单的软件系统
用Python语言实现,具备录入学生成绩、查询成绩和显示所有成绩等基本功能。以下是代码: # 用于存储学生成绩的字典,键是学生姓名,值是成绩 student_scores {} # 录入学生成绩的函数 def input_scores(): name input("…...