Intention/generated_data/generated.py

654 lines
41 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import json
import os
from itertools import product
# 目录路径
directory = "data"
# 确保目录存在
if not os.path.exists(directory):
os.makedirs(directory)
# 基础数据定义
BASE_DATA = {
"implementation_organizations": ["送电一分公司", "送电二分公司", "变电分公司", "建筑分公司", "消防分公司",
"检修试验分公司", "安徽宏源电力建设有限公司", "安徽顺安电网建设有限公司"],
"project_types": ["基建", "技改大修", "用户工程", "小型基建"],
"project_names": [
"国网北京检修公司2024年±500kV延庆换流站直流主设备年度检修维护",
"合肥二电厂-彭郢π入长临河变电站220kV线路工程",
"杨柳四铺π入况楼变110kV电缆线路工程",
"安徽蚌埠濠州220kV变电站220千伏大唐凤阳红心镇光伏间隔扩建工程(电气安装)",
"合肥轨道7号线10kV杆线迁改工程",
"金上-湖北线路工程川12标",
"六安汤池 110kV 变电站新建工程",
"双港-独秀π入和平变电站220kV线路工程",
"茗南-熙湖T接城南变电站110kV架空线路工程",
"南屏-蓬莱路π入派河变电站110kV线路工程",
"藕池-漆园π入杨柳变电站220kV线路工程",
"芜湖站1000千伏1号主变A相局放配合项目",
"埇桥-灵泗500kV线路工程",
"月桥-火龙岗π入高村变电站220kV线路工程"
],
"construction_units": ["国网安徽省电力有限公司建设分公司", "国网安徽省电力有限公司马鞍山供电公司",
"国网安徽省电力有限公司合肥供电公司", "国网安徽省电力有限公司阜阳供电公司",
"国网安徽省电力有限公司滁州供电公司", "国网安徽省电力有限公司安庆供电公司",
"国网安徽省电力有限公司黄山供电公司", "国网安徽省电力有限公司蚌埠供电公司",
"国网安徽省电力有限公司池州供电公司", "国网安徽省电力有限公司六安供电公司",
"国家电有限公司特高压建设分公司", "国网安徽省电力有限公司淮南供电公司",
"国网安徽省电力有限公司宣城供电公司", "国网北京市电力公司",
"国网安徽省电力有限公司宿州供电公司",
"国网安徽省电力有限公司营销服务中心", "中国葛洲坝集团电力有限责任公司",
"银联黄山园区开发有限公司", "淮南交通控股(集团)有限公司",
"国网安徽省电力有限公司舒城县供电公司",
"国网安徽省电力有限公司颍上县供电公司", "中铁二局集团电务工程有限公司",
"国网四川省电力公司建设分公司"],
"project_departments": ["第九项目管理部(马鞍山)", "第十一项目管理部(马鞍山)", "第八项目管理部(芜湖)",
"第五项目管理部(阜阳)", "第六项目管理部(滁州)", "第十二项目管理部(陕皖)",
"第十三项目管理部(黄山)", "第四项目管理部(安庆)"],
"project_managers": ["陈少平项目经理", "范文立项目经理", "何东洋项目经理", "胡彬项目经理", "黄东林项目经理",
"姜松竺项目经理", "刘闩项目经理", "柳杰项目经理"],
"subcontractors": ["安徽远宏电力工程有限公司", "安徽京硚建设有限公司", "武汉久林电力建设有限公司",
"安徽省鸿钢建设发展有限公司", "安徽星联建筑安装有限公司", "福建文港建设工程有限公司",
"芜湖冉电电力安装工程有限责任公司", "合肥市胜峰建筑安装有限公司", "安徽劦力建筑装饰有限责任公司",
"安徽苏亚建设集团有限公司"],
"team_leaders": ["李元帅班组长", "刘雨豪班组长", "马新欣班组长", "任家泉班组长", "王海峰班组长", "王书民班组长"],
"risk_levels": ["1级", "2级", "3级", "4级", "5级"],
"pages": ["风险管控", "日计划", "周风险" ,"日计划统计报表","日计划推送","考勤统计详情","今日作业计划(运检)","周风险统计报表","周风险推送","下周作业计划","本周作业计划","历史作业周计划"]
}
# 自然语言模板配置
TEMPLATE_CONFIG = {
"日计划数量查询": {
"date": ["今日", "昨日", "2024年5月24日", "5月24日", "24日", "周一"],
"templates": [
("{date}{project_name}有多少作业计划?", ["date", "project_name"],),
("{date}{project_type}类工程中,风险等级高于{risk_level}的计划有多少?", ["date", "project_type", "risk_level"]),
("{date}{project_type}类工程的计划有多少?", ["date", "project_type", "risk_level"]),
("{date}风险等级高于{risk_level}的计划有多少?", ["date", "risk_level"]),
("{date}风险等级为{risk_level}的计划有多少?", ["date", "risk_level"]),
("{project_name}{date}有多少作业计划?", ["date", "project_name"],),
("请查询{project_name}{date}的作业计划数量?", ["project_name", "date"]),
("{date}{project_type}类工程计划有多少?", ["date", "project_type"]),
("{project_type}类工程{date}计划有多少?", ["date", "project_type"]),
("{construction_unit}{date}需要完成多少任务?", ["construction_unit", "date"]),
("{date}有多少作业计划?", ["date"]),
("{date}的所有作业计划总数是多少?", ["date"]),
("{date}{project_name}有多少作业计划?", ["date", "project_name"]),
("{date}{project_type}类工程计划有多少?", ["date", "project_type"]),
("{date}{construction_unit}共有多少个作业计划?", ["date", "construction_unit"]),
("{date}{implementation_organization}负责的计划有多少?", ["date", "implementation_organization"]),
("{date}{project_department}管理的作业计划数量是多少?", ["date", "project_department"]),
("{date}{project_manager}负责的作业计划有多少?", ["date", "project_manager"]),
("{date}{subcontractor}承包的作业计划数量是多少?", ["date", "subcontractor"]),
("{date}{team_leader}带领的作业计划有多少?", ["date", "team_leader"]),
("{date}的风险等级为{risk_level}的计划有多少?", ["date", "risk_level"]),
("{date}风险等级高于{risk_level}的计划有多少?", ["date", "risk_level"]),
("{date}{project_type}类工程中,风险等级为{risk_level}的计划有多少?",["date", "project_type", "risk_level"]),
("{date}{project_type}类工程中,风险等级高于{risk_level}的计划有多少?",["date", "project_type", "risk_level"]),
("{date}{construction_unit}中,风险等级为{risk_level}的计划有多少?",["date", "construction_unit", "risk_level"]),
("{date}{construction_unit}中,风险等级高于{risk_level}的计划有多少?",["date", "construction_unit", "risk_level"]),
("{date}{implementation_organization}负责的风险等级高于{risk_level}计划有多少?",["date", "implementation_organization", "risk_level"]),
("{date}{project_type}类工程中,由{construction_unit}负责的计划有多少?",["date", "project_type", "construction_unit"]),
("{date}{project_type}类工程中,由{implementation_organization}组织实施的计划有多少?",["date", "project_type", "implementation_organization"]),
("{date}{project_department}管理的{project_type}类工程计划有多少?",["date", "project_department", "project_type"]),
("{date}{subcontractor}承包的{project_type}类工程计划有多少?",["date", "subcontractor", "project_type"]),
("{date}{project_manager}负责的{project_type}类工程计划有多少?",["date", "project_manager", "project_type"]),
("{date}{team_leader}带领的{project_type}类工程计划有多少?", ["date", "team_leader", "project_type"]),
("{date}{project_name}{project_manager}负责的计划有多少?",["date", "project_name", "project_manager"]),
("{date}{project_name}中,风险等级为{risk_level}的计划有多少?", ["date", "project_name", "risk_level"]),
("{project_manager}负责的所有计划有多少?", ["project_manager"]),
("{project_manager}{date}负责的计划有多少?", ["project_manager", "date"]),
("{project_manager}负责的风险等级为{risk_level}计划有多少?", ["project_manager", "risk_level"]),
("{date}的所有工程计划中,哪个{project_manager}负责的最多?", ["date", "project_manager"]),
("{date}的所有作业计划中,哪个{construction_unit}的任务最多?", ["date", "construction_unit"]),
]
},
"周计划数量查询": {
"date": ["本周", "上周", "下周", "过去一周", "未来一周", "最近一周", "本周内", "这一周", "上个星期", "这个星期", "下个星期"],
"templates": [
("{date}{project_name}有哪些作业安排?", ["date", "project_name"]),
("请列出{project_name}{date}的施工内容", ["project_name", "date"]),
("{date}{project_type}类工程计划有哪些?", ["date", "project_type"]),
("{construction_unit}{date}需要完成哪些任务?", ["construction_unit", "date"]),
# 🎯 仅 date 维度
("{date}的作业计划总数是多少?", ["date"]),
("{date}的作业安排有哪些?", ["date"]),
("{date}计划执行情况如何?", ["date"]),
("{date}有多少个施工任务?", ["date"]),
# 🎯 date + 其他单个维度
("{date}{project_name}有多少作业计划?", ["date", "project_name"]),
("{date}{project_type}类工程计划有哪些?", ["date", "project_type"]),
("{date}{construction_unit}共有多少个作业任务?", ["date", "construction_unit"]),
("{date}{implementation_organization}负责哪些施工计划?", ["date", "implementation_organization"]),
("{date}{project_department}管理的任务总数是多少?", ["date", "project_department"]),
("{date}{project_manager}负责的作业计划有哪些?", ["date", "project_manager"]),
("{date}{subcontractor}承包了多少个任务?", ["date", "subcontractor"]),
("{date}{team_leader}带领的施工项目有多少?", ["date", "team_leader"]),
# 🎯 date + 风险维度
("{date}的高风险作业计划有多少?", ["date"]),
("{date}风险等级为{risk_level}的计划有多少?", ["date", "risk_level"]),
("{date}风险等级高于{risk_level}的计划有哪些?", ["date", "risk_level"]),
# 🎯 date + project_type + risk_level
("{date}{project_type}类工程中,风险等级为{risk_level}的计划有多少?",
["date", "project_type", "risk_level"]),
("{date}{project_type}类工程中,风险等级为{risk_level}的有哪些?", ["date", "project_type", "risk_level"]),
# 🎯 date + construction_unit + risk_level
("{date}{construction_unit}承担了多少风险等级为{risk_level}的作业?", ["date", "construction_unit", "risk_level"]),
("{date}{construction_unit}负责的作业计划中,哪些是风险等级为{risk_level}的?", ["date", "construction_unit", "risk_level"]),
# 🎯 date + implementation_organization + risk_level
("{date}{implementation_organization}组织实施的计划中,风险等级为{risk_level}的有多少?",
["date", "implementation_organization", "risk_level"]),
# 🎯 多维组合
("{date}{project_type}类工程中,由{construction_unit}负责的计划有哪些?",
["date", "project_type", "construction_unit"]),
("{date}{project_type}类工程中,由{implementation_organization}组织实施的任务有哪些?",
["date", "project_type", "implementation_organization"]),
("{date}{project_department}管理的{project_type}类工程计划总数是多少?",
["date", "project_department", "project_type"]),
("{date}{subcontractor}承包的{project_type}类工程计划有哪些?", ["date", "subcontractor", "project_type"]),
("{date}{project_manager}负责的{project_type}类工程计划详情?",
["date", "project_manager", "project_type"]),
("{date}{team_leader}带领的{project_type}类工程计划有多少?", ["date", "team_leader", "project_type"]),
# 🎯 date + project_name + project_manager
("{date}{project_name}{project_manager}负责的计划有哪些?", ["date", "project_name", "project_manager"]),
# 🎯 date + project_name + risk_level
("{date}{project_name}中,风险等级为{risk_level}的计划有多少?", ["date", "project_name", "risk_level"]),
# 🎯 project_manager 维度
("{project_manager}{date}管理了多少个工程计划?", ["project_manager", "date"]),
("{project_manager}{date}完成的作业计划有哪些?", ["project_manager", "date"]),
("{project_manager}{date}负责的风险等级为{risk_level}作业有哪些?", ["project_manager", "date", "risk_level"]),
# 🎯 趋势 & 统计
("{date}的作业计划总量比上周增长了多少?", ["date"]),
("{date}的作业计划总量比上周减少了多少?", ["date"]),
("{date}{project_type}类工程计划比上周同期增长了多少?", ["date", "project_type"]),
("{date}{project_type}类工程计划比上周同期减少了多少?", ["date", "project_type"]),
("{date}{construction_unit}的作业任务比上周同期增加了多少?", ["date", "construction_unit"]),
("{date}{construction_unit}的作业任务比上周同期减少了多少?", ["date", "construction_unit"]),
("{date}的作业计划中,哪个{project_manager}负责的最多?", ["date", "project_manager"]),
("{date}的作业计划中,哪个{construction_unit}的任务最多?", ["date", "construction_unit"]),
# 🎯 额外变化 & 进度查询
("{date}的所有施工计划中,完成的有多少?", ["date"]),
("{date}的所有施工计划中,未完成的有多少?", ["date"]),
("{date}{project_name}计划完成率是多少?", ["date", "project_name"]),
("{date}{project_type}类工程计划的完成率是多少?", ["date", "project_type"]),
("{date}{construction_unit}的任务完成情况如何?", ["date", "construction_unit"]),
("{date}{project_manager}负责的计划中,完成了多少?", ["date", "project_manager"]),
("{date}{subcontractor}承包的项目进度如何?", ["date", "subcontractor"])
]
},
"日计划作业内容": {
"date": ["今日", "昨日", "2024年5月24日", "5月24日", "24日", "周一", "星期一"],
"templates": [
("{date}{project_name}有哪些作业安排?", ["date", "project_name"]),
("请列出{project_name}{date}的施工内容", ["project_name", "date"]),
("{date}{project_type}类工程计划有哪些?", ["date", "project_type"]),
("{construction_unit}{date}需要完成哪些任务?", ["construction_unit", "date"]),
# 1. 查询特定日期和项目的作业安排
("{date}{project_name}有哪些作业安排?", ["date", "project_name"]),
# 2. 查询特定日期和任务的施工内容
("请列出{project_name}{date}的施工内容", ["project_name", "date"]),
# 3. 查询特定日期和项目类型的工程计划
("{date}{project_type}类工程计划有哪些?", ["date", "project_type"]),
# 4. 查询特定日期和施工单位的任务内容
("{construction_unit}{date}需要完成哪些任务?", ["construction_unit", "date"]),
# 5. 查询特定日期和项目经理的任务安排
("{project_manager}{date}的作业任务有哪些?", ["project_manager", "date"]),
# 6. 查询特定日期和风险等级的任务
("{date}的风险等级为{risk_level}的任务有哪些?", ["date", "risk_level"]),
# 7. 查询特定日期和实施单位的任务内容
("{implementation_organization}{date}的任务内容有哪些?", ["implementation_organization", "date"]),
# 8. 查询特定日期和团队领导的任务安排
("{team_leader}{date}的任务安排是什么?", ["team_leader", "date"]),
# 9. 查询特定日期和项目类型下的高风险任务
("{date}{project_type}类工程中,风险等级为{risk_level}的任务有哪些?", ["date", "project_type", "risk_level"]),
# 10. 查询特定日期和风险等级的任务安排
("{date}风险等级为{risk_level}的任务有哪些?", ["date", "risk_level"]),
# 11. 查询特定日期和施工单位的任务进展
("{construction_unit}{date}的施工进展如何?", ["construction_unit", "date"]),
# 12. 查询特定日期和项目经理完成的任务
("{project_manager}{date}完成了哪些任务?", ["project_manager", "date"]),
# 13. 查询特定日期和项目经理的高风险任务
("{project_manager}{date}的风险等级为{risk_level}的任务有哪些?", ["project_manager", "date", "risk_level"]),
# 14. 查询特定日期和项目名称的任务内容
("请列出{project_name}{date}的所有任务内容", ["project_name", "date"]),
# 15. 查询特定日期和所有任务安排
("{date}的所有任务安排是什么?", ["date"]),
# 16. 查询特定日期和项目进度
("{date}{project_name}项目进度如何?", ["date", "project_name"]),
# 17. 查询特定日期和所有项目的计划安排
("{date}的所有项目计划安排有哪些?", ["date"]),
# 18. 查询特定日期和施工单位工作进展
("{construction_unit}{date}的工作进展是什么?", ["construction_unit", "date"]),
# 19. 查询特定日期的任务完成情况
("{date}的任务按计划完成了吗?", ["date"]),
# 20. 查询特定日期下的所有施工内容
("{date}的所有施工内容有哪些?", ["date"]),
# 21. 查询特定日期下的风险任务安排
("{date}的风险任务有哪些安排?", ["date", "risk_level"]),
# 22. 查询特定日期下实施单位的任务内容
("{implementation_organization}{date}的任务内容是什么?", ["implementation_organization", "date"]),
# 23. 查询特定日期下的高风险项目进度
("{date}的风险等级为{risk_level}的项目进度如何?", ["date", "risk_level"]),
# 24. 查询特定日期和项目类型下的任务内容
("{date}{project_type}类工程任务内容有哪些?", ["date", "project_type"]),
# 25. 查询特定日期和项目负责人负责的任务
("{project_manager}{date}负责的任务有哪些?", ["project_manager", "date"]),
# 27. 查询特定日期和团队的任务安排
("{team_leader}{date}的作业任务有哪些?", ["team_leader", "date"]),
# 30. 查询特定日期和任务优先级
("{date}的高优先级任务有哪些?", ["date"]),
]
},
"周计划作业内容": {
"date": ["本周", "上周", "下周", "过去一周", "未来一周", "最近一周", "本周内", "这一周", "上个星期", "这个星期", "下个星期"],
"templates": [
("{project_type}项目在{date}的工作内容是什么?", ["project_type", "date"]),
("{date}{construction_unit}负责的工程进度如何?", ["date", "construction_unit"]),
("{implementation_organization}{date}的作业项目清单", ["implementation_organization", "date"]),
# 1. 查询某类项目在指定周的工作内容
("{project_type}项目在{date}的工作内容是什么?", ["project_type", "date"]),
# 2. 查询某施工单位在指定周负责的工程进度
("{date}{construction_unit}负责的工程进度如何?", ["date", "construction_unit"]),
# 3. 查询某实施单位在指定周的作业项目清单
("{implementation_organization}{date}的作业项目清单", ["implementation_organization", "date"]),
# 4. 查询某项目在指定周的所有作业计划
("{project_name}{date}的所有作业计划有哪些?", ["project_name", "date"]),
# 5. 查询指定周的所有项目类型作业内容
("{date}{project_type}类工程作业计划有哪些?", ["date", "project_type"]),
# 6. 查询某施工单位在指定周的作业任务
("{construction_unit}{date}的作业任务有哪些?", ["construction_unit", "date"]),
# 7. 查询某项目经理在指定周负责的作业内容
("{project_manager}{date}的作业计划内容是什么?", ["project_manager", "date"]),
# 8. 查询某团队负责人在指定周的作业安排
("{team_leader}{date}的作业计划有哪些?", ["team_leader", "date"]),
# 9. 查询某项目类型在指定周的高风险作业内容
("{date}{project_type}类工程中,风险等级为{risk_level}的作业内容有哪些?", ["date", "project_type", "risk_level"]),
# 10. 查询某风险等级在指定周的作业内容
("{date}风险等级为{risk_level}的作业内容有哪些?", ["date", "risk_level"]),
# 11. 查询某施工单位在指定周的作业进展
("{construction_unit}{date}的作业进展如何?", ["construction_unit", "date"]),
# 12. 查询某项目经理在指定周完成的作业任务
("{project_manager}{date}完成了哪些作业任务?", ["project_manager", "date"]),
# 13. 查询某团队在指定周的作业安排
("{team_leader}领导的团队在{date}的作业计划有哪些?", ["team_leader", "date"]),
# 14. 查询某项目在指定周的作业内容
("请列出{project_name}{date}的作业内容", ["project_name", "date"]),
# 15. 查询某项目部门在指定周的作业安排
("{project_department}{date}的作业计划安排有哪些?", ["project_department", "date"]),
# 16. 查询某实施单位在指定周的作业进展
("{implementation_organization}{date}的作业进展如何?", ["implementation_organization", "date"]),
# 17. 查询某分包商在指定周的作业内容
("{subcontractor}{date}的作业内容是什么?", ["subcontractor", "date"]),
# 18. 查询指定周的所有作业任务安排
("{date}的所有作业安排是什么?", ["date"]),
# 19. 查询指定周的所有施工内容
("{date}的所有施工内容有哪些?", ["date"]),
# 20. 查询某项目经理在指定周负责的高风险作业任务
("{project_manager}{date}负责的风险等级为{risk_level}的作业任务有哪些?", ["project_manager", "date", "risk_level"]),
# 21. 查询某团队负责人在指定周的高风险作业安排
("{team_leader}{date}的风险等级为{risk_level}的作业计划有哪些?", ["team_leader", "date", "risk_level"]),
# 22. 查询指定周内的所有项目计划安排
("{date}的所有项目计划安排有哪些?", ["date"]),
# 23. 查询某项目类型在指定周的施工进度
("{date}{project_type}类工程施工进度如何?", ["date", "project_type"]),
# 24. 查询某项目负责人在指定周负责的作业任务
("{project_manager}{date}负责的作业任务有哪些?", ["project_manager", "date"]),
# 25. 查询某风险等级在指定周的高优先级任务
("{date}的风险等级为{risk_level}的高优先级任务有哪些?", ["date", "risk_level"]),
# 26. 查询某施工单位在指定周的作业安排和进展
("{construction_unit}{date}的作业安排及进展如何?", ["construction_unit", "date"]),
# 27. 查询某实施单位在指定周的计划执行情况
("{implementation_organization}{date}的计划执行情况如何?", ["implementation_organization", "date"]),
# 28. 查询某团队在指定周的已完成作业任务
("{team_leader}{date}已完成的作业任务有哪些?", ["team_leader", "date"]),
# 29. 查询某分包商在指定周负责的任务进度
("{subcontractor}{date}的任务进度如何?", ["subcontractor", "date"]),
# 30. 查询某项目部门在指定周的作业进展情况
("{project_department}{date}的作业进展情况如何?", ["project_department", "date"])
]
},
"施工人数": {
"date": ["本周", "上周", "下周", "过去一周", "最近一周", "本周内", "这一周", "上个星期", "这个星期", "今日", "昨日", "2024年5月24日", "5月24日", "24日", "周一"],
"templates": [
("{date}{project_name}需要多少施工人员?", ["date", "project_name"]),
("统计{construction_unit}{date}的施工总人数", ["construction_unit", "date"]),
("{risk_level}风险项目在{date}的最低配置人数", ["risk_level", "date"]),
# 1. 查询某项目在指定日期需要多少施工人员
("{date}{project_name}需要多少施工人员?", ["date", "project_name"]),
# 2. 统计某施工单位在指定日期的施工总人数
("统计{construction_unit}{date}的施工总人数", ["construction_unit", "date"]),
# 3. 查询某风险等级的项目在指定日期的最低配置人数
("{risk_level}风险项目在{date}的最低配置人数", ["risk_level", "date"]),
# 4. 查询某项目类型在指定日期的施工人员需求
("{date}{project_type}类工程需要多少施工人员?", ["date", "project_type"]),
# 5. 统计某施工单位在指定日期的各项目施工人数
("{construction_unit}{date}负责的各项目施工人数是多少?", ["construction_unit", "date"]),
# 6. 查询某项目在指定日期的不同工种施工人数
("{date}{project_name}各工种施工人数是多少?", ["date", "project_name"]),
# 7. 查询某施工单位在指定日期的施工班组人数
("{construction_unit}{date}的施工班组人数是多少?", ["construction_unit", "date"]),
# 8. 统计某项目经理管理的项目在指定日期的施工总人数
("{project_manager}负责的项目在{date}的施工总人数是多少?", ["project_manager", "date"]),
# 9. 查询某分包商在指定日期的施工人员投入
("{subcontractor}{date}的施工人员投入是多少?", ["subcontractor", "date"]),
# 10. 统计某团队负责人在指定日期管理的施工人员数量
("{team_leader}管理的施工队在{date}的施工人数是多少?", ["team_leader", "date"]),
# 11. 查询某实施单位在指定日期的施工人员总数
("{implementation_organization}{date}的施工人员总数是多少?", ["implementation_organization", "date"]),
# 12. 查询某项目在指定周的施工人员需求
("{project_name}{date}的施工人员需求是多少?", ["project_name", "date"]),
# 13. 查询某施工单位在指定周的施工人员安排
("{construction_unit}{date}的施工人员安排是怎样的?", ["construction_unit", "date"]),
# 14. 统计某风险等级的项目在指定周的施工总人数
("{date}{risk_level}风险项目的施工总人数是多少?", ["date", "risk_level"]),
# 15. 查询某项目在指定日期的作业工种及人数
("{date}{project_name}涉及哪些工种,各工种施工人数是多少?", ["date", "project_name"]),
# 16. 统计某项目部门在指定日期的施工人员数量
("{project_department}{date}的施工人员数量是多少?", ["project_department", "date"]),
# 17. 查询某实施单位在指定周的施工人员投入
("{implementation_organization}{date}的施工人员投入是多少?", ["implementation_organization", "date"]),
# 18. 统计某团队负责人在指定周的施工管理人员总数
("{team_leader}{date}管理的施工队人数是多少?", ["team_leader", "date"]),
# 19. 查询某项目在指定周的施工班组及人数
("{project_name}{date}的施工班组及人数是多少?", ["project_name", "date"]),
# 20. 统计某风险等级项目在指定日期的工种配置情况
("{date}{risk_level}风险项目的各工种配置情况是怎样的?", ["date", "risk_level"]),
# 21. 查询某分包商在指定周的施工人员安排
("{subcontractor}{date}的施工人员安排是怎样的?", ["subcontractor", "date"]),
# 22. 统计某施工单位在指定周的高风险作业人员数量
("{construction_unit}{date}参与风险等级为{risk_level}的作业的施工人数是多少?", ["construction_unit", "date", "risk_level"]),
# 23. 查询某项目经理在指定周负责的项目施工人员总数
("{project_manager}负责的项目在{date}的施工人员总数是多少?", ["project_manager", "date"]),
# 24. 查询某项目在指定日期的夜间施工人员安排
("{project_name}{date}的夜间施工人员安排是多少?", ["project_name", "date"]),
# 25. 统计某施工单位在指定日期的劳务派遣工人数
("{construction_unit}{date}的劳务派遣工人数是多少?", ["construction_unit", "date"]),
# 26. 查询某施工单位在指定周的劳务派遣工安排
("{construction_unit}{date}的劳务派遣工安排是怎样的?", ["construction_unit", "date"]),
# 27. 统计某项目类型在指定日期的施工人员需求
("{date}{project_type}类工程的施工人员需求是多少?", ["date", "project_type"]),
# 28. 统计某施工单位在指定日期的分包队伍施工人数
("{construction_unit}{date}的分包队伍施工人数是多少?", ["construction_unit", "date"]),
# 29. 查询某实施单位在指定日期的工种及人数安排
("{implementation_organization}{date}的工种及人数安排是怎样的?", ["implementation_organization", "date"]),
# 30. 统计某团队负责人在指定日期管理的高风险作业人员总数
("{team_leader}{date}管理的风险等级为{risk_level}的作业人员总数是多少?", ["team_leader", "date", "risk_level"]),
]
},
"作业考勤人数": {
"date": ["本周", "上周", "过去一周", "最近一周", "本周内", "这一周", "上个星期", "这个星期", "今日", "昨日", "2024年5月24日", "5月24日", "24日", "周一"],
"templates": [
("{date}{project_name}实际到岗人数", ["date", "project_name"]),
("查询{subcontractor}{date}的出勤记录", ["subcontractor", "date"]),
("{team_leader}{date}的班组签到人数", ["team_leader", "date"]),
# 1. 查询某项目在指定日期的实际到岗人数
("{date}{project_name}实际到岗人数", ["date", "project_name"]),
# 2. 查询某分包商在指定日期的出勤记录
("查询{subcontractor}{date}的出勤记录", ["subcontractor", "date"]),
# 3. 查询某团队负责人在指定日期的班组签到人数
("{team_leader}{date}的班组签到人数", ["team_leader", "date"]),
# 4. 统计某施工单位在指定日期的考勤人数
("统计{construction_unit}{date}的考勤人数", ["construction_unit", "date"]),
# 5. 查询某实施单位在指定日期的考勤情况
("{implementation_organization}{date}的考勤情况如何?", ["implementation_organization", "date"]),
# 6. 查询某风险等级项目在指定日期的考勤详情
("{date}{risk_level}风险项目考勤详情", ["date", "risk_level"]),
# 7. 统计某项目类型在指定日期的出勤人数
("{date}{project_type}类工程出勤人数是多少?", ["date", "project_type"]),
# 8. 查询某施工单位在指定日期的缺勤人员名单
("{construction_unit}{date}的缺勤人员名单", ["construction_unit", "date"]),
# 9. 查询某项目经理负责的项目在指定日期的总考勤人数
("{project_manager}负责的项目在{date}的考勤人数是多少?", ["project_manager", "date"]),
# 10. 统计某项目在指定周的出勤总人数
("{project_name}{date}的出勤总人数是多少?", ["project_name", "date"]),
# 11. 查询某分包商在指定周的出勤情况
("{subcontractor}{date}的出勤情况如何?", ["subcontractor", "date"]),
# 12. 统计某施工单位在指定周的平均出勤率
("{construction_unit}{date}的平均出勤率是多少?", ["construction_unit", "date"]),
# 13. 查询某团队负责人在指定周管理的班组考勤情况
("{team_leader}{date}管理的班组考勤情况如何?", ["team_leader", "date"]),
# 14. 统计某项目在指定日期的迟到人数
("{project_name}{date}的迟到人数是多少?", ["project_name", "date"]),
# 15. 查询某施工单位在指定日期的早退人员名单
("{construction_unit}{date}的早退人员名单", ["construction_unit", "date"]),
# 16. 统计某实施单位在指定日期的签到率
("{implementation_organization}{date}的签到率是多少?", ["implementation_organization", "date"]),
# 17. 查询某项目部门在指定日期的考勤异常情况
("{project_department}{date}的考勤异常情况", ["project_department", "date"]),
# 18. 统计某项目经理在指定日期管理的施工人员出勤情况
("{project_manager}{date}管理的施工人员出勤情况如何?", ["project_manager", "date"]),
# 19. 查询某项目在指定日期的请假人员名单
("{project_name}{date}的请假人员名单", ["project_name", "date"]),
# 20. 统计某分包商在指定周的缺勤率
("{subcontractor}{date}的缺勤率是多少?", ["subcontractor", "date"]),
# 21. 查询某施工单位在指定周的夜班考勤情况
("{construction_unit}{date}的夜班考勤情况如何?", ["construction_unit", "date"]),
# 22. 统计某高风险项目在指定日期的工人考勤数据
("{date}{risk_level}风险项目工人考勤数据", ["date", "risk_level"]),
# 23. 查询某项目在指定周的出勤率趋势
("{project_name}{date}的出勤率趋势如何?", ["project_name", "date"]),
# 24. 统计某团队负责人在指定周管理的考勤异常情况
("{team_leader}{date}管理的考勤异常情况", ["team_leader", "date"]),
# 25. 查询某项目在指定日期的夜班签到人数
("{project_name}{date}的夜班签到人数是多少?", ["project_name", "date"]),
# 26. 统计某施工单位在指定周的考勤统计汇总
("{construction_unit}{date}的考勤统计汇总", ["construction_unit", "date"]),
# 27. 查询某施工单位在指定日期的工种出勤情况
("{construction_unit}{date}的工种出勤情况", ["construction_unit", "date"]),
# 28. 统计某实施单位在指定周的考勤趋势
("{implementation_organization}{date}的考勤趋势如何?", ["implementation_organization", "date"]),
# 29. 查询某项目在指定日期的无故缺勤人数
("{project_name}{date}的无故缺勤人数是多少?", ["project_name", "date"]),
# 30. 统计某施工单位在指定周的每日出勤情况
("{construction_unit}{date}的每日出勤情况如何?", ["construction_unit", "date"]),
]
},
"页面切换": {
"date": ["本周", "上周", "过去一周", "最近一周", "本周内", "这一周", "上个星期", "这个星期", "今日", "昨日",
"2024年5月24日", "5月24日", "24日", "周一"],
"templates": [
("打开{page}页面", ["page"]),
("进入{page}管理系统", ["page"]),
("查看{page}详情", ["page"]),
("跳转到{page}模块", ["page"]),
("访问{page}数据", ["page"]),
("显示{page}报表", ["page"]),
("加载{page}内容", ["page"]),
("查询{page}记录", ["page"]),
("打开{page}统计页面", ["page"]),
("进入{page}分析页面", ["page"]),
("查看{page}推送情况", ["page"]),
("跳转到{page}统计报表", ["page"]),
("显示{page}历史数据", ["page"]),
("访问{page}调度系统", ["page"]),
("加载{page}作业详情", ["page"]),
("打开{page}风险评估", ["page"]),
("进入{page}计划管理", ["page"]),
("查询{page}执行情况", ["page"]),
("查看{page}的最新信息", ["page"]),
("访问{page}的综合统计", ["page"]),
]
}
}
def generate_natural_samples(config, label):
"""生成自然语言样本"""
samples = []
variable_pool = {
"project_name": BASE_DATA["project_names"],
"project_type": BASE_DATA["project_types"],
"construction_unit": BASE_DATA["construction_units"],
"implementation_organization": BASE_DATA["implementation_organizations"],
"subcontractor": BASE_DATA["subcontractors"],
"team_leader": [f"{tl}" for tl in BASE_DATA["team_leaders"]],
"risk_level": BASE_DATA["risk_levels"],
"date": config["date"],
"project_department": BASE_DATA["project_departments"],
"project_manager": BASE_DATA["project_managers"],
"page": BASE_DATA["pages"]
}
for template, variables in config["templates"]:
for values in product(*[variable_pool[var] for var in variables]):
text = template.format(**dict(zip(variables, values)))
# 生成标注信息
annotations = []
pos = 0
for var, val in zip(variables, values):
start = text.find(val, pos)
if start == -1:
continue
end = start + len(val)
annotations.append({
"text": val,
"start": start,
"end": end,
"label": var
})
pos = end # 更新查找位置避免重复
samples.append({
"text": text,
"annotations": annotations,
"prompt": label
})
# 保存文件
filename = f"data/{label}.json"
with open(filename, "w", encoding="utf-8") as f:
json.dump(samples, f, ensure_ascii=False, indent=2)
print(f"已生成 {len(samples)} 条自然语言 {label} 数据")
# 主执行流程
if __name__ == "__main__":
for label, config in TEMPLATE_CONFIG.items():
generate_natural_samples(config, label)