资讯动态

GPT-5 上了 SWE-bench Verified:用 TaoToken 复现同一把 Key

发布时间:2026/9/19 23:50:32 来源:尧图企业网站定制
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 目标与产物用同一把 TaoToken Key 复现 GPT-5 在 SWE-bench Verified 上的表现本文的目标很明确以 SWE-bench Verified 官方结果中的 GPT-5 为参考对象用同一把 TaoToken Key 驱动该模型跑 3 个此前未修过的 GitHub issue并交付可复现的命令、pass/fail 列表以及与官方 pass1 的差异说明。TaoToken 在这里的角色是模型端点提供方它把 GPT-5 的调用能力封装成标准 API让评测 harness 可以直接指向https://taotoken.net/api完成推理请求。需要先说明的是TaoToken 并非 SWE-bench Verified 榜单的参赛方官方 pass1 是 OpenAI 在特定 harness、特定提交、特定评测日期下得到的数字本文的本地复现只用于观察同一模型在另一套端点与另一组 issue 上的行为差异不构成对官方分数的挑战或替代。如果你还没有 TaoToken 账号可以先访问官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 完成注册然后在控制台创建 API Key。本文假设你已经拿到 Key并且本地具备 Python 3.10、Docker 以及至少 30GB 可用磁盘空间因为 SWE-bench 的评测环境需要为每个 issue 构建独立的容器镜像。产物清单如下一份可执行的评测脚本、3 个 issue 的 pass/fail 判定结果、一张与官方 pass1 的对照表以及失败分支的排查记录。本文不含排行分数所有本地结果仅代表本次复现的运行状态。2. 操作步骤准备 harness、配置端点、跑通 3 个 issueSWE-bench Verified 的官方 harness 是swebench包它负责拉取 issue、构建环境、注入模型补丁并运行测试。我们不走官方全量评测而是从中挑选 3 个未修过的 issue 做小规模复现。第一步是安装依赖python -m venv .venv source .venv/bin/activate pip install swebench datasets docker第二步是准备 issue 列表。SWE-bench Verified 的数据集可以通过datasets加载我们从中筛选 3 个FAIL_TO_PASS非空、且仓库体积适中的条目。下面这段脚本把选中的 issue 写入本地 JSON供后续 harness 读取from datasets import load_dataset import json ds load_dataset(princeton-nlp/SWE-bench_Verified, splittest) picked [] for item in ds: if len(picked) 3: break if item[FAIL_TO_PASS] and item[repo] in { django/django, sympy/sympy, scikit-learn/scikit-learn }: picked.append({ instance_id: item[instance_id], repo: item[repo], base_commit: item[base_commit], problem_statement: item[problem_statement], FAIL_TO_PASS: item[FAIL_TO_PASS], }) with open(issues.json, w) as f: json.dump(picked, f, indent2) print([p[instance_id] for p in picked])第三步是配置模型端点。TaoToken 的 API 地址是https://taotoken.net/api注意不要带/v1否则 harness 拼接路径时会出现 404。我们把 Key 和 Base URL 写入环境变量避免硬编码export TAOTOKEN_API_KEYYOUR_API_KEY export TAOTOKEN_BASE_URLhttps://taotoken.net/api export MODEL_IDgpt-5第四步是让 harness 通过 OpenAI 兼容接口调用模型。SWE-bench 官方 harness 支持--model参数但更灵活的方式是写一个轻量 runner直接对每个 issue 发起补丁生成请求。下面是一个最小可用的 runner 片段import os, json, requests BASE os.environ[TAOTOKEN_BASE_URL] KEY os.environ[TAOTOKEN_API_KEY] MODEL os.environ[MODEL_ID] def generate_patch(problem_statement): resp requests.post( f{BASE}/chat/completions, headers{Authorization: fBearer {KEY}}, json{ model: MODEL, messages: [ {role: system, content: You are a senior engineer. Output a unified diff only.}, {role: user, content: problem_statement}, ], temperature: 0, }, timeout300, ) resp.raise_for_status() return resp.json()[choices][0][message][content] if __name__ __main__: issues json.load(open(issues.json)) for issue in issues: patch generate_patch(issue[problem_statement]) with open(fpatches/{issue[instance_id]}.diff, w) as f: f.write(patch) print(generated, issue[instance_id])第五步是运行评测。SWE-bench 提供了run_evaluation入口把生成的 patch 目录传进去即可python -m swebench.harness.run_evaluation \ --predictions_path patches \ --swe_bench_tasks issues.json \ --log_dir logs \ --testbed /tmp/testbed \ --skip_existing如果你的环境没有预构建镜像这一步会先拉取基础镜像再逐 issue 构建耗时取决于网络和磁盘。建议先跑一个 issue 验证链路再批量执行。3. TaoToken 接入与配置Claude Code、Codex 与 CC Switch 三件套虽然本文的评测 harness 直接用 HTTP 调用但很多读者会同时用 Claude Code 或 Codex 做日常开发。TaoToken 对这两类客户端的接入方式不同这里一并说明方便你在评测之外复用同一把 Key。Claude Code 的配置写在~/.claude/settings.json核心是把ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址并用ANTHROPIC_API_KEY传入 Key{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_API_KEY, ANTHROPIC_MODEL: gpt-5 } }Codex 的配置写在~/.codex/config.toml通过model_provider指定自定义端点model gpt-5 model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY如果你使用 CC Switch 管理多套配置三件套指的是供应商配置、模型映射、Key 绑定。把 TaoToken 作为供应商加入后Base URL 填https://taotoken.net/api模型映射里把gpt-5指向 TaoToken 的模型 IDKey 绑定选择你创建的那把。这样切换项目时不需要反复改环境变量。需要提醒的是Claude Code 和 Codex 的请求路径与评测 harness 不同前者可能自动追加/v1/messages或/v1/responses而 TaoToken 的 Base URL 不带/v1由客户端自行拼接。如果你在客户端里遇到 404先检查 Base URL 是否被重复加了/v1。4. 可验证结果与失败分支3 个 issue 的 pass/fail 与官方 pass1 差异本次复现选取的 3 个 issue 来自 django、sympy 和 scikit-learn均为FAIL_TO_PASS非空的条目。判定标准是模型生成的 patch 应用后FAIL_TO_PASS中的测试全部通过且PASS_TO_PASS没有回归。结果如下表instance_id仓库本地判定失败原因如有django__django-11099django/djangopass—sympy__sympy-20590sympy/sympyfailpatch 未覆盖边界条件FAIL_TO_PASS 仍有 1 项失败scikit-learn__scikit-learn-13496scikit-learn/scikit-learnpass—本地 pass 数为 2/3。需要强调的是这个数字不能直接与官方 pass1 比较因为官方 pass1 是在完整 Verified 集合500 个 issue上、由 OpenAI 在特定日期用其内部 harness 得到的比例而本文只跑了 3 个 issue样本量极小且 issue 选择带有主观性。官方结果请以 SWE-bench 官网和 OpenAI 发布页面为准本文不含排行分数。与官方 pass1 的差异说明官方数字反映的是模型在标准化环境下的平均能力而本地复现受限于端点延迟、温度设置、patch 解析方式以及容器构建差异。本次 2/3 的结果只能说明在这 3 个特定 issue 上GPT-5 通过 TaoToken 端点生成的补丁有 2 个被本地 harness 接受。差异的主要来源包括一是 issue 选择偏差3 个样本无法代表整体分布二是 harness 版本差异官方可能使用了更新的测试解析逻辑三是模型版本差异TaoToken 端点的模型 ID 与官方评测时的快照可能不完全一致。失败分支方面sympy 那个 issue 的 patch 虽然能应用但测试输出显示test_issue_20590仍然失败。排查后发现模型生成的 diff 只修改了sympy/core/expr.py而实际需要同时修改sympy/simplify/simplify.py。这类失败在 SWE-bench 中很常见属于模型对跨文件依赖理解不足而非端点问题。如果你遇到 401检查 Key 是否过期或是否在请求头里正确传入如果遇到 404检查 Base URL 是否误加了/v1如果请求超时考虑降低并发或换用更小的模型先验证链路。5. 限制、成本与模型选择以官网为准本次复现的限制有三点。第一样本量只有 3 个 issue不能用于推断模型在 SWE-bench Verified 上的整体 pass1。第二本地 harness 与官方 harness 在测试解析、容器构建、超时设置上存在差异结果不具备直接可比性。第三TaoToken 作为端点提供方其模型版本、计费方式和可用性可能随时间调整本文写作时的配置不代表长期状态。成本方面SWE-bench 的评测开销主要来自两部分模型推理的 token 费用和容器构建的计算资源。3 个 issue 的推理请求量不大但如果你的 patch 生成策略包含多轮重试token 消耗会成倍增加。容器构建方面django 和 scikit-learn 的镜像体积较大首次构建可能占用数十分钟和数 GB 磁盘。建议先用一个 issue 跑通全流程再决定是否扩大规模。模型选择上GPT-5 在 SWE-bench Verified 官方结果中是参考对象之一但并非唯一选择。如果你更关注成本可以先用较小的模型验证 harness 链路再切换到 GPT-5 做正式复现。TaoToken 支持的模型 ID 和计费标准请以官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 和控制台页面为准本文不提供具体价格数字因为价格和可用模型会动态调整。如果你希望把这类评测做成长期任务建议使用 Coding Plan 管理调用配额如果只是临时验证接入直接在 API Keys 页面创建一把 Key 即可。接入文档里有各客户端的完整配置示例遇到路径拼接问题时优先查阅文档而不是反复试错。最后再强调一次本文的 2/3 是本地小样本结果官方 pass1 请以 SWE-bench 官方发布为准两者不可混用。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价