Vercel 治界面幻觉的办法:让模型挑,不让模型画
json-render 周四发了 v0.21.0,随后在 GitHub trending 上以每天 332 星的速度往上走,总数一万七千二。Vercel Labs 管它叫生成式 UI 框架,一句话说清楚就是:模型永远不产出界面代码,它产出的 JSON 只能引用你放进目录里的组件。仓库 https://github.com/vercel-labs/json-render ,文档 https://json-render.dev 。
落到实处,就是开箱三十六个 shadcn 组件,同一份 JSON 规格能渲染到 React、Vue、Svelte、Solid、React Native 和 Next,适配器还伸到了 TanStack Start、Remotion 视频和 React Email 这些你想不到的地方。状态管理、动态 props、条件显隐、动作处理全在规格里,不在生成的代码里。它支持流式,界面随着响应一点点长出来,而不是等模型想完了整块蹦出来。
值得关注的不是组件数量。生成式 UI 演示了两年,每次都撞同一堵墙:让模型写 JSX,它能发明一个不存在的组件,能调用上个迭代刚删掉的 prop,还能写出渲染完全正常、一点击就干错事的东西。把输出限制在一个目录里并不会让模型变聪明,只会让故障面变小。最坏情况变成从你自己印的那副牌里抽错一张,这种 bug 在 diff 里看得见。
这是一周之内第三个从完全不同方向押同一个架构赌注的产品。Cua 的 CUA-S1 是给已有界面元素打分,而不是生成坐标。TypeSafe 的 Jev 是返回校准过的概率,而不是散文。现在 Vercel 返回的是组件 id,不是标记语言。这三家谁也没商量。
这个模式有名字,叫限制输出空间。自由生成是模型做的所有事情里最贵、最难验证的一件,真正发货的产品正在悄悄绕开它。
← 返回所有文章
落到实处,就是开箱三十六个 shadcn 组件,同一份 JSON 规格能渲染到 React、Vue、Svelte、Solid、React Native 和 Next,适配器还伸到了 TanStack Start、Remotion 视频和 React Email 这些你想不到的地方。状态管理、动态 props、条件显隐、动作处理全在规格里,不在生成的代码里。它支持流式,界面随着响应一点点长出来,而不是等模型想完了整块蹦出来。
值得关注的不是组件数量。生成式 UI 演示了两年,每次都撞同一堵墙:让模型写 JSX,它能发明一个不存在的组件,能调用上个迭代刚删掉的 prop,还能写出渲染完全正常、一点击就干错事的东西。把输出限制在一个目录里并不会让模型变聪明,只会让故障面变小。最坏情况变成从你自己印的那副牌里抽错一张,这种 bug 在 diff 里看得见。
这是一周之内第三个从完全不同方向押同一个架构赌注的产品。Cua 的 CUA-S1 是给已有界面元素打分,而不是生成坐标。TypeSafe 的 Jev 是返回校准过的概率,而不是散文。现在 Vercel 返回的是组件 id,不是标记语言。这三家谁也没商量。
这个模式有名字,叫限制输出空间。自由生成是模型做的所有事情里最贵、最难验证的一件,真正发货的产品正在悄悄绕开它。
评论