svelte-bench
基于 OpenAI HumanEval 方法论,为 Svelte 5 Runes 语法打造的 LLM 代码生成能力基准测试工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 OpenAI HumanEval 方法论,为 Svelte 5 Runes 语法打造的 LLM 代码生成能力基准测试工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024年底,Svelte 5 以全新的 Runes 语法彻底颠覆了前端框架的响应式编程范式。$state、$derived、$effect……这些新语法让习惯了 Vue 2/3 或 React 的开发者需要重新学习。然而,当开发者把这些 Svelte 5 代码扔给 AI 助手时,却发现 AI 频频"失灵"——它能写 React,却写不好 Svelte。
问题出在哪里? 主流的代码生成基准测试(如 OpenAI 的 HumanEval)都基于 Python 或 JavaScript,从未针对 Svelte 5 的 Runes 语法做过专项评估。没有专业的基准测试工具,就无法量化各 AI 模型对 Svelte 5 的真实理解程度。
这就是 SvelteBench 诞生的背景——一个由独立开发者 Stanislav Khromov 发起的开源项目,旨在用科学的方法评估主流 LLM 生成 Svelte 5 代码的能力。
SvelteBench 的作者 Stanislav Khromov 是一位来自瑞典的独立开发者,长期活跃于 Svelte 社区。他注意到,尽管 Svelte 5 的 Runes 语法带来了前所未有的优雅,但主流 AI 模型对此的支持程度参差不齐——有些模型甚至无法正确理解 $state 的基本用法。
他没有选择等待某家大公司出手,而是自己动手,基于 OpenAI 论文 "Evaluating Large Language Models Trained on Code" 中描述的 HumanEval 方法论,从零构建了一套完整的 Svelte 5 基准测试框架。从测试用例设计到结果可视化,全部开源,任何人都可以复现和扩展。
图1:Svelte 5 引入了 Runes 响应式语法,对 AI 模型提出了全新的挑战
SvelteBench 的工作原理并不复杂,但每个环节都体现了作者的严谨:
测试用例设计:项目内置了 9 个核心测试场景,覆盖 Svelte 5 最常用的语法特性:
hello-world:基础组件渲染props:父子组件属性传递counter:带状态的交互组件derived / derived-by:响应式派生状态effect:副作用与生命周期each:列表渲染inspect:状态调试snippets:Svelte 5 新增的 Snippet 语法量化指标:采用业界标准的 pass@k 指标——对每个测试用例生成 k 个候选答案,只要其中任意一个通过单元测试即视为成功。SvelteBench 默认使用 pass@1 和 pass@10,能更真实地反映模型的代码生成能力。
多模型对比:支持 12 家 LLM 提供商的接入:
项目采用 TypeScript 开发,核心依赖极简:
| 依赖 | 用途 |
|---|---|
openai / @anthropic-ai/sdk | LLM API 调用 |
vitest | 单元测试框架 |
tsx | TypeScript 直接执行 |
express / ejs | 结果 HTML 生成 |
dotenv | 环境变量管理 |
核心入口 index.ts 仅约 150 行,通过模块化设计组织代码:
src/
llms/ → 12 个 LLM 提供商的适配器(OpenAI、Anthropic、Gemini...)
tests/ → 9 个测试场景的 prompt 与期望输出
utils/ → 基准测试运行器、结果保存、文件管理
这种设计使得添加新的 LLM 提供商只需实现一个适配器文件(约 30-50 行),扩展成本极低。

图2:SvelteBench 项目图标
根据项目公开的 benchmark 结果页面(live demo),我们可以看到各模型在 Svelte 5 上的表现差异显著:
值得注意的是,Ollama 本地模型(Llama 等)的表现普遍偏低,反映出本地模型在 Svelte 5 新语法上的训练数据不足。
对于普通开发者,SvelteBench 的使用门槛中等偏高:
优点:
llms.txt),显著提升生成质量PARALLEL_EXECUTION=true 加速批量测试缺点:
SvelteBench 目前仅有 9 个测试场景,与 HumanEval 的 164 题相比规模悬殊。更重要的是,这些测试用例均由作者手动设计,可能存在覆盖率偏差——某些模型可能在特定场景(如 Snippet)表现优异,却在真实生产代码中频频失误。
此外,pass@k 指标仅衡量功能正确性,不涉及代码可读性、性能或最佳实践遵守程度。一个 AI 生成的"能用但难看"的组件,与一个"优雅但 AI 写不出来"的组件,pass@k 无法区分高下。
SvelteBench 的最大贡献,不是测试结果本身,而是证明了现有 LLM 在前端框架特定任务上的能力差距。它让 Svelte 社区第一次有了量化数据——哪些模型真正理解 Svelte 5,哪些模型只是"泛化能力强但专业知识不足"。
随着 Svelte 生态的持续发展,SvelteBench 很可能演变为 Svelte 官方推荐的 AI 能力评估工具,吸引更多框架(如 SvelteKit)在基准测试中加入对 AI 能力的考量。
项目作者:Stanislav Khromov (@khromov) — 瑞典独立开发者,Svelte 社区长期贡献者