揭秘openeuler/docs-model-dataset核心架构从数据爬取到AI评估的完整流程【免费下载链接】docs-model-datasetTo develop dataset for openEuler documentation.项目地址: https://gitcode.com/openeuler/docs-model-dataset前往项目官网免费下载https://ar.openeuler.org/ar/openeuler/docs-model-dataset是一个基于Gitee openEuler社区文档仓库PR数据构建的专业工具旨在获取和处理文档修改数据生成可用于文档编辑优化模型训练的高质量数据集。该项目具备灵活可配置的过滤系统支持快速扩展新规则为文档质量提升提供强大支持。项目整体架构概览docs-model-dataset采用模块化设计主要包含七大核心模块形成完整的数据处理流水线。项目整体架构如下docs-model-dataset/ ├── crawler/ # PR数据爬取模块 ├── filters/ # 数据过滤规则引擎 ├── processors/ # 数据处理器 ├── llm_label/ # LLM评估与标签分类 ├── llm_few_shot/ # Few-shot验证流水线--数据集使用场景探索 ├── bert_train/ # BERT模型训练--基于Bert的数据标签验证 ├── utils/ # 工具函数 ├── tests/ # 测试用例 ├── data/ # 数据存储目录 ├── logs/ # 日志文件 ├── main.py # 主入口程序 ├── config.py # 全局配置 └── requirements.txt # 依赖列表核心模块功能解析模块功能描述主要用途crawlerPR数据获取从Gitee API获取PR、commits、files等数据filters数据过滤基于规则过滤无效或低质量变更processors数据处理变更单元分割、格式化处理llm_label智能标签大模型评估文档编辑质量并分类llm_few_shot验证流水线向量化智能Few-shot验证bert_train模型训练BERT文本分类器训练和评估数据爬取模块获取原始PR数据数据爬取模块crawler是整个系统的数据源负责从Gitee API获取PR相关数据。该模块包含多个关键文件fetch_prs.py获取PR基本信息fetch_commits.py获取PR关联的提交记录fetch_files.py获取PR修改的文件内容diff_parser.py解析PR的diff内容使用时可通过主程序命令一键下载PR数据python main.py download --state open --per_page 50 --max_pages 2此命令将获取状态为open的PR数据每页50条最多获取2页为后续处理提供原始素材。数据过滤模块精准筛选高质量数据过滤器模块filters是提升数据质量的关键环节采用策略模式设计可通过配置文件灵活启用/禁用各种过滤规则。目前已内置10种过滤规则规则名称功能描述过滤条件file_extension文件类型过滤只保留.md文件过滤其他类型文件type_base修改类型过滤只保留指定类型modify/add/deletetrivial_whitespace格式过滤过滤仅空格、换行的格式改动code_block_language_tag代码块标记过滤过滤代码块语言标记的修改url_changeURL修改过滤过滤URL的小幅修改如扩展名markdown_heading_level标题级别过滤过滤仅改变Markdown标题级别的修改punctuation_change标点符号过滤过滤中英文标点或末尾句号的小幅改动list_style_change列表样式过滤过滤列表符号变化如-↔*content_length内容长度过滤过滤少于N个字符的短内容修改trailing_symbol_change尾部装饰符过滤过滤语句尾部装饰符变动如末尾添加标点过滤规则可在config.py中灵活配置例如FILTER_CONFIG { file_extension: { allowed_extensions: [.md] # 只允许.md文件 }, type_base: { allowed_types: [modify] # 只允许修改类型 }, content_length: { min_length: 6 # 最小字符数 } }执行过滤命令python main.py process \ --input data/raw/prs_open.json \ --output data/processed/prs_open_filtered.json \ --rejected data/processed/prs_open_filtered_rejected.json数据处理模块规范化数据格式处理器模块processors负责对过滤后的数据进行进一步加工主要包含三个核心组件unit_splitter.py将PR变更分割为独立的变更单元unit_formatter.py格式化变更单元数据change_type_detector.py检测变更类型处理后的数据将包含丰富的上下文信息典型格式如下{ pr_number: 123, file_path: docs/example.md, hunk_header: -10,7 10,7 , add_content: 新的内容, remove_content: 旧的内容, unit_id: PR123_docs_example_md_unit_0, context_before: 上下文内容, context_after: 上下文内容, change_type: modify }这些规范化处理后的数据为后续AI评估提供了统一、高质量的输入格式。LLM智能评估AI驱动的文档质量判断LLM评估模块llm_label是项目的核心功能之一利用大模型对文档编辑质量进行智能评估和标签分类。该模块主要通过llm_eval.py实现支持高并发评估以提升处理效率。配置大模型参数# 在 llm_label/llm_eval.py 中配置 model_name Qwen/Qwen3-8B # 使用的模型名称 max_concurrency 10 # 最大并发数 api_key your_api_key # API密钥 base_url http://localhost:8000 # API基础地址评估后的数据将新增评估结果字段{ evaluation: { is_valid: true, valid_reason: 该修改修复了专业术语的拼写错误具有教学价值, label_id: 1, label_name: 错别字-英文错别字, label_reason: 属于专业名词的拼写错误修正符合标签1的定义, error: null } }系统定义了22个文档编辑优化标签涵盖拼写、超链接、空格、标点、格式、标记与代码、文件与路径、表达、结构、标题、信息等多个类别实现对文档质量问题的全面覆盖。动态Few-shot验证提升评估准确性llm_few_shot模块提供了一套完整的动态few-shot验证流水线通过向量数据库和智能示例选择辅助大模型对PR修改质量进行更精准的判断。该模块采用两阶段架构向量数据库构建将标签数据向量化并建立检索索引验证流程使用向量库进行智能few-shot验证核心实现文件包括build_embedding_database.py构建向量数据库按标签分类存储embedding_few_shot_selector.py基于向量相似度的智能示例选择pipeline.py主流程包含数据加载和验证流程运行验证流程# 构建向量数据库 python llm_few_shot/build_embedding_database.py \ --input-file data/label_data/auto_pass.jsonl \ --output-dir llm_few_shot/data/label_embedding # 运行验证流水线 cd llm_few_shot ./run.sh验证完成后将生成详细的分析报告、对比数据和few-shot提示词等结果文件为评估质量提供全面分析。BERT模型训练构建文档质量分类器bert_train模块提供基于BERT的完整文本分类训练流程用于验证数据集标签的可分类性。该模块包含数据预处理、模型训练和评估三个主要步骤。文件结构bert_train/ ├── prepare_core_dataset.py # 数据预处理和折分 ├── train_classifier.py # 模型训练 ├── eval_classifier.py # 模型评估 ├── run_train_eval.sh # 一键训练评估脚本 ├── data/ # 训练数据目录 └── models/ # 模型输出目录使用一键训练评估脚本cd bert_train ./run_train_eval.sh或分步执行# 数据预处理 python bert_train/prepare_core_dataset.py \ --input ../data/label_data/auto_pass_*.jsonl \ --output_dir data \ --text_format bert_pair # 模型训练 python bert_train/train_classifier.py \ --data_dir data \ --output_dir models \ --epochs 3 # 模型评估 python bert_train/eval_classifier.py \ --data_dir data \ --model_dir models/checkpoint-xxx \ --result_dir data/result训练完成后将生成评估指标、混淆矩阵、分类报告等结果文件位于bert_train/data/result/目录下为模型性能提供全面评估。完整工作流从数据到模型的全流程将上述模块串联起来openeuler/docs-model-dataset实现了从数据获取到模型训练的完整工作流数据获取通过crawler模块从Gitee API获取PR数据数据过滤使用filters模块过滤低质量数据数据处理processors模块将数据分割为标准化的变更单元AI评估llm_label模块对变更单元进行质量评估和标签分类验证优化llm_few_shot模块通过动态few-shot提升评估准确性模型训练bert_train模块基于标注数据训练文档质量分类模型通过这条完整的流水线项目能够持续生成高质量的文档编辑数据集为文档质量优化模型的训练提供有力支持。快速开始使用要开始使用openeuler/docs-model-dataset首先克隆仓库git clone https://gitcode.com/openeuler/docs-model-dataset cd docs-model-dataset安装依赖pip install -r requirements.txt一步执行下载和处理数据python main.py deal --state open --per_page 100 --max_pages 0之后可分别运行LLM智能评估和BERT模型训练流程体验从数据到模型的完整过程。openeuler/docs-model-dataset通过模块化设计和AI驱动的评估方法为文档质量提升提供了全面解决方案是开源社区文档优化的得力工具。无论是文档维护者还是AI模型开发者都能从中获得有价值的支持。【免费下载链接】docs-model-datasetTo develop dataset for openEuler documentation.项目地址: https://gitcode.com/openeuler/docs-model-dataset创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考