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)、每个模型的发现、多代理实验以及成本-质量权衡。

工作原理

  1. 预热 – 运行Python预热脚本以发现每个Ollama模型的最大上下文大小。
  2. 生成基准配置 – run_benchmark.py构建一个最小的opencode配置,仅包含你想测试的模型。
  3. 执行 – 脚本为每个模型启动opencode run。该工具内置的系统提示因模型系列而异(Claude、GPT/Codex、Gemini、Kimi等),仓库将此记录为已知的混淆因素。
  4. 两阶段运行
    • 阶段1:模型编写Rails代码。
    • 阶段2:同一会话继续,通过本地启动和Docker验证应用。
  5. 后处理 – 日志被规范化,尝试运行时验证,并重新生成汇总表(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;没有推断额外的功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目