654 lines
41 KiB
Python
654 lines
41 KiB
Python
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)
|