AI 生成 UI 的 Token 为什么越用越多:只发送画布差异
AI 生成 UI 的隐形开销常在重复上下文:颜色、间距、组件定义和整棵画布每次都重发。让版本号描述背景、让差异描述改动,延迟和账单才有清楚的来源。
先量三件事
记录请求的输入长度、首字节时间和最终结果是否被采用。不要把原始提示词或用户输入写进日志;保留长度、版本号和哈希已经足够定位问题。
type GenerateMetric = { tokenEstimate: number; latencyMs: number; cacheHit: boolean; schemaVersion: string; };如果输入远大于输出,通常说明设计 Token、组件说明或旧的画布状态被重复传输了。先确认实际改动的节点,再谈换模型或加机器。
只发送变化
把设计系统作为受版本管理的公共上下文,生成请求只携带组件 ID、当前 Token 版本和增量。对于同一份增量,精确缓存是可靠的第一层;语义缓存则要有明确的人工验收与失效策略,不能直接把“相似”当“正确”。
function buildRequest(nodeId: string, delta: unknown, tokenVersion: string) { return { nodeId, delta, tokenVersion }; }给输入和结果都设边界
请求进入模型前,限制增量大小、组件层级和可用组件名单。结果返回后做运行时 Schema 校验;失败时保留当前界面或回退到静态组件,而不是把不完整的数据交给渲染器。
还要区分“缓存命中”和“生成成功”。前者反映成本,后者反映可用性。每次调整缓存键或提示词时,用同一批脱敏样例比较两组指标,避免只看一次压测就下结论。
收尾
AI 适合帮人补全局部,不适合反复重述整个设计系统。让请求描述变化,让 Token 版本描述背景,系统会更快,也更容易算清成本。