JetBrains-Research/template-generation
收藏Hugging Face2024-09-03 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/JetBrains-Research/template-generation
下载链接
链接失效反馈官方服务:
资源简介:
该数据集是一个用于AI代理评估的项目模板生成基准数据集。它包含了从GitHub收集的真实项目模板,提供了项目描述、README.md文件内容、项目链接以及GitHub仓库的额外数据和指标。数据集经过精心筛选、增强和手动标注,确保了数据质量,并提供了多个类别(如Python、Java、Kotlin、Android)和分割(如dev、test、train)。数据集的主要用途是评估项目模板生成方法,并提供了加载数据集的代码示例。
该数据集是一个用于AI代理评估的项目模板生成基准数据集。它包含了从GitHub收集的真实项目模板,提供了项目描述、README.md文件内容、项目链接以及GitHub仓库的额外数据和指标。数据集经过精心筛选、增强和手动标注,确保了数据质量,并提供了多个类别(如Python、Java、Kotlin、Android)和分割(如dev、test、train)。数据集的主要用途是评估项目模板生成方法,并提供了加载数据集的代码示例。
提供机构:
JetBrains-Research原始信息汇总
数据集概述
数据集配置
Android
- 特征:
id: int64full_name: stringowner: stringname: stringhtml_url: stringis_template: booldescription: stringtemplate_keywords: stringlicense: stringtopics: stringsize: int64metrics: stringlanguages: stringlanguage: stringcreated_at: stringupdated_at: stringcode_lines: stringgpt_description: stringrepo_symbols_count: int64repo_tokens_count: int64repo_words_count: int64repo_lines_count: int64repo_files_count: int64repo_code_symbols_count: int64repo_code_tokens_count: int64repo_code_words_count: int64repo_code_lines_count: int64repo_code_files_count: int64description_symbols_count: int64description_tokens_count: int64description_words_count: int64description_lines_count: int64readme: stringreadme_symbols_count: int64readme_tokens_count: int64readme_words_count: int64readme_lines_count: int64
- 分割:
dev: 78114 bytes, 17 examplestest: 4594.941176470588 bytes, 1 exampletrain: 73519.05882352941 bytes, 16 examples
- 下载大小: 177547 bytes
- 数据集大小: 156228.0 bytes
Java
- 特征:
id: int64full_name: stringowner: stringname: stringhtml_url: stringis_template: booldescription: stringtemplate_keywords: stringlicense: stringtopics: stringsize: int64metrics: stringlanguages: stringlanguage: stringcreated_at: stringupdated_at: stringcode_lines: stringgpt_description: stringrepo_symbols_count: int64repo_tokens_count: int64repo_words_count: int64repo_lines_count: int64repo_files_count: int64repo_code_symbols_count: int64repo_code_tokens_count: int64repo_code_words_count: int64repo_code_lines_count: int64repo_code_files_count: int64description_symbols_count: int64description_tokens_count: int64description_words_count: int64description_lines_count: int64readme: stringreadme_symbols_count: int64readme_tokens_count: int64readme_words_count: int64readme_lines_count: int64
- 分割:
dev: 357161 bytes, 81 examplestest: 44093.950617283954 bytes, 10 examplestrain: 313067.04938271607 bytes, 71 examples
- 下载大小: 418713 bytes
- 数据集大小: 714322.0 bytes
Kotlin (kt)
- 特征:
id: int64full_name: stringowner: stringname: stringhtml_url: stringis_template: booldescription: stringtemplate_keywords: stringlicense: stringtopics: stringsize: int64metrics: stringlanguages: stringlanguage: stringcreated_at: stringupdated_at: stringcode_lines: stringgpt_description: stringrepo_symbols_count: int64repo_tokens_count: int64repo_words_count: int64repo_lines_count: int64repo_files_count: int64repo_code_symbols_count: int64repo_code_tokens_count: int64repo_code_words_count: int64repo_code_lines_count: int64repo_code_files_count: int64description_symbols_count: int64description_tokens_count: int64description_words_count: int64description_lines_count: int64readme: stringreadme_symbols_count: int64readme_tokens_count: int64readme_words_count: int64readme_lines_count: int64
- 分割:
dev: 88507 bytes, 19 examplestest: 46582.63157894737 bytes, 10 examplestrain: 41924.36842105263 bytes, 9 examples
- 下载大小: 196218 bytes
- 数据集大小: 177014.0 bytes
Python (py)
- 特征:
id: int64full_name: stringowner: stringname: stringhtml_url: stringis_template: booldescription: stringtemplate_keywords: stringlicense: stringtopics: stringsize: int64metrics: stringlanguages: stringlanguage: stringcreated_at: stringupdated_at: stringcode_lines: stringgpt_description: stringrepo_symbols_count: int64repo_tokens_count: int64repo_words_count: int64repo_lines_count: int64repo_files_count: int64repo_code_symbols_count: int64repo_code_tokens_count: int64repo_code_words_count: int64repo_code_lines_count: int64repo_code_files_count: int64description_symbols_count: int64description_tokens_count: int64description_words_count: int64description_lines_count: int64readme: stringreadme_symbols_count: int64readme_tokens_count: int64readme_words_count: int64readme_lines_count: int64
- 分割:
dev: 2849185 bytes, 565 examplestest: 50428.05309734513 bytes, 10 examplestrain: 2798756.946902655 bytes, 555 examples
- 下载大小: 2868238 bytes
- 数据集大小: 5698370.0 bytes
数据文件路径
Android
dev: android/dev-*test: android/test-*train: android/train-*
Java
dev: java/dev-*test: java/test-*train: java/train-*
Kotlin (kt)
dev: kt/dev-*test: kt/test-*train: kt/train-*
Python (py)
dev: py/dev-*test: py/test-*train: py/train-*
搜集汇总
数据集介绍

构建方式
在软件工程领域中,项目模板的自动生成是提升开发效率的关键环节。该数据集通过系统化的流程构建,首先从SEART GitHub Search平台筛选出符合特定条件的仓库,包括以Python、Java、Kotlin为主要编程语言、获得10颗以上星标、代码行数介于10至1000行、2023年后有更新且非复刻的项目。进一步,通过检查仓库是否标记为模板或描述中是否包含template、boilerplate、starter等关键词进行过滤,并将涉及Android SDK的仓库单独归类。最终,所有数据点均经过人工标注与质量校验,确保数据的高可用性。
特点
该数据集的核心特点在于其精细化的分类与丰富的元数据。数据按编程语言分为py、java、kt、android四个子集,并划分为dev、train、test三个切分,其中test切分包含经过人工验证的高质量样例。每个数据点涵盖34个字段,除了仓库的基础信息如名称、描述、许可证外,还提供了详尽的统计指标,包括仓库与代码的符号数、令牌数、词数、行数以及文件数,甚至对描述和README文件也进行了类似的量化分析,为深度学习模型提供了多维度的特征支持。
使用方法
使用该数据集时,可通过HuggingFace的datasets库便捷加载。用户需指定配置名称(如java、kt、android)和切分名称(如dev、train、test),调用load_dataset函数即可获取对应子集。例如,加载Java语言的开发集:dataset = load_dataset('JetBrains-Research/template-generation', 'java', split='dev')。数据集中的html_url字段可直接链接到原始GitHub仓库,方便研究者获取完整的模板内容进行评估与模型训练。
背景与挑战
背景概述
在软件工程领域,项目模板(Project Template)作为代码复用的重要载体,能够显著降低开发者的初始化成本,加速项目启动流程。然而,如何根据简短的文本描述自动生成结构完整、内容合理的项目模板,始终是智能化软件开发研究中的一项挑战。为此,JetBrains Research团队于2023年构建了Template Generation数据集,旨在为AI Agent评估项目模板生成能力提供标准化基准。该数据集精心收集自GitHub上以MIT、Apache-2.0等宽松许可证发布的真实仓库,覆盖Python、Java、Kotlin及Android四大类别,共包含682个高质量数据点。每个数据点均附有仓库描述、README文件、元数据及手工标注的黄金子集,为模板生成任务的训练与评估奠定了坚实的数据基础,对推动代码智能生成领域的研究具有重要影响力。
当前挑战
该数据集所解决的核心领域问题在于,项目模板生成需从非结构化的自然语言描述中精准提取结构需求,并生成符合编程规范与项目惯例的目录与文件体系,这对语言模型的理解能力与代码生成能力提出了极高要求。在构建过程中,团队面临多重挑战:首先,从海量GitHub仓库中筛选出真正的模板项目极为困难,需结合is_template标志、模板关键词匹配及人工审核,确保数据纯净度;其次,不同编程语言的项目结构差异显著,需分别构建配置并统一特征格式;再者,数据规模相对有限,尤其是Kotlin与Android类别仅有数十个样本,可能导致模型泛化能力不足;最后,手工标注黄金测试集虽提升了评估可靠性,但标注成本高昂,限制了数据集的扩展性。
常用场景
经典使用场景
在软件工程与人工智能的交叉领域中,项目模板生成任务旨在依据简短的自然语言描述自动创建完整的项目结构和内容。JetBrains-Research/template-generation数据集为此类任务提供了标准化的评测基准,其核心应用场景包括评估基于大型语言模型的代码生成智能体、训练能够理解仓库语义的深度学习模型,以及开发从文本描述到项目骨架的端到端生成系统。该数据集精心收集了来自GitHub的真实项目模板,涵盖Python、Java、Kotlin及Android四大类别,并提供了人工校验的测试子集,使得研究人员能够在高质量、多语言的基准上公平比较不同方法的性能。
解决学术问题
该数据集精准回应了自动化软件工程领域中一个长期存在的学术难题:如何系统性地评估智能体从自然语言生成结构化项目模板的能力。传统代码生成研究多聚焦于函数级或文件级的代码补全,而忽视了项目级结构的复杂性与领域特定性。本数据集通过提供包含完整仓库元数据、README文档、代码统计特征及人工标注的黄金标准,使得研究者能够量化分析生成模板在代码结构、文件组织、命名规范等方面的保真度。这一工作填补了项目模板生成领域缺乏标准化评测资源的空白,为后续研究奠定了可复现、可比较的实证基础。
衍生相关工作
该数据集的出现催生了一系列富有影响力的后续工作。一方面,研究者基于此数据集开发了专门用于项目模板生成的提示工程策略,探索如何通过精心设计的指令引导大语言模型输出符合预期的仓库结构。另一方面,该数据集的元数据字段(如代码行数、文件数量、符号计数)被用于训练多模态模型,使其能够同时理解项目的文本描述与结构特征。此外,该数据集还作为关键评测集出现在若干关于AI智能体在真实软件开发任务中表现的综合性基准中,推动了从简单代码补全到复杂项目级任务自动化的范式转移。
以上内容由遇见数据集搜集并总结生成



