尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SandboxFusion在线评测系统:如何构建自己的代码评测数据集
SandboxFusion在线评测系统如何构建自己的代码评测数据集【免费下载链接】SandboxFusion项目地址: https://gitcode.com/gh_mirrors/sa/SandboxFusionSandboxFusion在线评测系统是一款功能强大的代码评测工具支持多种编程语言和数据集类型帮助开发者轻松构建和管理自定义代码评测数据集。本文将详细介绍如何使用SandboxFusion构建专属于你的代码评测数据集从数据格式定义到测试用例编写让你快速上手并充分利用这一强大工具。了解SandboxFusion支持的编程语言在开始构建数据集之前首先需要了解SandboxFusion支持的编程语言。SandboxFusion提供了广泛的语言支持涵盖了主流的编程语言和一些专业领域的语言。从上图可以看到SandboxFusion支持Python、Java、C、Go、JavaScript等多种编程语言满足不同场景下的代码评测需求。完整的语言支持列表可以在项目的源码中找到例如在sandbox/datasets/humaneval.py文件中定义了多种语言的映射关系。数据集的基本结构与类型SandboxFusion采用了灵活的数据集结构主要通过CodingDataset抽象类来定义数据集的基本行为。所有自定义数据集都需要继承这个类并实现相关方法。核心数据模型在sandbox/datasets/types.py文件中定义了构建数据集所需的核心数据模型Prompt: 包含问题描述和相关标签TestConfig: 测试配置包括语言、超时时间等EvalResult: 评测结果包含代码执行状态和测试用例结果这些模型为数据集的构建提供了统一的规范确保不同类型的数据集都能被SandboxFusion正确处理。常见数据集类型SandboxFusion已经内置了多种常见的数据集实现例如HumanEvalDataset: 适用于HumanEval格式的单语言代码生成任务MBPPDataset: 适用于MBPP (Mostly Basic Python Programming) 数据集你可以参考这些实现来构建自己的数据集例如sandbox/datasets/humaneval.py和sandbox/datasets/mbpp.py提供了详细的实现示例。构建自定义数据集的步骤1. 定义数据集类首先创建一个新的Python文件例如my_dataset.py并定义你的数据集类继承自CodingDatasetfrom sandbox.datasets.types import CodingDataset, Prompt, GetPromptsRequest class MyCustomDataset(CodingDataset): classmethod async def get_prompts(cls, request: GetPromptsRequest) - List[Prompt]: # 实现获取问题的逻辑 pass classmethod async def evaluate_single(cls, request: SubmitRequest) - EvalResult: # 实现评测逻辑 pass2. 实现数据加载逻辑数据集需要能够从数据源加载问题和测试用例。SandboxFusion提供了数据库访问工具可以方便地从数据库加载数据from sandbox.database import get_rows_in_table, get_row_by_id_in_table classmethod async def get_prompts(cls, request: GetPromptsRequest) - List[Prompt]: rows await get_rows_in_table(request, cls.get_table_name(request.dataset)) return [cls._generate_single_prompt(r, request.dataset, request.config) for r in rows]3. 设计问题模板为你的数据集设计统一的问题模板确保模型能够理解任务要求。例如classmethod def _generate_single_prompt(cls, row: Dict[str, Any], dataset: str, config: TestConfig) - Prompt: prompt f任务{row[description]}\n要求{row[requirements]} return Prompt(idrow[id], promptprompt, labelsrow[labels])4. 编写评测逻辑实现代码的评测逻辑包括代码提取、测试用例执行和结果判断classmethod async def evaluate_single(cls, request: SubmitRequest) - EvalResult: # 获取问题数据 row await get_row_by_id_in_table(request, cls.get_table_name(request.dataset)) # 提取代码 code extract_code_from_completion(request.completion, row[language]) # 构建完整代码包含测试用例 full_code f{code}\n{row[test_cases]} # 执行代码 result await run_code_in_sandbox( RunCodeRequest( codefull_code, languagerow[language], run_timeoutrequest.config.run_timeout or 20 ) ) # 返回评测结果 return EvalResult( idrequest.id, acceptedresult.status RunStatus.Success, extracted_codecode, full_codefull_code, tests[EvalTestCase(passedresult.status RunStatus.Success, exec_inforesult)] )5. 注册数据集将你的数据集注册到系统中以便在SandboxFusion中使用# 在配置文件中添加 dataset: registry: - class_name: MyCustomDataset dataset_tables: my_dataset: my_dataset_table测试用例设计最佳实践1. 覆盖各种情况确保测试用例覆盖正常情况、边界情况和错误情况正常输入的测试边界值测试如空输入、最大最小值错误处理测试如异常输入的处理2. 使用断言明确预期结果每个测试用例应使用明确的断言来验证代码的正确性# Python测试用例示例 assert add(2, 3) 5, 2 3 应该等于 5 assert add(-1, 1) 0, -1 1 应该等于 03. 考虑性能因素对于可能耗时的操作设置合理的超时时间# 在TestConfig中设置超时 TestConfig( run_timeout30, # 30秒超时 compile_timeout10 # 编译超时 )数据集的存储与管理数据存储格式SandboxFusion支持将数据集存储在数据库中每个数据集对应一个表。你也可以使用JSONL格式存储数据集便于版本控制和共享{id: 1, prompt: 编写一个加法函数, test_cases: assert add(1,2)3} {id: 2, prompt: 编写一个乘法函数, test_cases: assert multiply(3,4)12}版本控制建议使用Git对数据集进行版本控制跟踪数据集的变更历史。项目中提供了Git相关脚本可以在scripts/git/目录下找到。总结与下一步通过本文的介绍你已经了解了如何使用SandboxFusion构建自定义代码评测数据集的基本步骤。从定义数据集类到实现评测逻辑再到设计测试用例每一步都至关重要。接下来你可以参考现有的数据集实现如sandbox/datasets/humaneval.py和sandbox/datasets/mbpp.py开始构建自己的第一个数据集在SandboxFusion中测试你的数据集与社区分享你的数据集SandboxFusion提供了灵活而强大的框架帮助你轻松构建和管理代码评测数据集。无论是用于教学、研究还是开发自定义数据集都能让SandboxFusion更好地满足你的特定需求。开始构建你的数据集吧让代码评测变得更加高效和个性化【免费下载链接】SandboxFusion项目地址: https://gitcode.com/gh_mirrors/sa/SandboxFusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Ornith-1.0-35B-8bit震撼发布:Apple Silicon专属8位量化多模态模型,89.2 tok/s极速体验

Ornith-1.0-35B-8bit震撼发布:Apple Silicon专属8位量化多模态模型,89.2 tok/s极速体验

Ornith-1.0-35B-8bit震撼发布:Apple Silicon专属8位量化多模态模型,89.2 tok/s极速体验 【免费下载链接】Ornith-1.0-35B-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Ornith-1.0-35B-8bit 想要在Apple Silicon设备上体验顶…

📅 2026/8/20 21:45:00
Nuke Survival Toolkit完整指南:150+专业插件让Nuke合成效率提升300%

Nuke Survival Toolkit完整指南:150+专业插件让Nuke合成效率提升300%

Nuke Survival Toolkit完整指南:150专业插件让Nuke合成效率提升300% 【免费下载链接】NukeSurvivalToolkit_publicRelease public version of the nuke survival toolkit 项目地址: https://gitcode.com/gh_mirrors/nu/NukeSurvivalToolkit_publicRelease 还…

📅 2026/9/12 15:56:40
AMD NPU模型推理优化:Qwen2.5-0.5B-Instruct的Token Fusion技术

AMD NPU模型推理优化:Qwen2.5-0.5B-Instruct的Token Fusion技术

AMD NPU模型推理优化:Qwen2.5-0.5B-Instruct的Token Fusion技术 【免费下载链接】Qwen2.5-0.5B-Instruct_rai_1.7.1_npu_16K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen2.5-0.5B-Instruct_rai_1.7.1_npu_16K Qwen2.5-0.5B-Instruct_rai_1.7.1_n…

📅 2026/8/20 21:45:14
MORE NEWS

更多资讯

📰

AI写作工具如何提升学术专著效率与质量

1. AI专著写作工具的市场需求与痛点分析 学术专著写作长期以来都是让研究者们又爱又恨的工作。根据Elsevier发布的《全球研究者写作习惯报告》,平均每位学者每年要花费超过400小时在学术写作上,其中约35%的时间消耗在格式调整、文献管理和重复性内容撰写…

📰

化工生产预测实战:从数据清洗到LightGBM模型落地

简介:面向化工生产预测场景的项目资料包,适合化工工程师、数据建模人员、相关专业学生及竞赛参与者参考。项目围绕化工生产过程中产品结果的智能预测展开,内容覆盖多参数影响分析、数据清洗与标准化、特征工程、模型选择与训练、结果验证及不…

📰

CNN-BiGRU-Attention模型在风电功率预测中的应用与优化

1. 风电功率预测的技术挑战与解决方案风电功率预测一直是可再生能源领域的关键技术难题。由于风速的随机性和间歇性,传统预测方法往往难以达到理想的精度要求。我在实际项目中发现,单纯使用统计方法或单一神经网络模型,预测误差经常超过20%&a…

📰

Lucide Vue 填充图标(Filled Icons)实战指南:fill 属性的支持边界与星级评分实现

Lucide Vue 填充图标(Filled Icons)实战指南:fill 属性的支持边界与星级评分实现 【免费下载链接】lucide Beautiful & consistent icon toolkit made by the community. Open-source project and a fork of Feather Icons. 项目地址: …

📰

Backstage 1.28.0-next.1 版本解读:核心服务迁移、TestCaches 缓存测试与权限安全增强

Backstage 1.28.0-next.1 版本解读:核心服务迁移、TestCaches 缓存测试与权限安全增强 【免费下载链接】backstage Backstage is an open framework for building developer portals 项目地址: https://gitcode.com/GitHub_Trending/ba/backstage 本篇技术指…

📰

Kilo Code v7 JetBrains 插件安装全指南:Marketplace 与 Bundled Core 两种部署方式详解

Kilo Code v7 JetBrains 插件安装全指南:Marketplace 与 Bundled Core 两种部署方式详解 【免费下载链接】kilocode Kilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent. 项…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬