如果你关注 AI 生成网页,一定见过这样的场景:让大模型直接输出 HTML,结果小模型生成的页面要么标签嵌套错乱,要么配色一言难尽。小思框架(Xiaothink)发布的前端生成模型Xiaothink-T17-RWKV5-MLA-Frontend(0.6B)给出了一个新解法:让模型输出一种中文声明式前端语言 WanlyFrontend(WF),再用开源编译器把 WF 编译成完整 HTML/CSS/JS 页面。
模型与工具地址> - Frontend 模型:https://www.modelscope.cn/models/ericsjq/Xiaothink-T17-RWKV5-MLA-0.6B-Frontend> - WF 编译器(开源仓库):https://github.com/Ericsjq/Open-WanlyFrontend> - Instruct-Pro 通用助手:https://www.modelscope.cn/models/ericsjq/Xiaothink-T17-RWKV5-MLA-0.6B-Instruct-Pro## 一、为什么是"语言 + 编译器"?先对比两种路线。路线 A:模型直接输出 HTML模型需要同时学会:标签配对(div/span/p)、CSS 选择器与属性、JS 事件绑定、语义化结构。这些语法细节占用了大量 token 预算,小模型往往顾此失彼——结构对了配色乱,配色好了标签闭合又出错。路线 B:模型输出 WF 语言,编译器生成页面模型只负责"写语言":一条语句描述一个组件,属性用中文键值对表达。编译器负责把 WF 翻译成 HTML/CSS/JS,语法正确性由编译器保证。0.6B 模型的全部容量都用在了"理解需求、组织结构、设计配色"上。实测结果:这条路线让 0.6B 模型在 DeepSeek-V4-Flash 裁判盲测中拿到52.6 分,反超 llama-3-8B(35.4),简单页面任务达 63.0 分。## 二、WF 语言核心语法WF 是中文为主的极简声明式语言,一条语句即一个组件:
组件路径.组件名(属性:值;属性:值)示例:一个带标题和按钮的卡片__页面__()页面(填充:#f5f5f5;弹性;纵向排列;居中;内边距:40px)页面.卡片(背景色:#ffffff;圆角:16px;阴影:0 4px 12px rgba(0,0,0,0.1);内边距:24px;宽度:360px)页面.卡片.标题(文本:"欢迎使用 WF";字号:20px;字重:700;文字色:#1a1a2e)页面.卡片.按钮(文本:"点击我";背景色:#38bdf8;文字色:#ffffff;圆角:8px;内边距:10px 20px)支持的属性类别:-样式:背景色/填充/文字色、字号/字重、圆角、阴影、宽度/高度、内外边距、弹性布局、网格布局-事件:被点击时、被悬停时、输入改变时-逻辑:如果/否则、循环遍历、变量绑定-动画:过渡、关键帧