Prompt_guzhang = """
你是一个故障实体关系抽取专家，根据给出的符合要求html源码，能够抽取出对应的实体以及关系
    "故障模式"实体主要包括以下属性："名称", "故障原因", "故障影响", "故障类型", "发生时间", "处置情况", "修复情况"，“维修方案”
     文本中"故障原因"与故障实体属性相对应，进行对应填充即可，其中"名称"对应于实体的"故障现象"属性，"维修项目"字段内容对应实体的"维修项目"属性；
     每提取一组维修模式，结合故障现象字段对应文本内容分析，找出故障现象所关联的系统并建立对应的实体，并建立“存在”关系
     "系统"实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件"
     如果实体的属性在文本中没有找到，请不要随意添加其他内容，可以为空；其次，抽取的系统实体应来源故障现象字段对应的文本内容中，不要随意添加，也不要将其他记录的故障现象对应别的系统实体中

示例：
输入为：
# 4.2 常见故障表
船舶主发动机的常见故障如下表所示:
表 4.2 常见故障表
<table><tr><td rowspan=1 colspan=1>序号</td><td rowspan=1 colspan=1>故障现象</td><td rowspan=1 colspan=1>故障原因</td><td rowspan=1 colspan=1>维修项目</td></tr><tr><td rowspan=2 colspan=1>1</td><td rowspan=2 colspan=1>机座与机架组件运行中振动异常增大</td><td rowspan=1 colspan=1>主轴承或连杆大端轴承磨损</td><td rowspan=1 colspan=1>执行以下维修项目：MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损</td></tr><tr><td rowspan=1 colspan=1>曲轴主轴颈跳动超差</td><td rowspan=1 colspan=1>执行以下维修项目：MT003检测曲轴主轴颈跳动量</td></tr><tr><td rowspan=2 colspan=1>2</td><td rowspan=2 colspan=1>气缸套排气温度异常升高</td><td rowspan=1 colspan=1>排气阀密封面磨损或阀座烧蚀</td><td rowspan=1 colspan=1>执行以下维修项目：MT011检查排气阀杆密封面磨损MT012更换排气阀座</td></tr><tr><td rowspan=1 colspan=1>涡轮增压器轴承损坏</td><td rowspan=1 colspan=1>执行以下维修项目：MT015更换涡轮增压器轴承组件</td></tr><tr><td rowspan=1 colspan=1>3</td><td rowspan=1 colspan=1>扫气箱内发现润滑油泄漏</td><td rowspan=1 colspan=1>活塞杆填料函密封失效</td><td rowspan=1 colspan=1>执行以下维修项目：MT001保养机座与机架组件</td></tr></table>

输出为：
{{
  "entities": [
        {{
        "type": "故障模式",
        "properties": {{
        "名称": "机座与机架组件运行中振动异常增大",
        "故障原因": "1.主轴承或连杆大端轴承磨损，
                    2. 曲轴主轴颈跳动超差",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "",
        "处置情况": "",
        "修复情况": "",
        "维修方案": "1.执行以下维修项目：MT004 更换连杆大端轴承；MT017 修复连杆大端轴承异常磨损
                    2.执行以下维修项目：MT003 检测曲轴主轴颈跳动量",
        "维修项目": ["MT004","MT017","MT003"]
      }}
    }},
    {{
        "type": "故障模式",
        "properties": {{
        "名称": "气缸套排气温度异常升高",
        "故障原因": "1. 排气阀密封面磨损或阀座烧蚀
                    2.涡轮增压器轴承损坏",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "",
        "处置情况": "",
        "修复情况": "",
        "维修方案": "1.执行以下维修项目：MT011 检查排气阀杆密封面磨损；MT012 更换排气阀座
                    2.执行以下维修项目：MT015 更换涡轮增压器轴承组件",
        "维修项目": ["MT011","MT012","MT015"]
      }}
    }},
    {{
        "type": "故障模式",
        "properties": {{
        "名称": "扫气箱内发现润滑油泄漏",
        "故障原因": "活塞杆填料函密封失效",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "",
        "处置情况": "",
        "修复情况": "",
        "维修方案": "执行以下维修项目：MT001保养机座与机架组件",
        "维修项目": ["MT001"]
      }}
    }},
    {{
        "type": "系统",
        "properties": {{
        "名称": "机座与机架组件",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": "",

      }}
    }},
        {{
        "type": "系统",
        "properties": {{
        "名称": "气缸套",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": "",

      }}
    }},
        {{
        "type": "系统",
        "properties": {{
        "名称": "涡轮增压器",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": "",

      }}
    }},
  ],
  "relationships": [
    {{
      "type": "存在",
      "from_entity": "机座与机架组件",
      "to_entity": "机座与机架组件运行中振动异常增大"
    }},
    {{
      "type": "存在",
      "from_entity": "气缸套",
      "to_entity": "气缸套排气温度异常升高"
    }}
    {{
      "type": "存在",
      "from_entity": "扫气箱",
      "to_entity": "扫气箱内发现润滑油泄漏"
    }},
  ]
}}

确保抽取的故障类实体完整，不要遗漏，"名称"字段不要丢失，也不要胡乱填充其他字段内容
只输出纯JSON，不要任何其他文本、解释或Markdown。
抽取的实体以及实体属性值应严格来源于文本，不可以做任何擅自更改，例如将"排气温度异常升高"更改为"排气温度异常增长"
如果给出的上下文中，无法抽取出"系统"，那么就不需要抽取，也没有对应的关系，即"relationships"为[]
抽取过程中，需要注意html源码多行合并的情况，尤其是故障现象字段值为同一行，但是维修项目和故障原因字段值会有多行，这种情况下，故障实体只有一个，为最近前一行的故障现象，且维修项目和故障原因字段值为多行内容合并的结果。例如”<tr><td rowspan=1 colspan=1>3</td><td rowspan=1 colspan=1>曲轴主轴颈跳动超差</td><td rowspan=1 colspan=1>执行以下维修项目：MT003检测曲轴主轴颈跳动量</td></tr>
<tr><td rowspan=1 colspan=1>4</td><td rowspan=1 colspan=1>飞轮连接螺栓松动</td><td rowspan=1 colspan=1>执行以下维修项目：MT003检测曲轴组件（含飞轮紧固状态检查）</td></tr>",丢失了故障现象，只有故障原因和
维修项目字段内容，那么不需要构建故障实体，而是将对应字段内容合并到前面最近一行存在故障现象的实体。即"<tr><td rowspan=1 colspan=1>2</td><td rowspan=3 colspan=1>主机运行中振动异常增大</td><td rowspan=1 colspan=1>主轴承或连杆大端轴承磨损</td><td rowspan=1 colspan=1>执行以下维修项目：MT004更换连杆大端轴承MT017修复连杆大端轴承异常磨损</td></tr>"
请按照上述示例，对给出的文本进行实体抽取，给出文本为：
{text}
"""


Prompt_compose = """
你是一个系统和子系统实体关系抽取专家，根据给出的符合要求html源码，能够抽取出对应的实体以及关系
     "系统"实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位", "技术状态", "生产日期", "启用时间", "运行时间", "运行条件"
     系统实体与子系统实体存在包含，一般系统由子系统组成
     其中，系统实体主要来源表格html源码之前内容，主要是表格名称等，阐述该系统由表中子系统组成
     "子系统"实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位"
     如果抽取设备以及设备的子零部件，那么它们之间也存在包含关系。

    
示例：
输入为：
以下部分介绍螺旋桨的组成、工作原理、技术指标、接口情况、布置情况，从各方面知悉发动机的基本信息。
# 3.1 组成
![](http://localhost:8000/output/images/26d6810a0ccb7b123a1ee24abf9feab2ccf15894c6874859f9e6544f2ab3667d.jpg)  
图 3.1 螺旋桨组成图
表 3.1 螺旋桨组成部分  
<table><tr><td colspan="1" rowspan="1">房</td><td colspan="1" rowspan="1">组成部分</td><td colspan="1" rowspan="1">功能描述</td><td colspan="1" rowspan="1">数量</td></tr><tr><td colspan="1" rowspan="1"></td><td colspan="1" rowspan="1">桨叶</td><td colspan="1" rowspan="1">核心推进部件，通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。</td><td colspan="1" rowspan="1">通常为3至6叶，最常见为4叶或5叶</td></tr><tr><td colspan="1" rowspan="1">2</td><td colspan="1" rowspan="1">桨毂</td><td colspan="1" rowspan="1">连接和固定所有桨叶的中心壳体，内部包含与尾轴连接的法兰或锥孔。</td><td colspan="1" rowspan="1">1个</td></tr><tr><td colspan="1" rowspan="1">3</td><td colspan="1" rowspan="1">桨毂帽</td><td colspan="1" rowspan="1">安装在桨毂后部的流线型罩盖，用于减少桨毂后部产生的涡流阻力，提升水动力效率。</td><td colspan="1" rowspan="1">1个（非所有螺旋桨标配）</td></tr></tr></table>
输出为：

{{
  "entities": [
        {{
        "type": "系统",
        "properties": {{
        "名称": "螺旋桨",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
      }}
    }},
    {{
        "type": "子系统",
        "properties": {{
        "名称": "桨叶",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "功能": "核心推进部件，通过旋转推动水流产生反作用推力。其翼型、螺距和面积决定了推进效率。"
      }}
    }},
    {{
        "type": "子系统",
        "properties": {{
        "名称": "桨毂",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "功能" : "连接和固定所有桨叶的中心壳体，内部包含与尾轴连接的法兰或锥孔。"
      }}
    }},
    {{
        "type": "子系统",
        "properties": {{
        "名称": "桨毂帽",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "功能" : "安装在桨毂后部的流线型罩盖，用于减少桨毂后部产生的涡流阻力，提升水动力效率。"
      }}
    }},

  ],
  "relationships": [
    {{
      "type": "包含",
      "from_entity": "螺旋桨",
      "to_entity": "桨叶"
    }},
    {{
      "type": "包含",
      "from_entity": "螺旋桨",
      "to_entity": "桨毂"
    }},
    {{
      "type": "包含",
      "from_entity": "螺旋桨",
      "to_entity": "桨毂帽"
    }},
  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
请按照上述示例，对给出的文本进行系统实体抽取，给出文本为：
{text}
"""


Prompt_compose_tujie1= """
你是一个系统、子系统、部件和零部件实体关系抽取专家，根据给出的符合要求html源码，能够抽取出对应的实体以及关系
     "系统"和"子系统"实体主要包括以下属性："名称", "型号", "生产单位", "等级"
     其中，"系统"实体主要来源表格html源码之前内容，主要是表格名称等等内容，例如“表 2.2 FL-3.0 通信风冷装置设备组成表”中主设备为“通信风冷装置设备”
     html表格源码主要阐述该主系统由表中子系统、部件、零部件组成
     表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系，，表中每条记录的"组成编码"字段值代表了其实体类型，
     如果组成编码为2位数字（如02，21），那么应该为子系统实体，如果为4位等数字（如0219等），那么应该为部件实体，同时编码对应的实体存在包含关系
     如果组成编码为6位数字（如021901，021921等），那么应该为一级零部件实体，同时与组成编码为0219的部件实体，存在包含关系
     如果组成编码为8位数字（如02190308，02190316等），那么应该为二级零部件实体，同时与组成编码为021903的一级零部件实体，存在包含关系
     例如表名关联的主系统实体为螺旋桨，表中组成编码字段值01表示螺旋桨的子系统，存在螺旋桨和子系统的包含关系，0101表示组成编码01子系统的部件实体，010101则表示0101组成编码对应部件的一级零部件
     "部件"、"零部件"实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位"

    
示例：
输入为：
# 2.4 组成表示例

如表2.2所示，为FL-3.0通信风冷装置的组成分解示例，首先将该设备分解为2个独立的子设备或部套件，然后再将各子设备或部套件向下分解，分别分析各子设备或部套件是否为关重件或寿命件。设备组成表提交模板见附件一。

表 2.2 FL-3.0 通信风冷装置设备组成表

<table><tr><td>组成编码</td><td>名称</td><td>是否为关重件</td><td>是否为寿命件</td><td>备注</td></tr><tr><td>01</td><td>风冷装置</td><td>否</td><td>否</td><td></td></tr><tr><td>0101</td><td>底座组件</td><td>否</td><td>否</td><td></td></tr><tr><td>0102</td><td>下柜体组件</td><td>否</td><td>否</td><td></td></tr><tr><td>010201</td><td>下框架组件</td><td>否</td><td>否</td><td></td></tr><tr><td>010202</td><td>下面门组件</td><td>否</td><td>否</td><td></td></tr><tr><td>0103</td><td>换热器8P</td><td>是</td><td>否</td><td></td></tr><tr><td>02</td><td>电控箱</td><td>否</td><td>否</td><td></td></tr><tr><td>0201</td><td>箱体</td><td>否</td><td>否</td><td></td></tr></table>

输出为：

{{
  "entities": [
        {{
        "type": "系统",
        "properties": {{
        "名称": "通信风冷设备",
        "型号": "",
        "生产单位": "",
        "等级": "",
      }}
    }},
    {{
        "type": "子系统",
        "properties": {{
        "名称": "风冷装置",
        "型号": "",
        "生产单位": "",
        "等级": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码" ： "01",
        "备注" : ""
      }}
    }},
    {{
        "type": "设备",
        "properties": {{
        "名称": "电控箱",
        "型号": "",
        "生产单位": "",
        "等级": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码" : "02",
        "备注" : ""
      }}
    }},
    {{
        "type": "部件",
        "properties": {{
        "名称": "底座组件",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码" : "0101",
        "备注" : ""
        }}
    }},
    {{
        "type": "部件",
        "properties": {{
        "名称": "下柜体组件",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码" : "0102",
        "备注" : ""
      }}
    }},
    {{
        "type": "一级零部件",
        "properties": {{
        "名称": "下框架组件",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码"  : "010201",
        "备注" : ""
      }}
    }},
        {{
        "type": "一级零部件",
        "properties": {{
        "名称": "下面门组件",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "否",
        "是否为寿命件" : "否",
        "组成编码" :"010202",
        "备注" : ""
      }}
    }},
    {{
        "type": "部件",
        "properties": {{
        "名称": "换热器8P",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "是",
        "是否为寿命件" : "否",
        "组成编码" :"0103",
        "备注" : ""
        }}
    }},
    {{
        "type": "部件",
        "properties": {{
        "名称": "箱体",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "是否为关重件" : "是",
        "是否为寿命件" : "是",
        "组成编码" :"0201",
        "备注" : ""
        }}
    }},
  ],
  "relationships": [
    {{
      "type": "包含",
      "from_entity": "通信风冷设备",
      "to_entity": "风冷装置"
    }},
    {{
      "type": "包含",
      "from_entity": "通信风冷设备",
      "to_entity": "电控箱"
    }},
    {{
      "type": "包含",
      "from_entity": "风冷装置",
      "to_entity": "底座组件"
    }},
    {{
      "type": "包含",
      "from_entity": "风冷装置",
      "to_entity": "下柜体组件"
    }},
        {{
      "type": "包含",
      "from_entity": "下柜体组件",
      "to_entity": "下框架组件"
    }},
    {{
      "type": "包含",
      "from_entity": "下柜体组件",
      "to_entity": "下面门组件"
    }},
    {{
      "type": "包含",
      "from_entity": "风冷装置",
      "to_entity": "换热器8P"
    }},
    {{
      "type": "包含",
      "from_entity": "电控箱",
      "to_entity": "箱体"
    }},
  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
表格前文本中提取到的主设备实体，请不要遗漏
请不要将字段内容任意填充到其他属性值里面
请按照上述示例，对给出的文本进行实体关系抽取，给出文本为：
{text}
"""


Prompt_compose_tujie2 = """
你是一个子系统、部件和零部件实体关系抽取专家，根据给出的符合要求html源码，能够抽取出对应的实体以及关系
     "子系统"实体主要包括以下属性："名称", "型号", "生产单位", "等级"
     html表格源码主要阐述该主系统由表中子系统、部件、零部件组成
     表中表格中组成编码字段值可以分析子系统、部件、一级零部件、二级零部件之间的包含关系，，表中每条记录的"组成编码"字段值代表了其实体类型，
     如果组成编码为2位数字（如02，21），那么应该为子系统实体，如果为4位等数字（如0219等），那么应该为部件实体，同时编码对应的实体存在包含关系
     如果组成编码为6位数字（如021901，021921等），那么应该为一级零部件实体，同时与组成编码为0219的部件实体，存在包含关系
     如果组成编码为8位数字（如02190308，02190316等），那么应该为二级零部件实体，同时与组成编码为021903的一级零部件实体，存在包含关系
     例如表名关联的主系统实体为螺旋桨，表中组成编码字段值01表示螺旋桨的子系统，存在螺旋桨和子系统的包含关系，0101表示组成编码01子系统的部件实体，010101则表示0101组成编码对应部件的一级零部件
     "零部件"实体主要包括以下属性："名称", "型号", "技术责任单位", "生产单位"

    
示例：
输入为：
<table><tr><td rowspan=1 colspan=1>房号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>型号/零件号</td><td rowspan=1 colspan=1>重量(kg)</td><td rowspan=1 colspan=1>数量</td></tr><tr><td rowspan=1 colspan=1>1</td><td rowspan=1 colspan=1>0701</td><td rowspan=1 colspan=1>高温淡水冷却回路</td><td rowspan=1 colspan=1>■</td><td rowspan=1 colspan=1>-</td><td rowspan=1 colspan=1>1</td></tr><tr><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>070101</td><td rowspan=1 colspan=1>高温淡水泵</td><td rowspan=1 colspan=1>KSB Etanorm SYT100-315</td><td rowspan=1 colspan=1>150</td><td rowspan=1 colspan=1>2</td></tr><tr><td rowspan=1 colspan=1>3</td><td rowspan=1 colspan=1>07010101</td><td rowspan=1 colspan=1>泵驱动电机</td><td rowspan=1 colspan=1>Siemens 1LA8 316-4AA</td><td rowspan=1 colspan=1>80</td><td rowspan=1 colspan=1>2</td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr></table>
输出为：

{{
  "entities": [
        {{
        "type": "部件",
        "properties": {{
        "名称": "高温淡水冷却回路",
        "型号/零件号": "",
        "技术责任单位": "",
        "生产单位": "",
        "重量(kg)" : "",
        "数量" : "1",
        "组成编码" :"0701"
        }}
    }},
    {{
        "type": "一级零部件",
        "properties": {{
        "名称": "高温淡水泵",
        "型号/零件号": "KSB Etanorm SYT 100-315",
        "技术责任单位": "",
        "生产单位": "",
        "重量(kg)" : "150",
        "数量" : "2",
        "组成编码" :"070101"
        }}
    }},
    {{
        "type": "二级零部件",
        "properties": {{
        "名称": "泵驱动电机",
        "型号/零件号": "Siemens 1LA8 316-4AA",
        "技术责任单位": "",
        "生产单位": "",
        "重量(kg)" : "80",
        "数量" : "2",
        "组成编码" :"07010101"
        }}
    }},
  ],
  "relationships": [
    {{
      "type": "包含",
      "from_entity": "高温淡水冷却回路",
      "to_entity": "高温淡水泵"
    }},
    {{
      "type": "包含",
      "from_entity": "高温淡水泵",
      "to_entity": "泵驱动电机"
    }},

  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
不要修改表格中内容，避免填充错误的属性值；实体类型严格按照组成编码判断和定义
请按照上述示例，对给出的文本进行实体关系抽取，给出文本为：
text
"""


Prompt_compose_mulu_tujie = """
你是一个专业的HTML表格解析器，请将以下HTML表格转换为标准JSON数组，每行数据对应一个对象，对象的键来自表头（第一行非空<tr>中的<td>文本），值为对应行的单元格内容。

    
示例：
<table><tr><td rowspan=1 colspan=1>序号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>型号/零件号</td><td rowspan=1 colspan=1>重量(kg)</td><td rowspan=1 colspan=1>数量</td></tr><tr><td rowspan=1 colspan=1>1</td><td rowspan=1 colspan=1>01</td><td rowspan=1 colspan=1>螺旋桨本体总成</td><td rowspan=1 colspan=1>CPP-UNIT-8500-4B</td><td rowspan=1 colspan=1>12,500118,000</td><td rowspan=1 colspan=1>1</td></tr><tr><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>02</td><td rowspan=1 colspan=1>轴系与传动总成</td><td rowspan=1 colspan=1>SHAFTING-SYS-8500</td><td rowspan=1 colspan=1>8,000 115,000</td><td rowspan=1 colspan=1>1</td></tr><tr><td rowspan=1 colspan=1>3</td><td rowspan=1 colspan=1>03</td><td rowspan=1 colspan=1>调距机构总成（CPP）</td><td rowspan=1 colspan=1>CPP-MECH-8500</td><td rowspan=1 colspan=1>3,5006,000</td><td rowspan=1 colspan=1>1</td></tr><tr><td rowspan=1 colspan=1>4</td><td rowspan=1 colspan=1>04</td><td rowspan=1 colspan=1>控制系统总成</td><td rowspan=1 colspan=1>CPP-CONTROL-S85</td><td rowspan=1 colspan=1>800     11,500</td><td rowspan=1 colspan=1>1</td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=6>图名：船舶主发动机图解目录</td></tr><tr><td rowspan=1 colspan=6>图号：01</td></tr></table>


输出为：
[
    {{
    "组成编码" : "01",
    "名称" : "螺旋桨本体总成",
    "型号/零件号" : "CPP-UNIT-8500-4B",
    "重量(kg)" : "12,500 - 18,000"
    }},
    {{
    "组成编码" : "02",
    "名称" : "轴系与传动总成",
    "型号/零件号" : "SHAFTING-SYS-8500",
    "重量(kg)" : "8,000 - 15,000"
    }},
    {{
    "组成编码" : "03",
    "名称" : "调距机构总成（CPP）",
    "型号/零件号" : "CPP-MECH-8500",
    "重量(kg)" : "3,500 - 6,000"
    }},
    {{
    "组成编码" : "04",
    "名称" : "控制系统总成",
    "型号/零件号" : "CPP-CONTROL-S85",
    "重量(kg)" : "800 - 1,500"
    }}
]
只输出纯JSON，不要任何其他文本、解释或Markdown。
请按照上述示例，对给出的文本进行抽取，给出文本为：
text
"""


Prompt_anli="""
你是一个专业的装备故障信息结构化抽取助手。请根据以下规则，从提供的故障报告文本中提取“系统”和“故障模式”两类实体，并建立它们之间的关系。
###提取规则如下：
    1、故障模式实体（type: "故障模式"）
        名称：由“装备名称 + 故障关键词”构成，一般来源于文中的故障现象，例如“1号主机冷却系统温度异常升高”。
        properties 字段包括：
        "故障现象"：来自“故障现象”对应的具体描述文字。
        "发生时间"：来自“时间”、"故障时间"字段。
        "维修方案"：来自“三、故障排除”、“# 排除方法”等字段信息。
        "经验总结"：来自“四、经验启示”、“# 启示”等章节字段内容。
        "发生地点": 来自于文字中"地点"字段信息
        除了上述字段，其他字段如“故障原因”“故障影响”“故障类型”“处置情况”“修复情况”等若原文未明确说明，若无法确定，则留空字符串 ""。
    2、系统设备实体（type: "系统"）
        名称 与 properties["名称"] 均取自“装备名称”、“故障设备”等字段信息。
        properties["生产单位"] 取自“单位”字段（如“XX 舰艇保障大队”）。
        其余属性（型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件）若原文未提供，一律留空字符串 ""。
    3、关系（relationships）
        必须包含一条 "具有" 类型的关系：from_entity 为系统设备实体的 名称，to_entity 为故障模式实体的 名称。
        若存在更高层级设备（如“主机系统”包含“冷却系统”），但原文未提及，则不需构造“包含”关系。仅当原文明确有层级结构时才添加。本例中无上级设备，故只保留“存在”关系。
        输出格式严格遵循 JSON 结构，不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象，包含 "entities" 和 "relationships" 两个顶层字段。

### 输出格式要求：
只输出纯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": "设备表面温度超过80℃"
    }}
  ]
}}

示例1：
输入为：
# 一、故障现象

单位:XX 舰艇保障大队

时间:2013 年 05 月 7 日 9 时 23 分 37 秒

舰艇状态:航行中,主机正常运行

装备名称:1 号主机冷却系统

故障现象:1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。

# 二、分析判断

根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下:

(一)冷却液循环泵可能存在异常,导致流量不足;  
(二)热交换器内部堵塞或外部散热片污损,影响散热效率;  
(三)温度传感器或控制系统信号异常,导致误报警。

# 三、故障排除

![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg)


# 图:冷却系统结构简图

# (一)初步检查

关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。

# (二)系统检测

使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。

# (三)故障处理

清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等)

本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议:

(一)定期清洗热交换器与滤网;  
(二)加强日常巡检,特别是高温季节;  
(三)建立冷却系统维护台账,记录清洗与更换周期。

故障二、XXX 型号A 设备A 故障

输出为：
{{
  "entities": [
    {{
      "type": "系统",
      "properties": {{
        "名称": "1 号主机冷却系统",
        "型号": "",
        "技术责任单位": "XX 舰艇保障大队",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": ""
      }}
    }},
    {{
      "type": "故障模式",
      "properties": {{
        "故障现象": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。",
        "故障原因": "根据 A 设备发生的温度异常升高现象,结合相关技术手册与历史故障记录,分析如下:
                (一)冷却液循环泵可能存在异常,导致流量不足;  
                (二)热交换器内部堵塞或外部散热片污损,影响散热效率;  
                (三)温度传感器或控制系统信号异常,导致误报警。
",
        "故障影响": "",
        "故障类型": "",
        "发生时间": "2013 年 05 月 7 日 9 时 23 分 37 秒",
        "处置情况": " ",
        "修复情况": ""，
        "维修方案":"![image](https://cdn-mineru.openxlab.org.cn/result/2026-01-19/8ca2fbe0-d6f4-4062-b40c-bb98b03b5006/fe9fb37249ebdf935ee0d237e447d5de52ac996315f572c343273a679db06785.jpg)
      # 图:冷却系统结构简图
      # (一)初步检查
      关闭主机,检查冷却液液位及管路是否泄漏,确认液位正常、无泄漏。
      # (二)系统检测
      使用便携式流量计检测循环泵输出流量,发现流量低于标准值;拆卸热交换器检查,发现内部有沉积物堵塞。
      # (三)故障处理
      清洗热交换器内部,更换循环泵滤网,重新加注冷却液并排气。启动系统后,温度恢复正常,压力稳定,报警消除。四、经验启示(阐述对于本次故障的经验总结,例如这个故障是不是常发生的故障等)
      本次故障为常见故障类型,多因冷却系统长期运行未及时清洗维护所致。建议:
      (一)定期清洗热交换器与滤网;  
      (二)加强日常巡检,特别是高温季节;  
      (三)建立冷却系统维护台账,记录清洗与更换周期。"
      }}
    }}
  ],
  "relationships": [
    {{
      "type": "存在",
      "from_entity": "1 号主机冷却系统",
      "to_entity": "1 号主机冷却系统温度异常升高,监控面板显示冷却液温度持续超过警戒值$( > 9 5 ^ { \circ } C ) .$ ),伴随系统压力波动,报警指示灯常亮。"
    }}
  ]
}}

抽取的实体以及实体属性值应严格来源于文本，不可以做任何擅自更改，例如将"设备表面温度超过80℃"更改为"设备表面温度超过100℃"
也不应该擅自中英文符号，例如将实体名称"尺寸(长X宽X高mm)"改成实体名称"尺寸（长X宽X高mm）"
输入文本：
text
"""

prompt_extract_repair_node_rela = """
你是一个信息抽取专家，根据给出的符合要求html源码，能够抽取出对应的核心信息
   给你的文本是一段维修项目表，其中维修项目编号代表该维修项目的编号，请抽取出来，编号内容不要随意修改，也不要遗漏，输出为"wxbianhao":"MT001"
   其中维修项目字段代表该维修项目的名称，输出为"维修项目":"检查液压油位、油质与压力"
   其中，组成编码与名称是一一对应的，名称代表该项目使用的设备名称，组成编码代表该设备的编码，也可能有一组或者多组，请进行抽取，抽取格式如下：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "提取到的编号 (如 OT005)",
        "名称": "提取到的维修项目名称"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "组成编码": "提取到的设备组成编码(如 0401)",
        "名称": "提取到的设备名称",
        "维修项目编号" : "提取到的编号 (如 OT005)",
        "维修项目名称": "提取到的维修项目名称"
      }}
    }},
  ],
  "relationships": []
}}
    
示例1：
输入为：
<table><tr><td rowspan=1 colspan=1>维修项目编号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>维修项目</td><td rowspan=1 colspan=1>维修间隔期</td></tr><tr><td rowspan=1 colspan=1>MT021</td><td rowspan=1 colspan=1>0401</td><td rowspan=1 colspan=1>液压动力单元</td><td rowspan=1 colspan=1>检查液压油位、油质与压力</td><td rowspan=1 colspan=1>1D/1W</td></tr></table>

# 安全注意事项

1. 设备运行状态确认与防护：检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境，远离所有旋转部件（如泵轴、风扇、联轴器）和高温表面。衣物须紧束，严禁戴手套靠近旋转部位。若需在运行中检查，应事先规划好安全站位和撤离路线。

2. 防止高压油液喷射与眼部防护：液压系统内存在高压，即使是在检查静止压力时，压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落，导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时，身体不得正对压力表或测压接头正面。

保障设备（工具）、备件、消耗材料、人力人员需求
输出为：

{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "MT021",
        "名称": "检查液压油位、油质与压力",
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "组成编码": "0401",
        "名称": "液压动力单元",
        "维修项目编号" : "MT021",
        "维修项目名称": "检查液压油位、油质与压力"
      }}
    }}
  ],
  "relationships": []
}}

示例2：
输入为：
<table><tr><td rowspan=1 colspan=1>维修项目编号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>维修项目</td><td rowspan=1 colspan=1>维修间隔期</td></tr><tr><td rowspan=1 colspan=1>MT002</td><td rowspan=1 colspan=1>0402/040203</td><td rowspan=1 colspan=1>机座与机架组件/焊接机座组件</td><td rowspan=1 colspan=1>保养机座与机架组件、焊接机座组件</td><td rowspan=1 colspan=1>1D/1W</td></tr></table>

# 安全注意事项

1. 设备运行状态确认与防护：检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境，远离所有旋转部件（如泵轴、风扇、联轴器）和高温表面。衣物须紧束，严禁戴手套靠近旋转部位。若需在运行中检查，应事先规划好安全站位和撤离路线。

2. 防止高压油液喷射与眼部防护：液压系统内存在高压，即使是在检查静止压力时，压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落，导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时，身体不得正对压力表或测压接头正面。

保障设备（工具）、备件、消耗材料、人力人员需求

输出为：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "MT002",
        "名称": "保养机座与机架组件、焊接机座组件"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "编号": "0402",
        "名称": "机座与机架组件",
        "维修项目编号" : "MT002",
        "维修项目名称": "保养机座与机架组件、焊接机座组件"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "编号": "040203",
        "名称": "焊接机座组件",
        "维修项目编号" : "MT002",
        "维修项目名称": "保养机座与机架组件、焊接机座组件"
      }}
    }},
  ],
  "relationships": []
}}

示例3：
输入为：
维修工作卡002 故障名称：阴极过压故障
<table><tr><td rowspan=1 colspan=1>故障现象</td><td rowspan=1 colspan=1>WCC-II的BITE 显示 TR-2</td><td rowspan=6 colspan=1>国021-03阴极稳压电路板</td></tr><tr><td rowspan=1 colspan=1>8故障原因</td><td rowspan=1 colspan=1>&gt;  02-05 阴极电源驱动电源板故障;&gt;  022 高压电源组合故障；→ 021-03 阴极稳压电路板故障。</td></tr><tr><td rowspan=1 colspan=1>维修人数 1</td><td rowspan=1 colspan=1>1~2</td></tr><tr><td rowspan=1 colspan=1>维修工具场</td><td rowspan=1 colspan=1>十字起子，一字起子</td></tr><tr><td rowspan=1 colspan=1>排除步骤</td><td rowspan=1 colspan=1>1将放大链全部关机，打开放大链顶盖，等待5分钟，让高压电源放电。2拔掉插头 XP1F022，更换022高压电源组合。3开机，加高压，若仍不正常，断高压，关机，再等待5分钟，拔掉插头XP1F052和XP2F052,更换02-051和02-052板；4若仍不正常，更换021-03 阴极取样电路板。</td></tr><tr><td rowspan=1 colspan=1>注意事项Q</td><td rowspan=1 colspan=1></td></tr></table>
输出为：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "002",
        "名称": "修复阴极过压故障"
      }}
    }},
    {{
      "type": "设备",
      "properties": {{
        "名称": "阴极",
        "维修项目编号" : "002",
        "维修项目名称": "修复阴极过压故障"
      }}
    }},  
  ],
  "relationships": []
}}
只输出纯JSON，不要任何其他文本、解释或Markdown。
字段不要擅自修改，例如“组成编码”，不应该随意改成“编码”字段
字段值也不要擅自修改，例如"MT021"改成"T021"
请按照上述示例，对给出的文本进行信息抽取，给出文本为：
text
"""


prompt_extract_repair_node_rela1 = """
你是一个信息抽取专家，根据给出的符合要求html源码，能够抽取出对应的核心信息
   给你的文本是一段维修项目表，其中维修项目编号代表该维修项目的编号，请抽取出来，编号内容不要随意修改，也不要遗漏，输出为"编号":"MT001"
   其中维修项目字段代表该维修项目的名称，输出为"维修项目":"检查液压油位、油质与压力",抽取格式如下：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "提取到的编号 (如 OT005)",
        "名称": "提取到的维修项目名称"
      }}
    }}
  ],
  "relationships": []
}}
    
示例1：
输入为：
<table><tr><td rowspan=1 colspan=1>维修项目编号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>维修项目</td><td rowspan=1 colspan=1>维修间隔期</td></tr><tr><td rowspan=1 colspan=1>MT021</td><td rowspan=1 colspan=1>0401</td><td rowspan=1 colspan=1>液压动力单元</td><td rowspan=1 colspan=1>检查液压油位、油质与压力</td><td rowspan=1 colspan=1>1D/1W</td></tr></table>

# 安全注意事项

1. 设备运行状态确认与防护：检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境，远离所有旋转部件（如泵轴、风扇、联轴器）和高温表面。衣物须紧束，严禁戴手套靠近旋转部位。若需在运行中检查，应事先规划好安全站位和撤离路线。

2. 防止高压油液喷射与眼部防护：液压系统内存在高压，即使是在检查静止压力时，压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落，导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时，身体不得正对压力表或测压接头正面。

保障设备（工具）、备件、消耗材料、人力人员需求
输出为：

{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "MT021",
        "名称": "检查液压油位、油质与压力"
      }}
    }}
  ],
  "relationships": []
}}

示例2：
输入为：
<table><tr><td rowspan=1 colspan=1>维修项目编号</td><td rowspan=1 colspan=1>组成编码</td><td rowspan=1 colspan=1>名称</td><td rowspan=1 colspan=1>维修项目</td><td rowspan=1 colspan=1>维修间隔期</td></tr><tr><td rowspan=1 colspan=1>MT002</td><td rowspan=1 colspan=1>0402/040203</td><td rowspan=1 colspan=1>机座与机架组件/焊接机座组件</td><td rowspan=1 colspan=1>保养机座与机架组件、焊接机座组件</td><td rowspan=1 colspan=1>1D/1W</td></tr></table>

# 安全注意事项

1. 设备运行状态确认与防护：检查工作通常在设备运行时或刚停机时进行。必须清楚了解检查点周边环境，远离所有旋转部件（如泵轴、风扇、联轴器）和高温表面。衣物须紧束，严禁戴手套靠近旋转部位。若需在运行中检查，应事先规划好安全站位和撤离路线。

2. 防止高压油液喷射与眼部防护：液压系统内存在高压，即使是在检查静止压力时，压力表接头、阀门或软管也可能因老化或未拧紧而发生突然破裂或脱落，导致高压油液喷射。必须全程佩戴防护眼镜或面罩。检查时，身体不得正对压力表或测压接头正面。

保障设备（工具）、备件、消耗材料、人力人员需求

输出为：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "MT002",
        "名称": "保养机座与机架组件、焊接机座组件"
      }}
    }}
  ],
  "relationships": []
}}

示例3：
输入为：
维修工作卡002 故障名称：阴极过压故障
<table><tr><td rowspan=1 colspan=1>故障现象</td><td rowspan=1 colspan=1>WCC-II的BITE 显示 TR-2</td><td rowspan=6 colspan=1>国021-03阴极稳压电路板</td></tr><tr><td rowspan=1 colspan=1>8故障原因</td><td rowspan=1 colspan=1>&gt;  02-05 阴极电源驱动电源板故障;&gt;  022 高压电源组合故障；→ 021-03 阴极稳压电路板故障。</td></tr><tr><td rowspan=1 colspan=1>维修人数 1</td><td rowspan=1 colspan=1>1~2</td></tr><tr><td rowspan=1 colspan=1>维修工具场</td><td rowspan=1 colspan=1>十字起子，一字起子</td></tr><tr><td rowspan=1 colspan=1>排除步骤</td><td rowspan=1 colspan=1>1将放大链全部关机，打开放大链顶盖，等待5分钟，让高压电源放电。2拔掉插头 XP1F022，更换022高压电源组合。3开机，加高压，若仍不正常，断高压，关机，再等待5分钟，拔掉插头XP1F052和XP2F052,更换02-051和02-052板；4若仍不正常，更换021-03 阴极取样电路板。</td></tr><tr><td rowspan=1 colspan=1>注意事项Q</td><td rowspan=1 colspan=1></td></tr></table>
输出为：
{{
  "entities": [
    {{
      "type": "维修项目",
      "properties": {{
        "编号": "002",
        "名称": "修复阴极过压故障"
      }}
    }},
  ],
  "relationships": []
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
字段不要擅自修改，例如“编号”，不应该随意改成“编码”字段
字段值也不要擅自修改，例如"MT021"改成"T021"
请按照上述示例，对给出的文本进行信息抽取，给出文本为：
text
"""





prompt_extract_operation_node_rela = """
# Role
你是一个专业的信息抽取专家，专门从操作手册的 HTML/文本片段中提取核心操作项目信息。

# Task
请分析给定的文本（包含表格和描述），提取以下两个核心字段：
1. **opebianhao** (操作项目编号)：通常是 "OT" 开头的编号，保持原样，不要修改。一般来源于表中的项目编号字段对应的值
2. **operation_name** (操作项目名称)：该编号对应的具体操作标题。一般来源于表中的操作项目字段对应的值

# Output Format (Strictly Enforced)
你必须且只能输出一个标准的 JSON 对象，格式如下：
{{
  "entities": [
    {{
      "type": "操作项目",
      "properties": {{
        "编号": "提取到的编号 (如 OT005)",
        "名称": "提取到的操作项目名称"
      }}
    }}
  ],
  "relationships": []
}}

# Constraints
1. **严禁**输出 Markdown 代码块标记（如 ```json ... ```），只输出纯 JSON 字符串。
2. **严禁**输出任何解释性文字、前言或后语。
3. 如果文本中包含多个操作项目，请在 "entities" 列表中添加多个对象。
4. 如果无法找到编号或名称，该字段填 null，但仍需保持 JSON 结构完整。
5. **绝对不要**输出类似 `["key": "value"]` 的错误格式，必须使用 `{{"key": "value"}}`。
6. 一般一段文本中只有一个操作项目，所以只有1条记录
# Few-Shot Example

## Input Text
表 4.6 轴系与轴承温度、振动定期巡检与记录
<table><tr><td>项目编号</td><td>操作项目</td></tr><tr><td>OT005</td><td>轴系与轴承温度、振动定期巡检与记录</td></tr></table>
安全防护：佩戴装备。

## Output
{{
  "entities": [
    {{
      "type": "操作项目",
      "properties": {{
        "编号": "OT005",
        "名称": "轴系与轴承温度、振动定期巡检与记录"
      }}
    }}
  ],
  "relationships": []
}}

请按照上述示例，对给出的文本进行信息抽取，给出文本为：
text
"""
prompt_extract_beipinbeijian_node_rela = """
你是一个专业备品备件实体关系抽取专家，根据给出的符合要求html源码，能够抽取出对应的实体以及关系：
###提取规则如下：
    1、备品备件实体（type: "备品备件"）
        "备品备件"实体主要包括以下属性："名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性
        文本中"名称", "型号", "规格", "备件编码", "单件重量", "计量单位", "单机数", "随机数量"等属性与给出html源码表格字段对应的值相对应
    2、设备实体（type: "设备"）
        名称一般来源于表html代码之前的标题或者前文文本信息中
        其余属性（型号、技术责任单位、技术状态、生产日期、启用时间、运行时间、运行条件）若原文未提供，一律留空字符串 ""。
    3、关系（relationships）
        必须包含一条 "存储备用" 类型的关系：from_entity 为设备实体的 名称，to_entity 为备品备件实体的 名称。设备实体一般来原于表格的标题名等信息，而表格中内容则主要为备品备件实体
        若存在更高层级设备（如“主机系统”存储备用“发动机”），但原文未提及，则不需构造“存储备用”关系。仅当原文明确有上下文时才添加。本例中无上级设备，故只保留“存储备用”关系。
        输出格式严格遵循 JSON 结构，不得包含额外解释、注释或 Markdown。仅输出一个 JSON 对象，包含 "entities" 和 "relationships" 两个顶层字段。

    
示例：
输入为：
筏架舷侧门组合装置
备品备件及工具清单

images/d4f3aa8c438ef1fbdc8ff22d1d5b3e275d8e63c53a0c477c53ba72adbae0439e.jpg

<table><tr><td rowspan=2 colspan=1>房号</td><td rowspan=2 colspan=1>备件</td><td rowspan=2 colspan=1>型号</td><td rowspan=2 colspan=1>规格</td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1>尺寸（长宽</td><td rowspan=2 colspan=1></td><td rowspan=1 colspan=2>随机配备数量（90天</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=2>是否可修</td><td rowspan=2 colspan=1>R</td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1>中</td><td rowspan=2 colspan=1>中南</td><td rowspan=2 colspan=1>R</td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1></td><td rowspan=2 colspan=1></td><td rowspan=1 colspan=2>储存要求</td><td rowspan=2 colspan=1>GR</td><td rowspan=2 colspan=1>备注</td></tr><tr><td rowspan=1 colspan=1>舰上</td><td rowspan=1 colspan=1>基地</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>是</td><td rowspan=1 colspan=1>否</td><td rowspan=1 colspan=1>环境</td><td rowspan=1 colspan=1>期限</td></tr><tr><td rowspan=1 colspan=1>1</td><td rowspan=1 colspan=1>筏筒捆扎带组合件</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>套</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>否</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>200</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>长期</td><td rowspan=1 colspan=1>折便换</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>木</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>螺旋扣</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>只</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>香</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>200</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>长</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>长期</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr><tr><td rowspan=1 colspan=1>3</td><td rowspan=1 colspan=1>卸扣</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>只</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>2</td><td rowspan=1 colspan=1>8</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>否</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>2000h</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>长</td><td rowspan=1 colspan=1>折拆换</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1>长</td><td rowspan=1 colspan=1></td><td rowspan=1 colspan=1></td></tr></table>

输出为：
{{
  "entities": [
    {{
      "type": "设备",
      "properties": {{
        "名称": "筏架舷侧门组合装置",
        "型号": "",
        "技术责任单位": "",
        "生产单位": "",
        "技术状态": "",
        "生产日期": "",
        "启用时间": "",
        "运行时间": "",
        "运行条件": ""
      }}
    }},
    {{
      "type": "备品备件",
      "properties": {{
        "名称": "筏筒捆扎带组合件", 
        "规格": "", 
        "型号": "", 
        "图号或标准号或代号": "",
        "计量单位": "套", 
        "单机重量": "", 
        "尺寸(长X宽X高mm)": "", 
        "单机装配数量": "2",
        "随机配备数量(90 天)_舰上":"2",
        "随机配备数量(90 天)_舰上":"",
         "远航配备数量(180天)":"",
        "实物图片电子文档名称": "",
        "MTBF(b)": "200h",
        "生成厂家": "江阴市船舶设备制造有限公司",
        "出厂日期": "",
        "供货周期（天）": "",
        "有效期（月）": "长期",
        "使用寿命（h)": "拆卸时更换",
        "备件箱号": "",
        "储存要求_环境": "",
        "储存要求_期限": "长期",
        "停产后供应方式": ""
      }}
    }},
       {{
      "type": "备品备件",
      "properties": {{
        "名称": "螺旋扣", 
        "规格": "", 
        "型号": "", 
        "图号或标准号或代号": "",
        "计量单位": "只", 
        "单机重量": "", 
        "尺寸(长X宽X高mm)": "", 
        "单机装配数量": "2",
        "随机配备数量(90 天)_舰上":"2",
        "随机配备数量(90 天)_舰上":"",
         "远航配备数量(180天)":"",
        "实物图片电子文档名称": "",
        "MTBF(b)": "200h",
        "生成厂家": "江阴市船舶设备制造有限公司",
        "出厂日期": "",
        "供货周期（天）": "",
        "有效期（月）": "长期",
        "使用寿命（h)": "拆卸时更换",
        "备件箱号": "",
        "储存要求_环境": "",
        "储存要求_期限": "长期",
        "停产后供应方式": ""]
      }}
    }},
       {{
      "type": "备品备件",
      "properties": {{
        "名称": "卸扣", 
        "规格": "", 
        "型号": "", 
        "图号或标准号或代号": "",
        "计量单位": "只", 
        "单机重量": "", 
        "尺寸(长X宽X高mm)": "", 
        "单机装配数量": "2",
        "随机配备数量(90 天)_舰上":"8",
        "随机配备数量(90 天)_舰上":"",
         "远航配备数量(180天)":"",
        "实物图片电子文档名称": "",
        "MTBF(b)": "200h",
        "生成厂家": "江阴市船舶设备制造有限公司",
        "出厂日期": "",
        "供货周期（天）": "",
        "有效期（月）": "长期",
        "使用寿命（h)": "拆卸时更换",
        "备件箱号": "",
        "储存要求_环境": "",
        "储存要求_期限": "长期",
        "停产后供应方式": ""]
      }}
    }}
  ],
  "relationships": [
    {{
      "type": "存储备用",
      "from_entity": "筏架舷侧门组合装置",
      "to_entity": "轴系与轴承温度、筏筒捆扎带组合件"
    }},
    {{
      "type": "存储备用",
      "from_entity": "筏架舷侧门组合装置",
      "to_entity": "螺旋扣"
    }},
    {{
      "type": "存储备用",
      "from_entity": "筏架舷侧门组合装置",
      "to_entity": "卸扣"
    }},
  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
字段不要擅自修改，例如“尺寸(长X宽X高mm)”，不应该随意改成“尺寸”字段
请按照上述示例，对给出的文本进行备品备件实体抽取，给出文本为：
{text}
"""


filter_text_prompt= """
你是一个专业的系统实体属性抽取专家，从给出的文本中按照要求抽取所有系统实体以及对应实体的属性值。
###抽取规则：
   系统实体一般指的是一段文本的核心实体，可能会有多个，也可能只有一个，整个内容和主题都围绕这些核心实体进行阐述
   系统实体主要包括以下属性："名称", "型号", "生产单位", "等级"
   一般系统实体在文本的名称对应属性"名称"，其他三个属性如果文本没有或者无法提取，则默认为空
   根据给出文本，分析围绕这些实体阐述了什么额外内容，这些内容能够提供什么新的属性值，并进行抽取
   如果存在多个系统实体，那么应该分别进行实体以及对应的属性值抽取.请严格遵守该规则
   只需要抽取系统实体名称，如果名称后面有什么编码数字，请不要进行抽取，例如"焊接机座组件（0101）"抽取为"焊接机座组件"
### 输出格式要求：
- 必须返回标准的 JSON 数组格式
- 即使只有一个实体，也必须用数组包裹
- 每个数组元素是一个对象，包含 "type" 和 "properties" 字段
- 禁止输出任何解释性文字、Markdown 标记或其他非 JSON 内容

### 示例1（单实体）：
输入文本：
1  安全警告
本章用于提示船舶主发动机在运行、检查及维修过程中可能存在的危险因素，明确最低安全防护要求及违规操作可能造成的后果。所有参与运行与维修的人员必须严格遵守本章规定。
1.1  警告
1)主发动机属于高温、高压、高转动惯量设备，维修作业前必须完全停车、盘车确认、挂牌隔离。
2)严禁在主机带压、带温、带电状态下进行任何拆卸作业，否则可能造成人员伤亡。
3)燃油系统、高压油泵及喷油器为高压精密部件，误操作可能导致高压喷射伤害。
4)吊装曲轴、活塞、气缸盖等重件时，必须使用额定载荷合格的吊具并设置专人指挥。
1.2  注意
1)所有更换件必须使用原厂或等同技术条件的认可备件。
2)防冻液含碱。请避免接触皮肤和眼睛，以免造成 人身伤害。
3)为自身安全考虑，请佩带防护设备：头盔、面罩、安全靴、防护镜、厚手套、护耳等。
4)如果发动机周围环境中存在疑似燃烧介质（如燃油、润滑油或液化石油汽）泄漏或排放，请不要启动或继续运行发动机。
5)拆装过程中严禁敲击精密偶件（如喷油嘴、柱塞偶件）。
6)所有密封件（O形圈、金属密封环）拆装必换。
7)紧固件必须按规定力矩和顺序紧固。
8)起吊时应使用固定在发电机组上的吊耳。请始终检查起吊设备是否处于良好状态和有足够的起吊能力（发动机以及安装的各种附件的重量）。为安全起见，应使用可调节的梁式吊具。所有吊链和缆绳应彼此平行并尽可能与发动机顶部垂直。请注意安装在发动机上的辅助设备会改变发动机的重心。因此，为了保持平衡和确保安全起见，可能需要使用专门的起吊设备。切勿在悬挂于起重设备上且没有任何支撑的发动机上进行工作。重要事项！发动机只能水平起吊。
思考：这段文本提到了”冷水机组“，文本中标题为"警告"，根据文本内容可以分析，主要阐述了冷水机组在使用和维修期间过程中需要注意的警告事项
，因此只有一个系统实体，"名称"属性值应该为"冷水机组",同时可以增加"使用过程中警告事项"属性，综合分析，输出如下：
{{
  "entities": [
    {{
        "type": "安全警告",
        "properties": {{
            "名称": "设备名+安全警告",
            "内容": "1)严禁带电维修、保养设备！\\n2)为了防止电力冲击造成组件击穿，并可能导致伤害或死亡，本设备必须安全、可靠接地！",
            "切片":
        }}
    }},
]
}}

### 示例2（多实体：
输入文本：
#2.1 主要功能
船舶主发动机为低速二冲程船用推进柴油机，是船舶推进系统的核心动力装置，其主要功能是将燃油化学能转化为机械能，通过曲轴输出转矩，驱动推进轴系和螺旋桨，实现船舶航行。
发动机主要由以下子系统组成：
1) 焊接机座组件（0101）：承载与结构支撑；  
2) 曲柄连杆机构：实现往复—旋转运动转换；  
3) 燃烧室部件：完成燃烧做功；  
4) 排气阀驱动系统：控制废气排放；  
5) 燃油喷射系统：完成燃油定时、定量喷射；  
6) 扫气与增压系统：提高换气效率与功率密度。

思考：这段文本首先提到了”船舶主发动机“，文本中标题为"主要功能"，根据文本内容可以分析，首先"船舶主发动机为低速二冲程船用推进柴油机，是船舶推进系统的核心动力装置，其主要功能是将燃油化学能转化为机械能，通过曲轴输出转矩，驱动推进轴系和螺旋桨，实现船舶航行。"阐述了船舶主发动机主要功能;
接着通过"发动机主要由以下子系统组成"可以得知还有多个系统实体，该文本主要描述了系统实体"主要功能"，因此"1) 机座与机架组件：承载与结构支撑；  
2) 曲柄连杆机构：实现往复—旋转运动转换；  
3) 燃烧室部件：完成燃烧做功；  
4) 排气阀驱动系统：控制废气排放；  
5) 燃油喷射系统：完成燃油定时、定量喷射；  
6) 扫气与增压系统：提高换气效率与功率密度。
"可以分析出，曲柄连杆机构、燃烧室部件、排气阀驱动系统等也可以抽取为系统实体，同时后面对应内容描述该系统实体的主要功能。综上分析，可以抽取实体以及属性如下：
{{
  "entities":[
    {{
        "type": "系统",
        "properties": {{
            "名称": "船舶主发动机",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "将燃油化学能转化为机械能，通过曲轴输出转矩，驱动推进轴系和螺旋桨，实现船舶航行",
            "类型": "低速二冲程船用推进柴油机",
            "组成": "机座与机架组件、曲柄连杆机构、燃烧室部件、排气阀驱动系统、燃油喷射系统、扫气与增压系统"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "机座与机架组件",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "承载与结构支撑"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "曲柄连杆机构",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "实现往复—旋转运动转换"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "燃烧室部件",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "完成燃烧做功"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "排气阀驱动系统",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "控制废气排放"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "燃油喷射系统",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "完成燃油定时、定量喷射"
        }}
    }},
    {{
        "type": "系统",
        "properties": {{
            "名称": "扫气与增压系统",
            "型号": "",
            "生产单位": "",
            "等级": "",
            "功能": "提高换气效率与功率密度"
        }}
    }}
]
}}
只输出纯JSON，不要任何其他文本、解释或Markdown。
请按照上述示例，对给出的文本进行实体抽取，给出文本为：
text
"""
zhangjie_prompt = """
你是一个专业的技术文档结构化提取专家。给出的文本是从技术手册中按章节切出的一个片段，已用 # 符号标记标题层级：
- `#` 开头：一级章节标题（含编号，如 `#1 概述`、`#2.3 工作原理`）
- `##` 开头：二级章节标题（含编号，如 `##1.1 主要功能`）
- 无前缀：正文内容、表格或图片说明

### 提取规则：

**情况一：输入包含一级标题（`#` 开头）**
- 提取 1 个实体
- `type` = 一级标题去掉编号和首尾空格，例如 `#1 概述` → type 为 `概述`
- `properties` 按以下规则构建：
  - `名称`：留空字符串 ""（由外部代码填充，请勿自行填写）
  - 一级标题之后、第一个二级标题之前的正文 → 属性键为 `概述`
  - 每个二级标题（去掉编号和首尾空格）→ 属性键，该标题下的正文 → 属性值
  - 如果没有任何二级标题，全部正文 → 属性键为 `内容`
  - 属性值为空时不输出该属性

**情况二：输入只有二级标题（`##` 开头，无一级标题）**
- 提取 1 个实体
- `type` = 二级标题去掉编号和首尾空格，例如 `##3.1 液压系统` → type 为 `液压系统`
- `properties`：`名称` 留空，正文内容 → 属性键为 `内容`

### 输出格式：
- 必须返回标准 JSON，包含 `entities` 数组
- 禁止输出 relationships、解释文字、Markdown 标记
- 属性值保留原文，不要改写或压缩

### 示例1（含二级标题的一级章节）：
输入文本：
#1 概述
本章介绍发动机的基本情况。
##1.1 主要使用用途及适用范围
本发动机主要用于船舶推进，适用于各类远洋货轮。
##1.2 主要规格及参数
额定功率：12000kW，转速：91rpm，气缸数：8。

输出：
{{
  "entities": [
    {{
      "type": "概述",
      "properties": {{
        "名称": "",
        "概述": "本章介绍发动机的基本情况。",
        "主要使用用途及适用范围": "本发动机主要用于船舶推进，适用于各类远洋货轮。",
        "主要规格及参数": "额定功率：12000kW，转速：91rpm，气缸数：8。"
      }}
    }}
  ]
}}

### 示例2（无二级标题的一级章节）：
输入文本：
#3 工作原理
发动机采用二冲程低速工作方式，活塞向下运动时扫气口打开，新鲜空气扫入气缸，废气经排气阀排出。

输出：
{{
  "entities": [
    {{
      "type": "工作原理",
      "properties": {{
        "名称": "",
        "内容": "发动机采用二冲程低速工作方式，活塞向下运动时扫气口打开，新鲜空气扫入气缸，废气经排气阀排出。"
      }}
    }}
  ]
}}

### 示例3（仅二级标题，特殊章节切片）：
输入文本：
##4.2 燃油系统
燃油系统由高压油泵、喷油器、燃油管路组成，负责将燃油定时定量喷入气缸。
系统工作压力为900bar，喷油正时由电控单元控制。

输出：
{{
  "entities": [
    {{
      "type": "燃油系统",
      "properties": {{
        "名称": "",
        "内容": "燃油系统由高压油泵、喷油器、燃油管路组成，负责将燃油定时定量喷入气缸。\\n系统工作压力为900bar，喷油正时由电控单元控制。"
      }}
    }}
  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
请按照上述规则，对给出的文本进行章节实体提取，给出文本为：
{{{text}}}
"""


toc_prompt = """
你是一个专业的技术文档结构化提取专家。给出的文本是技术手册的目录页内容。

### 任务：
从目录中提取所有**一级章节**的编号和名称。

### 规则：
- 一级章节：编号格式为单个数字，如 `1`、`2`、`3`（不含小数点的编号）
- 去掉编号、页码、点线，只保留章节名称文字
- **保留所有章节，不要过滤任何章节**

### 输出格式：
```json
{{
  "chapters": [
    {{"numbering": "1", "type": "章节名1"}},
    {{"numbering": "2", "type": "章节名2"}}
  ]
}}
```

### 示例：
目录内容：
1 安全警告 .............. 4
2 概述 .................. 8
  2.1 主要使用用途 ....... 9
  2.2 主要规格及参数 ..... 10
3 工作原理 .............. 15
4 维修工作指导 .......... 20
5 组成、技术特征及接口 .. 25

输出：
{{
  "chapters": [
    {{"numbering": "1", "type": "安全警告"}},
    {{"numbering": "2", "type": "概述"}},
    {{"numbering": "3", "type": "工作原理"}},
    {{"numbering": "4", "type": "维修工作指导"}},
    {{"numbering": "5", "type": "组成、技术特征及接口"}}
  ]
}}

只输出纯JSON，不要任何其他文本、解释或Markdown。
请从以下目录内容中提取一级章节：
{{{text}}}
"""


