一句话定义:生成式 UI(Generative UI)指模型面对用户请求时,不返回一段文字,也不返回一张静态图片,而是当场产出一份可交互的界面——按钮、表单、图表、卡片,用户可以直接点、填、拖。
它到底"生成"了什么
先打个比方。传统软件像一本印好的纸质表单:设计师事先想好所有字段、所有分支,印出来,你只能在这些格子里填。生成式 UI 更像一个会现画的店员——你说"我要退件",他当场画一张只包含退货相关字段的单子,把无关的地址、发票、备注都省掉;你说"帮我对比这三个月开销",他直接画出一张带筛选器的图表。
关键在于:界面结构不是开发时定死的,而是运行时按你此刻的意图拼出来的。同样一个系统,两个人问同一句话,可能得到两种不同的界面。
这里有个常被误解的点:现实中,生成式 UI 很少让模型自由吐 HTML 和 CSS——那样样式会崩、安全也没法管。更常见的做法是,模型输出一份结构化的界面描述(哪些组件、什么顺序、填什么数据),前端再用受控的组件库把它渲染成真正的界面。所以模型决定"放什么、怎么排",像素级的样子仍由设计系统说了算。
和相邻概念的区别
| 概念 | 界面结构何时确定 | 输出物 | 面向谁 |
|---|---|---|---|
| 传统固定 UI | 开发时 | 屏幕像素 | 终端用户 |
| 对话式 UI | 开发时 | 自然语言 | 终端用户 |
| 模型写前端代码 | 开发时 | 源代码 | 开发者 |
| 生成式 UI | 运行时 | 界面描述 | 终端用户 |
注意最后两行的差别:让模型写 React 代码,产出的是给开发者审阅、构建、部署的源代码;生成式 UI 是用户当下就能用的界面,中间没有人工环节。它和"工具调用"也不是一回事——工具调用决定模型去调哪个接口,生成式 UI 决定用什么界面承接调用的结果。
对从业者意味着什么
前端的角色会变:不再是穷举所有页面,而是提供一份"模型可用的组件白名单",外加设计约束、权限校验和兜底渲染。要提前想清楚几件事——生成的界面点不动怎么办、两次生成结果不一致怎么办、无障碍和埋点怎么覆盖。
对普通人来说,软件会越来越像"现做"的:不用为了报销翻五层菜单,说一句话就长出刚好够用的那张表单。代价是它不稳定——需要反复做同一件事时,固定模板反而更省心。
具体到各家平台支持哪些组件、有哪些限制,以官方页面为准。
