ProgramGenDOCUMENTATION

ProgramGen

English · 文档

从真实仓库构建可验证的仓库级程序生成任务,产出规格说明、运行环境、隐藏测试和参考解。

模式 任务内容 质量依据
with-binary 根据使用说明和参考程序 oracle,从零重建程序 真实行为测试、gold/fresh/dummy 执行及复制拦截检查
without-binary 根据生成的规格说明,从零重建目标仓库 原仓库测试测量、API覆盖、离线镜像及参考解复验

核心构建管线迁自 Program-gen。兼容 programbench、nl2repo 别名。 产物支持 Harbor;with-binary 另支持 ProgramBench 原生格式。推理和训练由外部工具完成。

快速开始

使用 Linux/x86_64 主机,准备 Python 3.11+、Git、Docker 和兼容 Anthropic Messages 协议的模型服务。 当前仓库保持私有,需要已有访问权限。

git clone https://github.com/LegoX/ProgramGen.git
cd ProgramGen
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[sdk]'
mkdir -p ../programgen-work
cp -n configs/programgen.toml ../programgen-work/programgen.toml
cd ../programgen-work

修改 programgen.toml 中的 api_base_url 和 model。必要配置都有注释;质量门槛、 超时和重试使用内置默认值。凭据通过环境变量提供:

export ANTHROPIC_API_KEY=你的模型服务密钥
export GITHUB_TOKEN=你的GitHub凭据
programgen create --repo oauthlib/oauthlib --check
programgen create --repo oauthlib/oauthlib \
  --ref 40b0ab56da3682c2484a4b78bbff309f8025d950

默认生成 without-binary 任务并完成严格验证。生成 with-binary 任务:

programgen create --mode with-binary --repo 1password/typeshare \
  --ref 7d3189c9cbca0003ee69b0ef22dd08a7b1f0deb5 --binary typeshare

上面的安装命令已包含两种模型执行后端。工作目录放在源码 checkout 外,保证依赖 Git 状态的程序拥有独立测试环境。 真实生成会调用模型、下载依赖和构建镜像; 候选无法构建或质量不足时会被拒绝。配置说明。 部分参考程序在运行时需要 Go 等主机工具,请按所选仓库的实际依赖准备。

单节点并发生产

programgen search --check
programgen search
programgen produce --check
programgen produce

search 输出带完整 commit 的候选。也可以自行准备混合模式 JSONL:

{"repo":"oauthlib/oauthlib","commit":"40b0ab56da3682c2484a4b78bbff309f8025d950","mode":"without-binary"}
{"repo":"1password/typeshare","commit":"7d3189c9cbca0003ee69b0ef22dd08a7b1f0deb5","mode":"with-binary","binary":"typeshare"}

默认两个任务并发,可修改 [produce].workers。重复运行会恢复工作,检查并跳过完整产物。 每条候选使用对应 mode 的默认配置;正常候选失败不会阻止其他任务完成。

  • tasks/promoted.jsonl:成功发布且完整认证的任务。
  • tasks/failed.jsonl:候选拒绝与执行错误及具体原因。
  • .programgen/produce/:恢复状态和详细执行记录。

摘要中的 rejected 是正常筛选结果,errors 是需要处理的执行问题。正常处理完一批候选 返回退出码0,执行错误返回非零。没有合格任务时不能据此宣称产物验收通过。 输出和恢复。

质量与开发

programgen verify /path/to/task
python -m pip install -e '.[dev]'
python tools/acceptance/acceptance_tests.py --suite offline --evidence-root /tmp/pg-tests

with-binary 沿用旧管线:至少 200 个有效测试、8 类活跃覆盖及完整执行检查; 额外的语义审查默认关闭,可按需启用。 without-binary 保留至少20个实测测试、90%通过率、50% Python覆盖率、完整规格说明及 90%最终离线golden得分。预算超限的完整契约保留原hard-pool处理方式。

质量标准 · 开发说明 · 当前验收状态 · 代码来源

相关项目

  • Repo2RLEnv:从多种仓库素材生成 Harbor 环境。
  • SWE-gen:从已合并 PR 构建并验证仓库修复任务。