OpenTiny训练营实操体验|轻松解锁TinyVue智能组件开发Web应用

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构 在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域的创新。TinyVue 继承了 HAE、AUI,OpenTiny 是一套企业级组件库解决方案,适配 PC 端 / 移动端等多端,涵盖 Vue2 / Vue3 / Angular 多技术栈,拥有主题配置系统 / 中后台模板 / CLI 命令行等效率提升工具,可帮助开发者高效开发 Web 应用。 阅读详情

1.背景描述

TinyVue 是一套企业级的 Vue 框架下的组件库,它具有跨端、跨框架的特性,同时支持 Vue2 和 Vue3,支持 PC 端和移动端浏览器。

本次实验是通过改造一个使用 TinyVue 组件的常规 Web 应用,秒变为一个能够对接大语言模型的智能应用。这个应用可以让用户通过自然语言与网页进行对话,直接“精准”操作网页上的组件。

2.实验简介

首先,我们提供了一个用 Vue3 搭建的商品列表管理的单页面应用,它使用 TinyVue 组件库中的 Select、Grid 等组件。该商品管理应用默认会显示商品管理的表格,并且已经实现了条件查询商品,添加、删除商品和保存商品等功能。但此应用目前不支持 AI 大模型的操作,比如打开智能助手,发送的信息不会正确执行。

对接 TinyVue Next 智能框架的相关包,给 Select、Grid 等组件添加业务描述后,让智能助手等功能可以遥控操作网页。

3.基本要求

  • 熟练使用 VSCode 或其他代码编辑器
  • 具有 Chrome、Edge 等浏览器的调试能力
  • 熟悉 Vue 开发,以及具有 TinyVue 或其它组件库的开发经验

4.代码实战

4.1 启动电商平台 demo 页面,熟悉功能

解压桌面上的工程压缩文件 agent-app-demo (可能位置与名称有调整,有疑问可咨询)

解压完成后用 VSCode 软件打开指定的工程目录,打开终端,执行以下命令安装依赖:

npm install

安装完成后执行以下命令,启动电商平台 demo 页面。

npm run dev

启动成功后,查看商品列表并简单的进行增删改查的操作。

但此时测试 AI 智能助手,则是无响应的。下一步就来对应用进行简单改造。

4.2 引用 vue-next 等智能包进行应用改造

将上面的普通应用,秒变为智能应用,需要以下 4 步, 需要按顺序完成。

4.2.1 引入智能包

在终端中执行以下命令,安装相关智能包。

npm install @opentiny/tiny-vue-mcp @opentiny/next-vue -S
4.2.2 全局注册 TinyVue MCP 的工具

在main.ts 文件中,引入@opentiny/tiny-vue-mcp,注册 TinyVue MCP 的工具。

import { createMcpTools, getTinyVueMcpConfig } from "@opentiny/tiny-vue-mcp";

import { registerMcpConfig } from "@opentiny/vue-common";

// 1、 将 TinyVue MCP的工具注入到 vue-common 层中,之后应用可以TinyVue MCP的功能

registerMcpConfig(getTinyVueMcpConfig(), createMcpTools);
4.2.3 创建 MCP Client 的远端会话

在App.vue文件中,引入@opentiny/next-vue, 创建 MCP Client 的远端会话。

注意:代码中连接需要自行提供
目前 agent 代理服务器代码未开源,如想进一步了解可以在 github 中提 issue 单
提交 issue 连接:https://github.com/opentiny/tiny-vue/issues

import { useNextClient } from"@opentiny/next-vue";
import { globalConversation } from"./composable/utils";

// 2、创建 sessionId , 一个 ref<string> 的值, 并保存起来,智能助手会访问该变量进行通讯

const { sessionId } = useNextClient({
clientInfo: { name: "my-project", version: "1.0.0" },
// url为工具调用方,token为对应的凭证
proxyOptions: { url: "https://xxx/sse", token: "" },
});

globalConversation.sessionId = sessionId;
4.2.4 在应用页面,创建 MCP Server, 并给组件声明“业务属性”

在views/productManager/index.vue中,创建 MCP Server

import { useNextServer } from "@opentiny/next-vue";
// 3、创建web应用所需的 McpServer 变量, 用于注册页面中的组件到系统中。
const { server } = useNextServer({
  serverInfo: { name: "company-list", version: "1.0.0" },
});
// 4、 模板中,在AI智能助手要操作的组件上,去绑定 server 和 组件的 “业务描述”。  这样 AI就能关联mcp,并识别每个组件的业务定义了。

在views/productManager/index.vue文件中, 可以改造 TinyVue 的组件,它们支持属性 tiny_mcp_config, 传入 server 和组件的业务描述,例如:

<tiny-base-select
  v-model="statusFilter"
  :options="statusOptions"
  placeholder="商品状态"
  clearable
  :tiny_mcp_config="{
    server,
    business: {
      id: 'category-status',
      description: '商品状态的下拉框',
    },
  }"
>
</tiny-base-select>

其中 business.id 是组件在页面上的唯一 id。 business.description 是描述组件的业务含义, 这样与大模型对话时,大模型可以“精准”的知道页面上有什么可以操纵。

接下来,给商品状态的 Select, 商品列表的表格,按钮等等,都可以添加上 :tiny_mcp_config 属性了。

给分类下拉框添加 tiny_mcp_config

<tiny-base-select
  v-model="categoryFilter"
  :options="categoryOptions"
  placeholder="商品分类"
  clearable
  :tiny_mcp_config="{
    server,
    business: {
      id: 'category-select',
      description: '商品分类的下拉框',
    },
  }"
>
</tiny-base-select>

给商品列表表格添加

<tiny-grid
  auto-resize
  ref="gridRef"
  :data="displayProducts"
  :height="520"
  :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true }"
  :tiny_mcp_config="{
    server,
    business: {
      id: 'category-list',
      description: '商品列表',
    },
  }"
>
  <!--省略部分代码-->
</tiny-grid>

4.3 通过页面的 AI 智能助手进行网页的智能操作

经过 4.2 节, 我们已经将普通的应用秒变为智能应用。此时就可以通过“AI 智能体”工具跟网页对话了

对下拉框,你可以尝试提问: 在商品分类下拉框中,弹出下拉面板选中手机分类。

对于表格, 你可以问:帮我在商品列表中删除最贵的且分类为手机的商品。

这里就可以发挥想像力,对网页进行各种提问,看看大模型能否正确判断行为,并调用正确的 MCP 方法。

如果“AI 智能体”工具不能执行成功,可以打开浏览器控制台,参考以下内容进行排查:

控制台有无报错

打开“网络” 面板,查看 chat-messages 接口是否异常
在这里插入图片描述

查看控制台打印的: SSE data: xxxx 信息。可以跟踪大模型的执行过程,查看调用 MCP 工具的中间过程等。
在这里插入图片描述

4.4 页面添加可识别二维码,通过手机远程操作

通过文字去操作页面有点麻烦,如果能通过语音就是远程遥控网页是不是就好了。

在“App.vue”的顶部增加 的二维码组件:

<div class="qr-code">
  <span>
    页面识别二维码, 请用手机扫码后,在浏览器中打开。
    微信的浏览器可能没有语音功能,需要使用手机内置的浏览器访问。
  </span>
  <tiny-qr-code :value="sessionUrl" :size="100" color="#1677ff"></tiny-qr-code>
   
</div>

二维码的 value= sessionUrl ,它是通过 sessionId 计算出来的一个 url。在App.vue添加以下 js 代码:

注意:代码中连接需要自行实现并部署远程操控服务
如对此有疑问或者有兴趣交流,欢迎提交 issue: https://github.com/opentiny/tiny-vue/issues

import CryptoJSfrom"crypto-js";
import { computed } from"vue";

const sessionUrl = computed(() => {
// 未创建session时

if (!sessionId.value) return"no session"; // 创建好 sessionId后,加密后拼接成 sessionUrl ,  这样手机扫码后会连接这个Url页面

const encryptedId = CryptoJS.AES.encrypt(
    sessionId.value,
    "secret-session-id"
  ).toString();

return"https://xxx?id=" + encodeURIComponent(encryptedId);
});

这样,我们的应用顶部会有一个二维码,用手机扫描后,使用手机上的浏览器打开,就可以选择“语音控制器”,跟它对话了,通过手机远程指挥网页。

因为上述流程中 proxyOptions.url 与 语音远程操控页面需要自行部署服务,因此提供了临时的线上体验连接:https://opentiny.design/tiny-vue/zh-CN/os-theme/comprehensive

5.实验总结

通过本次实验,我们不仅掌握了将普通 Web 应用转化为智能 Web 应用的关键技能,还学会了利用智能助手或远程手机对网页进行精准操控。

该实验引导用户深入思考网页未来可能呈现的形态与无限可能,让每一位用户都能深切体验到人工智能为 Web 开发领域所带来的震撼,感受技术进步如何重塑我们的网页世界。

关于 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 标签,一起参与开源贡献~

《基于FPGA的数字信号处理》专栏的导航与说明 阅读详情

相关推荐

思岚A1 上手教程

前言 寒假在家闲着也是闲着,索性就向是实验室借了一个思岚 A1激光雷达,来进一步完成自己的实验室实习项目。经过一个月在Linux上和ROS上的摸爬滚打,我已经对机器人开发和SLAM有了初步了解,现在就写个上手教程吧(以防自己以后忘了)。 Basic Support 硬件 一台电脑 思岚 A1激光雷达 软件 安装Virtual Box虚拟机 在虚拟机安装Ubuntu 16操作系统 在Ubuntu 16搭建ROS kinetic 简要步骤 1.现在w..

ajxdhe的博客 6385

直播回顾|带你体验很实用的OpenTiny

本期直播主题是《解决开发者“兼容”难题,OpenTiny技术探索与应用解读》,华为云开源DTSE技术布道师曾令卡在本期直播中与开发者一起详细交流了OpenTiny组件库解决方案的核心优势和设计理念。并通过具体的实操给大家演示OpenTiny如何通过一行命令搭建中后台管理系统,同时也给大家演示了定制化的主题配置系统。

OpenTiny的博客 972

手把手教你用RK3568开发板实现FPGA与Linux的DMA通信(含完整代码解析)

本文详细介绍了如何在RK3568开发板上实现FPGA与Linux系统的DMA通信,包括硬件配置、软件环境搭建、DMA通信原理、驱动开发及性能优化。通过完整的代码解析和实战案例,帮助开发者快速掌握异构系统间的高效数据传输技术,适用于物联网和边缘计算等场景。

weixin_29174385的博客 201

OpenTiny 前端组件库正式开源啦!面向未来,为开发者而生

华为开发者大会2023(HDC.Cloud 2023)于7月7日-9日在东莞拉开帷幕,本届大会以“每一个开发者都了不起”为主题。OpenTiny作为前端企业级组件库解决方案,在本次大会上正式进行发布。

OpenTiny的博客 5415

香橙派5b 移植 imx415

修改设备树,以为例,关闭ov13855,添加imx4151;0;1;0;1;0;1;0;1;0;1;0;1;0;以此类推,修改三个dtsi。

ChenYX的博客 4540

嵌套交叉验证的‘双循环’哲学:为什么你的模型评估总是不准?

本文深入探讨了嵌套交叉验证(Nested Cross-Validation)在机器学习模型评估中的关键作用,揭示了传统交叉验证方法存在的偏差问题。通过双重循环设计,嵌套交叉验证有效隔离数据,提供无偏评估,显著提升模型在真实场景中的性能预测准确性。文章还提供了工程实践中的优化策略和量化分析,帮助开发者在计算成本与评估精度之间找到平衡。

b3n4m5q6w7的博客 225

什么?你还不会 OpenTiny 跨框架组件库适配微前端?

本文通过实战操作梳理,带你手把手实现 TinyVue 跨框架组件库适配微前端~欢迎关注,点赞,评论~

OpenTiny的博客 1384

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5096

什么是OpenTiny?

在具体实践中,开发者可以基于 OpenTiny 快速构建企业级的前端项目,例如模仿华为云的官方界面,使用 TinyEngine 低代码引擎进行页面布局、表单组件、按钮组件等开发,并通过主题配置系统快速调整页面样式。:一个丰富的组件库,支持 Vue2、Vue3,适配 PC 和移动端,拥有 100 多个组件和 6 套主题,支持国际化,适用于多种开发环境和项目需求。:一个灵活的低代码开发平台,支持在线实时构建和二次开发,允许开发者快速定制低代码平台,适用于资源编排、服务端渲染、模型驱动等多种场景。

软件行业技术文化交流。 1528

基于Pixi.js的Live2D看板娘离线加载实战指南

本文详细介绍了基于Pixi.js实现Live2D看板娘离线加载的完整方案,涵盖环境搭建、模型加载、交互功能实现及常见问题解决。通过Pixi.js的硬件加速优势,开发者可在Web和Electron项目中无缝集成离线运行的Live2D模型,提升用户体验并避免网络依赖问题。

weixin_29001423的博客 343

【ComfyUI专栏】安装Triton组件

Triton是一款支持大模型推理的深度学习加速组件,最初仅支持Linux平台,现已通过开源社区适配Windows系统。针对SageAttention的安装,建议使用3.2.0Post10版本(该版本提供封装好的安装包,更高版本仅有源码)。用户可通过GitHub获取安装资源,或直接使用pip命令"pip install triton-windows"进行安装。安装时需注意:1)在虚拟环境中操作;2)使用管理员权限。相关资源链接已在文中提供。

技术与管理的平衡木- 1864

HDC 2025|仰望星空,低头看路!OpenTiny再启航,持续打造前端智能化解决方案

随着最后一场活动落下帷幕,为期3天的 HDC 华为开发者大会在东莞松山湖成功收官。这场旗舰级盛会汇聚了全球开发者、技术专家和行业领袖,为推动科技创新、构建智慧未来的新商业蓝图注入了全新动力,也为参会者呈现出一场精彩绝伦的知识与交流盛宴。在大会主论坛上,众多行业大咖发表主题演讲,分享了他们在各自领域的深入见解与实践经验。

OpenTiny的博客 802

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2702

HDC 2025 | 仰望星空,低头看路!OpenTiny 再启航,持续打造前端智能化解决方案

随着最后一场活动落下帷幕,为期 3 天的 HDC 华为开发者大会在东莞松山湖成功收官。这场旗舰级盛会汇聚了全球开发者、技术专家和行业领袖,为推动科技创新、构建智慧未来的新商业蓝图注入了全新动力,也为参会者呈现出一场精彩绝伦的知识与交流盛宴。在大会主论坛上,众多行业大咖发表主题演讲,分享了他们在各自领域的深入见解与实践经验。

kjasghfagsfjk的博客 815

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

搭建 OpenTiny 组件库的 Playground 指导手册

本文通过实操教程,教你如何从0到1搭建OpenTiny项目中TinyVue组件库的playground,

OpenTiny的博客 901

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

速看!盘点这一年 OpenTiny 都在做什么?

叮,这里有一份 OpenTiny 的年终总结等你查收,本文主要介绍了OpenTiny 2023年的那些事~

OpenTiny的博客 1344

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

听说过OpenTiny开源项目吗?什么场景都能用

是华为云出品的开源项目,号称是跨端跨框架的一站式解决方案,让我来一探究竟!OpenTiny目前开放了开发相关的,以及衍生生态产品。目前主流的前端框架比如ElementUI、antDesign都对Vue版本进行了区分,比如ElementUI适用于Vue2,ElementPlus适用于Vue3;ant-design-vue 1.x适用于Vue2,ant-design-vue 2.x以上适用于Vue3;

weixin_38593969的博客 853

OpenTiny——提升前端开发效率的利器

OpenTiny 孵化自华为云和流程IT,经过九年的持续打磨,服务于华为内外部上千个项目,千锤百炼,是一个稳定可靠的组件库。另一方面,技术是需要不断探索的,我们希望携手社区开发者一起探索新技术,不断扩展OpenTiny的边界,让更多开发者收益,也让我们的产品精益求精。当然目前业界组件库有很多,最广为人知的阿里的Ant Design,饿了么的ElementUI,谷歌的Material UI等等,各家有各自的审美和设计~相信你也可能内心有个大大的问号,这个新组件库真的有说的这么好用吗?

LLI025的博客 883

OpenTiny Vue 组件库实现主题配置和UX交互规范自定义

本文向我们介绍了如何在OpenTiny Vue组件库中进行UX规范的定制修改。学会使用该方法后,开发者可以更精准地控制或修改用户体验规范的范围,提高开发效率,同时降低维护成本和代码复杂度。

OpenTiny的博客 666

Web前端组件库OpenTiny项目如何使用?

​ 目前华为云出品的开源项目OpenTiny其中包含两个组件库项目一个是TinyVue还有一个是TinyNG当然还包含拥有主题配置系统/中后台模板/TinyCli命令行等效率提升工具

ihhhh1的博客 590

最近风很大的 OpenTiny 有什么功能?组件库?那是什么东西?框架又是什么?

先说结论,主要包括两个前端组件库,包括 Angular 框架和 Vue 框架两种。或许有一些不了解前端的朋友就会问了,,这两个?笔者理解,当我们在手机或电脑屏幕上看到丰富美丽的画面时,或者是我们需要在网页中提交某个表格或者信息产生交互动作时,这些画面的背后就是多个组件结合而成的效果。比如头像组件使我们可以设置自己的专属形象,比如新手引导组件又会在最初带领我们探索某个事物,等等诸如此类的场景。那么框架又是什么呢?引用维基百科中的解释,软件框架是指一种抽象形式,它提供了一个。

LLI025的博客 591

华为开源项目OpenTiny的TinyVue组件库适用于哪些地方?

组件库目前是有80+的组件,1500+组件API接口,同时其中Table、Tree、Select等高频组件均内置虚拟滚动,在10万大数据场景下保持丝滑体验。所以其实相对于其他组件库的话,性能还是非常高的。第三个就是可以支持大屏系统,提供多种页面模式,轻松点击即可生成页面结构,同时不断添加新的图表组件,包含A-Charts等,只需要简单拖拽,少量设置即可完成页面搭建。第四个就是可以支持工业制造系统,可支持多种页面布局,通过可视化图表集成控制工作台各个场景业务,让使用者直观了解业务数据情况,进行智能分析。

ihhhh1的博客 1517

从0到1实现 OpenTiny 组件库跨框架技术

本文主要讲述OpenTiny组件库解决方案的核心优势和设计理念。

华为云官方博客 981

OpenTiny 推出开源低代码引擎 TinyEngine 在 KubeCon China 2023 蓄力云原生生态

TinyEngine 低代码引擎作为开发低代码平台的核心基座,为低码平台开发人员提供重要驱动力,使能开发者定制低码平台。

OpenTiny的博客 649

OpenTiny开源组件库最新消息

OpenTiny也将在这次大会上正式发布,之前有了解过这个项目,是今年新开源的一个组件库产品,其中包含TinyVue和TinyNG两个组件库,同时涵盖Vue和Angluar两套框架,一套代码同时支持vue2/vue3两个版本。提供中后台模板,主题配置系统,CLI脚手架工具,帮助开发者高效开发web应用。据悉,本次大会将围绕AI、大数据、数据库、PaaS、aPaaS、媒体服务、云原生、安全、物联网、区块链、开源等各个领域的技术热点、最佳实践以及发展趋势等进行深入解读和分享。

ihhhh1的博客 419

开源产品 OpenTiny 有什么优势?

OpenTiny 孵化自华为云和流程 IT,经过九年的持续打磨,服务于华为内外部上千个项目,千锤百炼,是一个稳定可靠的组件库。另一方面,技术是需要不断探索的,我们希望携手社区开发者一起探索新技术,不断扩展 OpenTiny 的边界,让更多开发者收益,也让我们的产品精益求精。当然目前业界组件库有很多,最广为人知的阿里的 Ant Design,饿了么的 ElementUI,谷歌的 Material UI 等等,各家有各自的审美和设计~相信你也可能内心有个大大的问号,这个新组件库真的有说的这么好用吗?

happyleyouyou的专栏 743
上一篇: TinyVue 智能组件库:基于 MCP 协议,实现 AI 代替人操作 Web 组件
下一篇: 盘点字体性能优化方案
OpenTiny社区
博客等级 码龄4年 1540粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值