🎨 看完 GenUI SDK 源码我悟了!

当 AI 回复不再只是一坨 Markdown 文本,而是直接渲染出可交互的表单、图表、卡片------这才是 AI 交互的下一站。GenUI SDK 说:我来了。

一、这项目到底在做什么?

GenUI SDK 是 OpenTiny 团队围绕 Generative UI(生成式 UI) 构建的全栈开发工具包。

先别被名字吓到。核心概念很简单:

维度 传统对话式 AI Generative UI
AI 输出 纯文本/Markdown 可交互组件(表单、图表、卡片)
用户能做什么 只能继续对话 直接在 AI 生成的 UI 上操作
信息密度 低(文字描述订单) 高(直接给你一个订单卡片)

举个例子:用户问"帮我查一下订单状态",传统 AI 用文字描述订单信息;Generative UI 直接渲染一个订单卡片------状态标签、操作按钮,你可以直接点"取消订单"。

这就是 GenUI SDK 要做的事:让 AI 的输出从自然语言升级到组件描述语言。

当前版本 @opentiny/genui-sdk-vue@1.2.1,MIT 许可证,113 Stars。语言构成:TypeScript 66.2% + Vue 31.2%。

二、核心机制:Schema 驱动渲染

GenUI SDK 的"魔法"本质是一条管线:

复制代码
AI 输出 → UI Schema → 渲染器解析 → Vue/Angular 组件 → 用户交互 → 新消息 → AI

Schema 不是硬编码的 HTML 或 Vue 模板,而是描述式的组件定义

  • 声明组件类型(FormCardChart
  • 声明组件属性(表单字段、卡片内容、图表数据)
  • 声明组件交互(按钮动作、表单提交回调)

关键洞察:AI 的输出格式从"自然语言"变成了"组件描述语言",前端渲染器把描述翻译成真正的 UI。这意味着------AI 不需要知道 Vue 怎么写,它只需要知道"我要一个表格,三列,数据是这些"。

三、架构拆解:前后端一体化三包架构

bash 复制代码
genui-sdk/
├── packages/
│   ├── server/              # 后端服务包
│   ├── frameworks/          # 前端框架包
│   │   ├── vue/             # Vue 渲染器
│   │   └── angular/         # Angular 渲染器
│   ├── core/                # 核心共享逻辑
│   ├── materials/           # 物料/组件描述
│   ├── chat-completions/    # 聊天补全
│   ├── benchmarks/          # 性能基准测试
│   └── ...
├── projects/                # 示例项目
├── sites/                   # Playground 站点
├── docs/                    # 文档
└── pnpm-workspace.yaml
包名 干什么 核心能力
@opentiny/genui-sdk-server 后端大脑 LLM 对接、消息编排、工具调用、访问控制
@opentiny/genui-sdk-vue Vue 前端渲染器 Schema 解析、组件动态渲染、主题定制
@opentiny/genui-sdk-angular Angular 前端渲染器 Schema 解析、Angular 组件动态渲染

前后端一体化------不是只做前端画个壳,Server 包是 GenUI 的"大脑",负责把纯文本响应编排成带 UI Schema 的结构化响应。

四、Server 包:不只是透传 LLM 响应

Server 包的核心价值在于对响应进行编排和增强

  • LLM 对接:遵循 OpenAI API 规范,OpenAI/DeepSeek/Anthropic 等主流 LLM 都能接
  • 消息编排:把用户消息、AI 响应、工具调用结果编排成完整对话流
  • MCP 工具扩展:通过 MCP 连接外部/企业系统,扩展 AI 的"工具箱"
  • 访问控制:不同用户能用不同工具,企业场景刚需
  • 自定义动作:配置自定义命令(打开页面、获取数据、生成表单)

一句话:Server 不是简单透传 API 响应,它要把"AI 说的话"翻译成"前端能画的东西"。

五、Vue 渲染器:Schema 到组件的翻译官

Vue 渲染器的工作流:

  1. 接收 AI 返回的 UI Schema
  2. 解析为组件描述(什么组件、什么属性、什么交互)
  3. 用 Vue 的 <component :is="xxx"> 动态渲染
  4. 用户交互 → 封装成消息 → 回传给 AI

定制化能力很强:

  • 自定义组件库:注册你的业务组件,让 AI 也能生成------"AI 不只懂标准组件,还懂你的业务组件"
  • 自定义交互逻辑:配置多轮对话流程和自定义命令
  • 主题定制:Token 化主题系统,暗黑模式和品牌定制都支持

六、Materials(物料)系统:AI 的 UI 词汇量

bash 复制代码
packages/materials/

Materials 包是 GenUI 的"字典"------定义 AI 可以使用的组件"词汇":

  • 每个物料描述一个组件的"规格"(名称、属性、默认值、交互定义)
  • AI 只能生成 Materials 中注册过的组件类型------不会出现前端无法渲染的组件
  • 开发者可以添加新物料扩展 AI 的"UI 词汇量"

扩展流程:

  1. Materials 中注册组件 Schema 定义
  2. Vue/Angular 渲染器中注册组件实现
  3. Server 配置声明该组件可用于 AI 生成
  4. AI 即可在响应中使用该组件

AI 的生成能力始终与前端渲染能力对齐------不会出现"AI 画了个前端画不出来"的情况。

七、MCP 工具集成:AI 不只展示,还能操作

GenUI SDK 支持 MCP(Model Context Protocol)扩展:

  • AI 在对话中可以"调用工具"------查数据库、调 API、读文件
  • 工具调用结果可以转化为 Generative UI 组件(查询结果渲染为表格)
  • MCP 让 GenUI 从"展示层"变成"业务操作层"

这意味着用户跟 AI 说"帮我查本月销售数据",AI 不只是文字描述,而是直接给你一个图表组件,你可以切换维度、筛选条件------真正可交互的 AI

八、Angular 渲染器:跨框架不是说说而已

Angular 渲染器跟 Vue 渲染器功能对称,用 Angular Dynamic Component 机制渲染 Schema 指定的组件。

双框架渲染器的设计哲学 :Schema 是通用的,渲染器是可替换的。你选 Vue 就用 Vue 渲染器,选 Angular 就用 Angular 渲染器------框架中立,不是 Vue 独占

九、Playground:自证式体验

GenUI 提供了在线 Playground:opentiny.github.io/genui-sdk/p...

最妙的是------Playground 本身就是用 GenUI SDK 构建的。你在 Playground 中与 AI 对话,AI 生成的 UI 就是 GenUI 的实际效果。这叫"自己证明自己",比任何文档截图都管用。

十、在 OpenTiny 生态中的位置

搭档 关系
TinyRobot GenUI Vue 渲染器可能复用 TinyRobot 对话组件做基础 UI 层
NEXT SDK NEXT SDK 的 WebMCP 能力可为 GenUI 工具调用提供浏览器端通道
TinyVue GenUI 组件物料可以包含 TinyVue 组件------AI 生成 TinyVue 标准组件
TinyEngine Schema 渲染理念与低代码渲染有相似性

GenUI SDK 在生态中处于AI 应用层------利用底层组件(TinyVue/TinyRobot)和协议层(NEXT SDK/WebMCP),构建面向终端用户的 Generative UI 应用。

十一、总结:AI 交互的下一站

🌟 核心创新

  1. Generative UI 范式 ------ 从"AI 说"到"AI 画",文本对话进化为可交互 UI
  2. 前后端一体化 ------ Server + Vue/Angular 渲染器完整覆盖,不是只做前端壳
  3. Schema 驱动 ------ 描述式 Schema 连接 AI 输出与前端渲染,框架中立
  4. Materials 可扩展 ------ AI 的 UI 词汇量通过物料注册可控扩展

👍 优势

  • OpenAI API 规范兼容,LLM 接入门槛低
  • Vue + Angular 双框架支持,不是 Vue 独享
  • MCP 工具集成,AI 不只展示还能操作
  • 自证式 Playground,效果直观

🤔 挑战

  • 目前Stars数不高,项目还在早期推广------需要更多场景验证
  • Generative UI 需要AI 模型配合输出 Schema,对 LLM 提示工程有要求
  • 组件物料丰富度决定了 AI 生成 UI 的能力上限------物料越多越强

🎯 适用场景

  • AI 驱动的业务操作界面(AI 客服直接生成订单操作面板)
  • 智能数据可视化(AI 动态生成图表)
  • 对话式表单填写(AI 根据上下文生成定制表单)
  • 企业 AI 助手的交互增强

GenUI SDK 代表了 AI 前端交互的下一代范式------从纯文本对话进化到可交互的生成式 UI。虽然项目尚处早期,但架构设计展现了清晰的愿景和扎实的工程基础。

📚 项目资源

资源 地址
🏠 GitHub 源码 github.com/opentiny/ge...
📖 官方文档 docs.opentiny.design/genui-sdk/g...
🎮 Playground opentiny.github.io/genui-sdk/p...
📦 Server 文档 docs.opentiny.design/genui-sdk/g...
🔗 官网首页 opentiny.design/genui-sdk
📦 npm Vue 包 www.npmjs.com/package/@op...

觉得有意思?点赞👍收藏⭐让更多人看到!Generative UI 这个方向绝对是 AI 交互的下一波浪潮,先了解先占坑~

相关推荐
鱼樱前端7 分钟前
别再自己拼凑了!这款 Vue 3.5+ 严肃产品级组件库,把 AI 对话、工作流和复杂数据全包了!
javascript·vue.js·github
Listen·Rain42 分钟前
Vue3:setup详解
前端·javascript·vue.js
Patrick_Wilson2 小时前
修好 bug 只是开始:一次由监控需求反向重构日志结构的复盘
前端·监控·数据可视化
kyriewen2 小时前
面试官让我优化一个卡死的表格,我打开 Claude 五秒重写,他放下咖啡问我要不要来当组长
前端·javascript·面试
阿里嘎多学长2 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
小粉粉hhh2 小时前
React(二)——dom、组件间通信、useEffect
前端·javascript·react.js
Csvn3 小时前
🤖 AI 生成前端代码的 5 个典型翻车现场及修复指南
前端
IpdataCloud3 小时前
跨区服玩家延迟高怎么办?用IP离线库自动分配到最近服务器
数据库·tcp/ip·github·php·ip
IT_陈寒4 小时前
SpringBoot自动装配坑了我一天,原来问题出在这
前端·人工智能·后端
索西引擎4 小时前
【React】key 属性:协调算法中的元素标识机制与最佳实践
前端·javascript·react.js