import json

excel = {
    "备品备件": ["名称","型号","规格","单机装配数量","库存数量"],
    "故障汇总"  :  ["序号","故障描述","故障发现时间","故障装备型号","船舰型号","船舰舷号","列装单位","修理单位","修理人员","所用仪器列表","更换器材","故障原因分析","修理用时","修后体会"
]
}
prompt_type_excel = f"""
你是一个表格识别助手，能够根据要求快速的识别出表格所对应的类型
###识别规则
1.excel表格会转换为对应的json键值对形式数据，你要是通过识别json数据中的字段，通过字段识别出表格所存在的类型
2.目前主要的表格类型以及包含的主要字段如下：
{excel}
3.请结合上述给你的信息，判断给出的表格json数据属于哪一种类型，主要判断是否存在上述主要字段，然后判断是否为上述表格
4.如果不符合上述表格类型，请输出类型为：其他，不一定完全属于上述两种表格类型之一
5.请快速的输出表格类型，输出格式如下：
{{
  "type" : "备品备件"
}}
###【表格数据】为：
{{text}}
"""



prompt_beipinbeijian = """
你是一个信息抽取模型。
请从给定的表格结构化 JSON 中，抽取【实体】和【实体关系】。
【抽取要求】
1. 仅基于输入内容，不允许编造
2. 实体类型只有设备和备品备件
3. 关系类型只有设备信息
4. 每个实体必须包含：
   - type
   - 名称
   - properties
5. 关系必须包含：
   - type
   - from_entity
   - to_entity
6. 输出必须是严格 JSON，不要解释性文本。
7. 设备实体只在header字段中,设备的属性为空，设备名去除备品备件后的结果。
8. 备品备件实体在content字段中,名称为备品备件名称,备品备件的属性为content字段中所有信息，其中"名称"属性一定要存在于properties中，名称一般来源于备品备件名称
9  不要增加没有必要的属性，如果某些属性为空，也不要随意添加

【输出格式】
{{
  "entities": [
    {{
      "type": "设备",
      "properties": {{
        "名称": "舰船主发动机",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": ""
      }}
    }},
    {{
      "type": "备品备件",
      "properties": {{
        "名称": "排气阀",
        "型号": "PV-100",
        "规格": "通径100mm",
        "图号或标准号或代号": "PF-112-06",
        "计量单位": "个",
        "单机重量": "5.5",
        "尺寸（长X宽X高mm）": "150x150x200",
        "单机装配数量": "4",
        "随机装配数量（90天）_舰上": "4",
        "随机装配数量（90天）_基地": "4",
        "远航配备数量（180）": "16",
        "是否可修_是": true,
        "是否可修_否": "",
        "实物图片电子文档名称": "",
        "MTBF(b)": "18000",
        "生成厂家": "中国船舶工业",
        "出厂日期": "2023-07-01 00:00:00",
        "供货周期（天）": "50",
        "有效期（月）": "36",
        "使用寿命（h)": "35000",
        "备件箱号": "C-05",
        "储存要求_环境": "密封包装，温度-10~50°C，湿度≤65%",
        "储存要求_期限": "36个月",
        "停产后供应方式": "提供同类替代产品",
        "备注": "需定期清理积碳"
      }}
    }}
  ],
  "relationships": [
    {{
      "type": "存储备用",
      "from_entity": "舰船主发动机",
      "to_entity": "排气阀"
    }}
  ]
}}

【表格数据】
text
"""

prompt_guzhanghuizong = """
你是一个信息抽取模型。
请从给定的表格结构化 JSON 中，抽取【实体】和【实体关系】。
【抽取要求】
1. 仅基于输入内容，不允许编造
2. 实体类型只有设备、系统、故障、舰艇和修理方案
其中故障类实体主要包括以下属性："名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"
设备类实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件"
系统类实体主要包括以下属性："名称", "技术责任单位", "生产单位", "级别"
舰艇类实体主要包括以下属性："名称", "型号", "舷号", "设计单位", "总装工厂", "所属部队"
修理方案类实体主要包括以下属性："名称", "修理人员", "修理时间", "修理工具", "备品备件", "修理类型", "维修项目"
一般故障类实体的"名称"属性来源于"故障描述"字段，"故障原因"属性来源于"故障原因分析"字段，发生时间对应故障发现时间
设备类和系统类实体中"名称"来源于"故障描述"中所提到的实体，所以你应该仔细判断是否存在相关的设备和系统实体名称，进行属性填充，型号对应于故障装备型号
船舰型号、船舰舷号对应于舰艇类实体的"名称", "型号", "舷号"，即名称和型号都为舰艇型号，弦号对应于船舰舷号，列装单位建立对应的新字段
修理方案中名称属性主要对应更换器材字段内容，修理人员和所用仪器列表分别对应于"修理人员"和"修理工具"属性
3. 关系主要是：
{
        "包含": ["舰艇包含系统", "系统包含设备", "设备包含零部件", "修理包含维修项目"],
        "解决": ["修理方案解决故障"],
        "具有": ["设备具有故障", "零部件具有故障"]
}
4. 不要增加没有必要的属性，如果某些属性为空，也不要随意添加
5. 输出格式要求：
只输出纯JSON，不要任何其他文本、解释或Markdown。结构如下：
{{
  "entities": [
    {{
      "type": "设备",
      "properties": {{
        "名称": "通信风冷设备",
        "型号": "FL-2000",
        "技术责任单位": "701所",
        "生产单位": "沪东重机",
        "技术状态": "正常",
        "生产日期": "2021-08",
        "启用时间": "2022-01",
        "运行时间": "5000小时",
        "运行条件": "舱内通风良好，无腐蚀性气体"
      }}
    }},
    {{
      "type": "故障",
      "properties": {{
        "故障现象": "设备表面温度超过80℃",
        "故障原因": "散热风扇停转",
        "故障影响": "导致通信设备降频",
        "故障类型": "硬件故障",
        "发生时间": "2024-11-15",
        "处置情况": "切换备用风机",
        "修复情况": "更换风扇电机"
      }}
    }}
  ],
  "relationships": [
    {{
      "type": "包含",
      "from_entity": "通信风冷设备",
      "to_entity": "风冷装置"
    }},
    {{
      "type": "具有",
      "from_entity": "风冷装置",
      "to_entity": "风冷装置过热"
    }}
  ]
}}

示例：
输入为：
[
  {
    "content": {
      "序号": "1",
      "故障描述": "火控雷达显示数据异常，与实际值偏差较大",
      "故障发现时间": "2025-02-17 08:41",
      "故障装备型号": "FCR-3202",
      "船舰型号": "052D型驱逐舰",
      "船舰舷号": "115",
      "列装单位": "东海舰队某驱逐舰支队",
      "修理单位": "舰队某机动修理队",
      "修理人员": "何军",
      "所用仪器列表": "导航系统校准仪,GPS模拟器,惯性导航测试仪",
      "更换器材": "燃油滤清器,机油泵,传动齿轮",
      "故障原因分析": "电压波动造成电子元件损坏",
      "修理用时": "4小时34分钟",
      "修后体会": "故障排除彻底，设备运行稳定，各项参数正常",
      "其他": "建议定期进行设备全面检测，提前发现隐患",
      "图片": "待上传"
    }
  },
  {
    "content": {
      "序号": "79",
      "故障描述": "雷达系统显示数据异常，与实际值偏差较大",
      "故障发现时间": "2025-08-25 15:23",
      "故障装备型号": "RD-8856",
      "船舰型号": "052D型驱逐舰",
      "船舰舷号": "117",
      "列装单位": "南海舰队某护卫舰支队",
      "修理单位": "北海舰队装备保障大队",
      "修理人员": "王强，马丽，胡琳",
      "所用仪器列表": "导航系统校准仪,GPS模拟器,惯性导航测试仪",
      "更换器材": "雷达天线,发射模块,电源板",
      "故障原因分析": "使用环境恶劣，盐雾腐蚀部件",
      "修理用时": "6小时38分钟",
      "修后体会": "更换部件质量良好，设备性能恢复至出厂水平",
      "其他": "设备已连续工作1800小时，建议适当停机保养",
      "图片": "待上传"
    }
  }
]

输出为：
{{
  "entities": [
    {{
      "type": "舰艇",
      "properties": {{
        "名称": "052D型驱逐舰_115",
        "型号": "052D型驱逐舰",
        "舷号": "115",
        "设计单位": "",
        "总装工厂": "",
        "所属部队": "",
        "列装单位": "东海舰队某驱逐舰支队"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "名称": "火控雷达",
        "型号": "FCR-3202",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": ""
      }}
    }},
    {{
      "type": "故障",
      "properties": {{
        "名称": "火控雷达显示数据异常，与实际值偏差较大",
        "故障原因": "电压波动造成电子元件损坏",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "2025-02-17 08:41",
        "处置情况": "",
        "修复情况": ""
      }}
    }},
    {{
      "type": "修理方案",
      "properties": {{
        "名称": "燃油滤清器,机油泵,传动齿轮",
        "修理人员": "何军",
        "修理时间": "",
        "修理工具": "导航系统校准仪,GPS模拟器,惯性导航测试仪",
        "备品备件": "",
        "修理类型": "",
        "维修项目": "",
        "修后体会": "故障排除彻底，设备运行稳定，各项参数正常",
        "修理用时": "4小时34分钟",
        "修理单位": "舰队某机动修理队"
      }}
    }},
    {{
      "type": "舰艇",
      "properties": {{
        "名称": "052D型驱逐舰_117",
        "型号": "052D型驱逐舰",
        "舷号": "117",
        "设计单位": "",
        "总装工厂": "",
        "所属部队": "",
        "列装单位": "南海舰队某护卫舰支队"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "名称": "雷达系统",
        "型号": "RD-8856",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": ""
      }}
    }},
    {{
      "type": "故障",
      "properties": {{
        "名称": "雷达系统显示数据异常，与实际值偏差较大",
        "故障原因": "使用环境恶劣，盐雾腐蚀部件",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "2025-08-25 15:23",
        "处置情况": "",
        "修复情况": ""
      }}
    }},
    {{
      "type": "修理方案",
      "properties": {{
        "名称": "雷达天线,发射模块,电源板",
        "修理人员": "王强，马丽，胡琳",
        "修理时间": "",
        "修理工具": "导航系统校准仪,GPS模拟器,惯性导航测试仪",
        "备品备件": "",
        "修理类型": "",
        "维修项目": "",
        "修后体会": "更换部件质量良好，设备性能恢复至出厂水平",
        "修理用时": "6小时38分钟",
        "修理单位": "北海舰队装备保障大队"
      }}
    }}
  ],
  "relationships": [
    {{
      "type": "包含",
      "from_entity": "052D型驱逐舰",
      "to_entity": "火控雷达"
    }},
    {{
      "type": "具有",
      "from_entity": "火控雷达",
      "to_entity": "火控雷达显示数据异常，与实际值偏差较大"
    }},
    {{
      "type": "解决",
      "from_entity": "燃油滤清器,机油泵,传动齿轮",
      "to_entity": "火控雷达显示数据异常，与实际值偏差较大"
    }},
    {{
      "type": "包含",
      "from_entity": "052D型驱逐舰_117",
      "to_entity": "雷达系统"
    }},
    {{
      "type": "具有",
      "from_entity": "雷达系统",
      "to_entity": "雷达系统显示数据异常，与实际值偏差较大"
    }},
    {{
      "type": "解决",
      "from_entity": "雷达天线,发射模块,电源板",
      "to_entity": "雷达系统显示数据异常，与实际值偏差较大"
    }}
  ]
}}

输入文本：
text
"""

