Forráskód Böngészése

feat: 新增 CERT、TITLE、POLICY 三种实体类型

根据安全生产标准化复审报告原文分析,新增实体类型:

1. CERT(证书资质)🏆 #f5222d
   - 资质证书、等级认证、荣誉称号
   - 示例:"电力安全生产标准化一级企业证书"、"工程设计综合甲级"

2. TITLE(职务职称)👔 #fa541c
   - 行政职务、专业职称、岗位名称
   - 示例:"董事长"、"总经理"、"安全总监"

3. POLICY(政策法规)⚖️ #a0d911
   - 法律、法规、条例、办法名称
   - 示例:"安全生产法"、"企业安全生产费用提取和使用管理办法"

同时优化:
- ORG 类型扩展支持内部部门(如"安全质量环保部"、"安委会")
- 完善各类型的包含/不包含说明
何文松 1 hónapja
szülő
commit
a68b5480e2

+ 16 - 3
backend/graph-service/src/main/java/com/lingyue/graph/constant/EntityTypeConstants.java

@@ -33,6 +33,9 @@ public final class EntityTypeConstants {
             Map.entry("project", "项目"),
             Map.entry("method", "标准规范"),
             Map.entry("doc_id", "文件编号"),
+            Map.entry("cert", "证书资质"),
+            Map.entry("title", "职务职称"),
+            Map.entry("policy", "政策法规"),
             Map.entry("other", "其他")
     );
     
@@ -55,6 +58,9 @@ public final class EntityTypeConstants {
             Map.entry("project", "📋"),
             Map.entry("method", "📖"),
             Map.entry("doc_id", "📄"),
+            Map.entry("cert", "🏆"),
+            Map.entry("title", "👔"),
+            Map.entry("policy", "⚖️"),
             Map.entry("other", "📌")
     );
     
@@ -77,6 +83,9 @@ public final class EntityTypeConstants {
             Map.entry("project", "#faad14"),
             Map.entry("method", "#9254de"),
             Map.entry("doc_id", "#597ef7"),
+            Map.entry("cert", "#f5222d"),
+            Map.entry("title", "#fa541c"),
+            Map.entry("policy", "#a0d911"),
             Map.entry("other", "#8c8c8c")
     );
     
@@ -98,15 +107,19 @@ public final class EntityTypeConstants {
             Map.entry("entity", "Entity"),
             Map.entry("project", "Project"),
             Map.entry("method", "Method"),
-            Map.entry("doc_id", "DocumentId")
+            Map.entry("doc_id", "DocumentId"),
+            Map.entry("cert", "Certificate"),
+            Map.entry("title", "Title"),
+            Map.entry("policy", "Policy")
     );
     
     /**
      * 预定义的类型排序顺序
      */
     public static final java.util.List<String> TYPE_ORDER = java.util.List.of(
-            "entity", "concept", "project", "method", "doc_id", "data", "number", "money", 
-            "person", "org", "loc", "location", "date", "device", "term", "other"
+            "entity", "concept", "project", "method", "policy", "doc_id", "cert", 
+            "data", "number", "money", "person", "title", "org", "loc", "location", 
+            "date", "device", "term", "other"
     );
     
     /**

+ 4 - 1
python-services/ner-service/app/config.py

@@ -50,7 +50,7 @@ class Settings(BaseSettings):
     # 注意:这些类型名需要与 prompt 中的定义一致
     entity_types: List[str] = [
         "PERSON",   # 人名(包含职务+姓名)
-        "ORG",      # 机构/组织(完整名称)
+        "ORG",      # 机构/组织/部门(完整名称)
         "LOC",      # 地点/位置
         "DATE",     # 日期/时间
         "NUMBER",   # 有意义的数值(带单位,非章节号)
@@ -58,6 +58,9 @@ class Settings(BaseSettings):
         "PROJECT",  # 项目/工程名称
         "METHOD",   # 方法/标准/规范名称
         "DOC_ID",   # 文件编号/标准编号
+        "CERT",     # 证书/资质/等级
+        "TITLE",    # 职务/职称
+        "POLICY",   # 政策法规名称
     ]
     
     # 日志配置

+ 22 - 7
python-services/ner-service/app/services/deepseek_service.py

@@ -76,10 +76,10 @@ class DeepSeekService:
    - 包括:姓名、职务+姓名(如"张总"、"李工程师")
    - 不包括:职位本身(如"经理"、"主任")
 
-2. **ORG** - 机构/组织
-   - 包括:公司、政府机关、协会、院校等完整名称
-   - 例如:"中国电建集团成都勘测设计研究院有限公司"、"国家能源局"
-   - 不包括:简称(如"公司"、"集团"),除非是特定缩写(如"成都院")
+2. **ORG** - 机构/组织/部门
+   - 包括:公司、政府机关、协会、院校、内部部门、委员会
+   - 例如:"中国电建集团成都勘测设计研究院有限公司"、"国家能源局"、"安全质量环保部"、"人力资源部"、"安委会"
+   - 不包括:泛指的简称(如"公司"、"集团"),除非是特定缩写(如"成都院"、"股份公司")
 
 3. **LOC** - 地点/位置
    - 包括:省市区县、具体地址、工程位置
@@ -110,9 +110,24 @@ class DeepSeekService:
    - 例如:"OA系统"、"QHSE系统"、"造槽机"
 
 9. **DOC_ID** - 文件编号/标准编号
-   - 包括:文件编号、标准编号、规范编号、合同编号、项目编号
-   - 例如:"AY-BZ-0092-2024-Z01"、"SQE.01C0213"、"中电建股〔2019〕122号"、"ZGDIDBOY-083"、"中电建协〔2014〕24号文"
-   - 特征:通常包含字母、数字、连字符、年份等组合
+   - 包括:文件编号、标准编号、规范编号、合同编号、项目编号、证书编号
+   - 例如:"AY-BZ-0092-2024-Z01"、"SQE.01C0213"、"中电建股〔2019〕122号"、"ZGDIDBOY-083"、"蓉设安质〔2024〕18号"
+   - 特征:通常包含字母、数字、连字符、年份、括号等组合
+
+10. **CERT** - 证书/资质/等级
+    - 包括:资质证书、等级认证、荣誉称号、专业资质
+    - 例如:"电力安全生产标准化一级企业证书"、"工程设计综合甲级"、"注册安全工程师证"、"四综甲"
+    - 不包括:职务职称(归类为 TITLE)
+
+11. **TITLE** - 职务/职称
+    - 包括:行政职务、专业职称、岗位名称
+    - 例如:"董事长"、"总经理"、"安全总监"、"总工程师"、"首席专家"
+    - 不包括:人名(归类为 PERSON)
+
+12. **POLICY** - 政策法规
+    - 包括:法律、法规、条例、办法的名称(不含编号)
+    - 例如:"安全生产法"、"企业安全生产费用提取和使用管理办法"、"劳动合同法"
+    - 不包括:企业内部制度(归类为 METHOD)、文件编号(归类为 DOC_ID)
 
 ## 重要规则