SJTUjinmao/ArkEval

ArkEval: Benchmarking and Evaluating Automated Code Repair for ArkTS

解决的问题

ArkEval 为 ArkTS 和 OpenHarmony 项目中的代码自动修复提供了一个标准化、可执行的基准测试。它通过将分散的真实世界问题转化为结构化数据集,解决了低资源语言缺乏评估信号的问题,使研究人员能够比较基于大语言模型(LLM)的代码修复代理,并为训练和强化学习提供反馈。

工作原理

该项目实现了一个包含多个阶段的完整修复流程:

  1. 定位:使用针对 ArkTS 的结构化分割方法,结合 Qwen3-Embedding-8B 与 Milvus,从代码库中检索候选文件。
  2. 过滤与补全:修复模型选择核心文件并补全依赖项,以定义受限的修复范围。
  3. 补丁生成:模型生成统一的 Diff 补丁,可选择性地利用 RAG 系统提供官方华为/OpenHarmony 语法和示例代码。
  4. 评估:系统通过严格循环评估补丁:检查补丁适用性、Hvigor 编译、以及复现测试的执行,以确定 Compile@1(构建有效性)和 Pass@1(行为正确性)。

适用对象

从事 LLM4Code、自动化程序修复(APR)的研究人员和开发者,特别是针对 ArkTS/OpenHarmony 生态系统者。

亮点

  • 真实世界数据集:包含来自 9 个公开仓库和 149 个 OpenHarmony 应用的 502 个可执行修复实例。
  • 行为验证:通过行为复现测试区分仅能编译的补丁与真正修复 bug 的补丁。
  • 严格测试构建:测试经过多智能体审计和专家评审,确保在 bug 上失败、在修复后通过。
  • 完整流水线:包含 ArkTS 识别分割、基于嵌入的检索、以及自动化执行评估的工具。

相关

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