国产模型Claude Code 中文编程能力测评 | Token成本象限图发布!





测评摘要
2. 性价比分层清晰,不同定位模型各有所长
Kimi-K2.7-Code 以 2.97 元均价取得 55.43 分,投入产出效率最优。GLM-5.2(max) 以 4.35 元锚定性能旗舰。MiMo、DeepSeek、MiniMax 以 0.22-1.29 元提供低成本基线选择。
3.推理效率与资源消耗策略各有侧重
在推理耗时、交互轮数与 Token 消耗三个维度上,各模型呈现差异化策略:GLM-5.2(max) 与 Kimi-K2.7-Code 在多项效率指标上表现突出,属“高效低耗”型;Doubao-Seed-2.1-Pro(high) 倾向于以更多资源投入换取质量提升;MiMo、Qwen3.7 等模型展现出轻量快速响应的优势,DeepSeek 与 MiniMax 在资源利用效率上具备可观的优化空间。
# 题目概览
本次测评数据集共包含 95 个实例,全部来源于真实开源 Python 项目。所有实例的问题描述均为中文,由原始英文 issue 翻译或改写而来,旨在考察模型在中文软件工程场景下的代码修复能力。数据集涵盖开发者工具、Web 框架、科学计算、自然语言处理、数据可视化等多个领域,兼具功能多样性与任务代表性。
库名 | 占比 | 所属类别 | 功能说明 |
black | 28.4% | 工具 / 开发者生产力 | Python 官方代码格式化工具,自动 code style enforcement |
pyecharts | 16.8% | 可视化 | 基于 ECharts 的可视化库,用 Python 生成图表(HTML/JS 渲染) |
nonebot2 | 14.7% | Web / 聊天机器人 / 事件驱动框架 | 通过适配器接入 QQ、Telegram 等平台,构建自动化对话与事件处理 |
sympy | 10.5% | 科学计算 / 符号数学 | 符号计算库,用于代数、微积分、方程求解等 |
python-pinyin | 9.5% | 文本处理 / NLP 工具(属于“数据处理与语言工具”子类) | 将汉字转拼音的工具库,常用于中文 NLP 或文本预处理任务 |
httpx | 8.4% | Web / 网络 / HTTP 工具 | 现代化异步 HTTP 客户端,支持 sync + async API,Requests 的继任者 |
jieba | 5.3% | 文本处理 / NLP 工具 | 中文分词库,用于自然语言处理;内部算法含 Trie 树、词频统计等 |
fastapi-amis-admin | 3.2% | Web / 框架 / 管理后台扩展 | 基于 FastAPI 和 AMIS 的低代码后台管理系统框架 |
Tushare | 3.2% | 机器学习 / 数据分析 |
整个测评从加载实例数据集、模型配置与 Prompt 模板开始,随后进入循环修复阶段。对每个实例,系统首先创建隔离的代码环境(如 Docker 容器),将中文 Issue 描述和代码库状态作为任务输入提交给 Claude Code,由底层模型自主分析并生成代码修复。若模型成功返回 Patch,则解析并保存单实例结果;若出现超时、无输出或格式错误等情况,则记录失败原因。所有实例处理完毕后,汇总结果并转入自动验证环节。
验证阶段同样以循环方式进行:逐一将 Patch 应用到原始代码库,运行与该 Issue 相关的测试用例(如 pytest 指定测试)。测试全部通过则标记为 Resolved(已解决),否则标记为 Unresolved(未解决)。全部实例评测完成后,输出最终报告。
评分采用严格的二元通过制:单实例中,Patch 成功应用且目标测试全部通过计为 1 分,其余情况计为 0 分。整体核心指标为通过率,即 Resolved 实例数占总实例数的百分比。此外,可选统计执行成功率、测试通过率以及失败原因分布等维度。该评分完全由 SWE-bench 自动测试框架在隔离环境中判定,无需人工干预,确保每次评测结果客观且可复现。详细流程如下图所示:
总分的计算
模型得分=(得分为1的实例数量/记分实例总数量)*100%

1.总成绩格局:头部断层领跑,腰部四强并进


2.性价比分层分布:Kimi领跑超值区,GLM锚定高端旗舰





# 对比示例展示
_utils.py 中的 get_environment_proxies 函数无法正确处理 IPv4、IPv6你好,当我的环境变量 no_proxy 包含像 ::1 这样的 IPv6 地址时,我遇到了错误。它被错误地转换为 all:/ /*::1,并导致 urlparse 错误,因为 _urlparse.py 将 :1 解析为端口。_utils.py 中的 get_environment_proxies 函数负责从系统环境解析和挂载代理信息。对于环境变量 no_proxy,根据 CURLOPT_NOPROXY explained,它应该支持域名、IPv4、IPv6 和 localhost。然而,当前的 get_environment_proxies 函数实现只正确处理域名,因为它总是在 hostname 前添加通配符 *。为了修复这个问题,我研究了该仓库,建议将 no_proxy 的 hostnames 作为域名、IPv4、IPv6 和 localhost 分别处理。我已经更新并测试了 _utils.py 中的 get_environment_proxies 函数。
你是一名经验丰富的软件工程师,任务是修复开源代码库中的 bug。你会收到一个问题描述,并可以访问完整代码库。你的工作是:1. 通过阅读相关文件理解问题2. 定位代码中的 bug3. 做出最小化、聚焦的修改来修复 bug4. 运行相关测试验证修复是否生效规则:只修改修复 bug 所必需的代码除非修复本身需要,否则不要重构、重新格式化或改变代码风格严禁修改测试文件:不要修改任何 tests/ 目录下的文件、test_*.py 文件、*_test.py 文件、测试夹具(fixtures)、测试数据文件(如 *.json 测试数据)或测试配置文件只修改源代码:只允许修改项目主包/主模块中的源码文件不要添加新的依赖除非必要,否则不要修改配置文件(setup.py、pyproject.toml 等)修改完成后,代码应能通过相关测试如果你无法修复该问题,请停止并报告你的发现重要:当前仓库处于 bug 版本(base commit)。你的修改必须基于当前代码状态,生成一个能从当前状态转换到修复状态的 patch。不要基于你记忆中其他版本的代码来修改。修改完成后,使用 `git diff` 检查你的 patch,确保它只包含对源码文件的最小改动。
请修复该代码库中的以下 bug。问题描述{problem_statement}修复步骤1. 首先阅读相关文件,理解问题(问题描述中会包含涉及哪些文件的线索)。2. 找到 bug 的精确位置。3. 只进行最小化的修复,不要引入无关改动。4. 修改完成后,运行相关测试以验证修复是否生效。5. 如果有 lint 或类型检查工具,也请运行,确保修改不会破坏任何检查。重要约束:只修复描述的 bug,不要重构或清理无关代码。绝对不要修改测试文件、测试夹具或测试数据**(包括 tests/ 目录、test_*.py、*_test.py、*.json 测试数据等)。只修改项目主包/主模块中的源码文件。不要添加新的依赖。保持修改最小化和聚焦。修改前,先确认当前文件内容;修改后,使用 `git diff` 确认 patch 只包含对源码文件的最小改动,且 patch 方向正确(能从当前 bug 状态应用)。请逐步思考并执行。当你确认已经修复问题并通过了测试验证后,可以结束。
diff --git a/httpx/_utils.py b/httpx/_utils.pyindex c55d33a..7b505b8 100644--- a/httpx/_utils.py+++ b/httpx/_utils.py import codecs import email.message+import ipaddress import mimetypes import os import re )+def is_ipv4_address(hostname: str) -> bool:+ try:+ ipaddress.IPv4Address(hostname)+ except ipaddress.AddressValueError:+ return False+ return True+++def is_ipv6_address(hostname: str) -> bool:+ try:+ ipaddress.IPv6Address(hostname)+ except ipaddress.AddressValueError:+ return False+ return True++ def get_environment_proxies() -> typing.Dict[str, typing.Optional[str]]: """Gets proxy information from the environment""" # NO_PROXY=google.com is marked as "all://*google.com, # which disables "www.google.com" and "google.com". # (But not "wwwgoogle.com")- mounts[f"all://*{hostname}"] = None+ # NO_PROXY may also contain IPv4 and IPv6 addresses, which+ # should be matched exactly, without any wildcard prefix.+ # IPv6 addresses must be wrapped in brackets for proper+ # URL parsing.+ if is_ipv6_address(hostname):+ mounts[f"all://[{hostname}]"] = None+ elif is_ipv4_address(hostname):+ mounts[f"all://{hostname}"] = None+ else:+ mounts[f"all://*{hostname}"] = None return mounts
{ "encode__httpx-2659": { "patch_is_None": false, "patch_exists": true, "patch_successfully_applied": true, "resolved": false, "tests_status": { "FAIL_TO_PASS": { "success": [], "failure": [ "tests/test_utils.py::test_get_environment_proxies" ] }, "PASS_TO_PASS": { "success": [ "tests/test_utils.py::test_encoded", "tests/test_utils.py::test_bad_utf_like_encoding" ], "failure": [] } }}
评测说明:本次评测通过两项指标评估补丁效果:
FAIL_TO_PASS:原本执行失败的测试用例,在应用 Claude Code 生成的补丁后,是否转为通过。
PASS_TO_PASS:原本执行通过的测试用例,在应用补丁后,结果是否依然保持通过。
实际结果显示,所有原失败用例在补丁应用后仍执行失败,FAIL_TO_PASS 指标未达成,因此修复未完成该题得分为 0 分;PASS_TO_PASS 指标则保持正常,原通过用例均未出现回归。
diff --git a/httpx/_utils.py b/httpx/_utils.pyindex c55d33a..a3a045d 100644--- a/httpx/_utils.py+++ b/httpx/_utils.py import codecs import email.message+import ipaddress import mimetypes import os import re # NO_PROXY=google.com is marked as "all://*google.com, # which disables "www.google.com" and "google.com". # (But not "wwwgoogle.com")- mounts[f"all://*{hostname}"] = None+ # NO_PROXY can include domains, IPv6, IPv4 addresses and "localhost"+ # NO_PROXY=example.com,::1,localhost,+ if is_ipv4_hostname(hostname):+ mounts[f"all://{hostname}"] = None+ elif is_ipv6_hostname(hostname):+ mounts[f"all://[{hostname}]"] = None+ elif hostname.lower() == "localhost":+ mounts[f"all://{hostname}"] = None+ else:+ mounts[f"all://*{hostname}"] = None return mounts def __eq__(self, other: typing.Any) -> bool: return isinstance(other, URLPattern) and self.pattern == other.pattern+++def is_ipv4_hostname(hostname: str) -> bool:+ try:+ ipaddress.IPv4Address(hostname.split("/")[0])+ except Exception:+ return False+ return True+++def is_ipv6_hostname(hostname: str) -> bool:+ try:+ ipaddress.IPv6Address(hostname.split("/")[0])+ except Exception:+ return False+ return True
{ "encode__httpx-2659": { "patch_is_None": false, "patch_exists": true, "patch_successfully_applied": true, "resolved": true, "tests_status": { "FAIL_TO_PASS": { "success": [ "tests/test_utils.py::test_get_environment_proxies" ], "failure": [] }, "PASS_TO_PASS": { "success": [ "tests/test_utils.py::test_encoded", "tests/test_utils.py::test_bad_utf_like_encoding" ], "failure": [] } }}
评测说明:本次评测通过两项指标评估补丁效果:
FAIL_TO_PASS:原本执行失败的测试用例,在应用 Claude Code 生成的补丁后,是否转为通过。
PASS_TO_PASS:原本执行通过的测试用例,在应用补丁后,结果是否依然保持通过。
实际结果显示,所有原失败用例在补丁应用后执行通过,FAIL_TO_PASS 指标已达成,因此修复完成该题得1分;PASS_TO_PASS 指标则保持正常,原通过用例均未出现回归。
# 参与测评
参测流程
1.邮件申请
2.意向沟通
3.参测确认与协议流程
4.提供API接口或大模型
5.获得测评报告
邮件标题:基于Claude Code框架的SuperCLUE-SWE软件工程中文测评申请,发送到contact@superclue.ai请使用单位邮箱,邮件内容包括:单位信息、大模型简介、联系人和所属部门、联系方式
联系我们

