你的这个问题非常关键,直接关系到测试框架能否在国内网络环境下顺利运行。我在Gitee和国内镜像上仔细搜寻了一番,结论是:虽然无法100%完美覆盖,但已经足以拼凑出一个高质量的测试流程。
bin-mian/CodeGeeX (benchmark 目录)[reference:2]mirrors/agentverse (dataloader 目录)[reference:3]hf-datasets/mbppplus (增强版)[reference:5]mirrors/code-as-policies (原始版, mbpp目录)[reference:6]modelscope.cn/datasets/AI-ModelScope/SWE-bench[reference:9]bigcodebench 来下载和使用数据集[reference:11]。modelscope.cn/datasets/AI-ModelScope/code_generation_lite[reference:14]hyper.ai 平台上[reference:17]另外,Gitee上还有像 长江大学极客班/简单的算法题测试与数据生成工具[reference:19]和 Fzhuzhu/笔试题目[reference:20]这样的仓库,它们更像是个人练习或教学工具,而非标准化的基准测试,无法保证评估的严谨性,不建议用在你的测试框架里。
基于以上可用资源,我建议你采用 "Gitee + 国内AI平台" 的组合,搭建一套能覆盖不同难度和任务类型的国家级测试方案:
bin-mian/CodeGeeX 和 hf-datasets/mbppplus 这两个代码库,获取数据。这一步用来测试模型生成基础函数、处理核心逻辑的正确性。AI-ModelScope/SWE-bench 数据集。这一步会考察模型在复杂项目、跨文件上下文中的理解和修复能力。pip install bigcodebench 命令安装官方包,然后用它来下载数据。这一步能检验模型根据复杂指令,综合调用多种库函数的能力。AI-ModelScope/code_generation_lite 数据集,同时从 hyper.ai 获取 AetherCode 数据集。LiveCodeBench持续收集竞赛新题,能有效对抗"数据污染"(即模型死记硬背训练集),可以评估模型的真实、泛化的推理水平;而AetherCode能提供额外的、高难度的竞赛题作为补充。为了让这个测试框架能自动化运行,我构思了一个集成流程的伪代码,你可以参考这个逻辑来编写实际的测试脚本:
# 这只是测试流程的核心逻辑,并非可直接运行的完整代码
import json
from test_harness import CmdCode, load_and_verify_dataset
DATASETS = {
"HumanEval": ("gitee", "bin-mian/CodeGeeX", "humaneval"),
"MBPP": ("gitee", "hf-datasets/mbppplus", "mbpp"),
"SWE-bench": ("modelscope", "AI-ModelScope/SWE-bench", "swebench"),
"BigCodeBench": ("custom", "pip install bigcodebench", "bigcodebench"),
"LiveCodeBench": ("modelscope", "AI-ModelScope/code_generation_lite", "livecodebench"),
"AetherCode": ("custom", "hyper.ai dataset", "aethercode")
}
def run_test_suite(cmdcode_instance):
"""主测试流程"""
all_results = []
for dataset_name, (platform, source, processor_type) in DATASETS.items():
print(f"--- 正在测试: {dataset_name} ---")
try:
# 1. 加载数据集(具体的下载与解析逻辑需自行实现)
dataset = load_and_verify_dataset(platform, source, processor_type)
for problem in dataset:
# 2. 用问题提示词运行 CmdCode
result = cmdcode_instance.run(problem["prompt"])
# 3. 用户自定义: 在这里添加你的评估逻辑,对比 result 和 problem["expected"]
except Exception as e:
print(f"数据集 {dataset_name} 测试失败: {e}")
# 生成最终报告
generate_report(all_results)
# 启动测试
cmdcode = CmdCode()
run_test_suite(cmdcode)