akitaonrails/llm-coding-benchmark
Simple benchmark to test the most popular open source and commercial LLMs with automated OpenCode
LLM编码基准测试
它是什么
- 一个研究级基准测试,衡量大型语言模型(LLM)自主编写、构建和验证小型Ruby on Rails应用的能力。
- 该套件使用
opencode工具让每个模型经历两个阶段:(1)生成Rails代码,(2)在本地启动应用(Docker构建+docker compose up)。 - 结果按模型存储在
results/…下,并在Markdown报告中汇总。
关键组件
- 配置 –
config/models.json列出每个模型(提供商、slug、可选的上下文覆盖)。基准测试创建一个临时的opencode配置(config/opencode.benchmark.json),这样你的全局设置保持不变。 - 提示 –
prompts/benchmark_prompt.txt(阶段1)和prompts/benchmark_followup_prompt.txt(阶段2)在每次运行中相同,确保任务描述一致。 - 脚本
scripts/warmup_ollama_models.py检查本地托管的Ollama模型是否加载,并报告最大的可用上下文窗口。scripts/run_benchmark.py驱动整个实验:准备配置,为每个模型调用opencode run --agent build --format json,保存原始日志,将其规范化为result.json,并重新生成Markdown报告。scripts/analyze_results_runtime.py(与scripts/browser_probe.mjs一起)尝试启动生成的Rails项目,运行Docker,甚至打开无头浏览器来验证应用是否工作。
- 文档 – 大量手写的分析(
docs/*.md)解释了评分标准(八个维度0-100)、每个模型的发现、多代理实验以及成本-质量权衡。
工作原理
- 预热 – 运行Python预热脚本以发现每个Ollama模型的最大上下文大小。
- 生成基准配置 –
run_benchmark.py构建一个最小的opencode配置,仅包含你想测试的模型。 - 执行 – 脚本为每个模型启动
opencode run。该工具内置的系统提示因模型系列而异(Claude、GPT/Codex、Gemini、Kimi等),仓库将此记录为已知的混淆因素。 - 两阶段运行
- 阶段1:模型编写Rails代码。
- 阶段2:同一会话继续,通过本地启动和Docker验证应用。
- 后处理 – 日志被规范化,尝试运行时验证,并重新生成汇总表(
docs/report.md、docs/report.nvidia.md)。
你得到什么
- 每个模型的工件 – 源代码、原始
opencode日志,以及总结成功/失败、运行时间和成本的result.json。 - 汇总报告 – Markdown表格按总体得分、每次运行成本和墙钟时间对模型进行排名。
- 深度代码审查 –
docs/success_report*.md文件包含对每个模型输出的基于标准的审计,突出API幻觉、测试质量、架构决策和生产就绪性。 - 多代理设置的见解 – 规划模型将工作委托给更便宜的执行者的实验,包括强制委托变体以及编排何时有帮助或有害的分析。
谁可能使用它
- 比较新兴LLM(Claude Opus、DeepSeek、Kimi、Gemini等)编码能力的研究人员。
- 评估Ruby/Rails项目中自主代码生成的经济高效选项的团队。
- 任何对可复现的LLM基准测试管道感兴趣的人,包括真实的构建和Docker验证步骤。
作者指出的局限性
- 系统提示由
opencode按模型系列注入,因此跨系列得分混合了模型质量和工具调优。 - 某些运行依赖外部服务(OpenRouter、deepclaude shim)以及某些变体对Anthropic订阅的可用性。
- 基准测试专注于一个相对较小的Rails任务;结果可能无法推广到更大的代码库。
所有细节直接取自仓库的README;没有推断额外的功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目