浏览代码

v0.0.4-debug-优化location字段对应原文

ZengChao 2 月之前
父节点
当前提交
755cab9fad

+ 12 - 10
core/construction_review/component/reviewers/prompt/timeliness_basis_reviewer.yaml

@@ -6,20 +6,22 @@ timeliness_basis_reviewer:
 
     【任务】
     你的任务是基于参考文件对审查文件的时效性进行评估,并提出改进建议。
+    **注意**文件名相同找不到相同编号时为规范版本号错误。
+    参考文件格式为《》()状态为。《》中是文件名,()【】是编号。
 
     【字段说明】
     - **issue_point**:时效性判断
-    - **location**:依据的参考文件
+    - **location**:审查内容,保持与原文一模一样
     - **suggestion**:建议(可执行动作)
     - **reason**:问题的原因分析和依据说明,基于标准规范要求的详细说明
-    - **risk_level**:风险水平,只能是 "无风险" / "中风险" / "高风险"
+    - **risk_level**:风险水平,只能是 "无风险" / "高风险"
 
     【时效性判定类型(仅限以下四类)】
     无参考文件:审查文件与参考中的文件名与编号均不一样,对应 "无风险"
     规范版本号正确:审查文件与参考中的文件名与编号均一致状态为现行,对应 "无风险"
-    规范版本号错误:审查文件与参考中存在文件名相同但找不到对应编号,对应 "高风险"
-    引用已废止的规范:参考文件中对应文件已明确标注为废止/停止使用,对应 "高风险"
-    引用已被替代的标准:审查文件与参考中的文件名与编号均一致,但状态为废止并且对应状态为现行的新文件,对应 "高风险"
+    规范版本号错误:审查文件与参考中存在文件名相同但编号不同,对应 "高风险"
+    引用已废止的规范:参考文件中对应文件状态为废止,对应 "高风险"
+    引用已被替代的标准:审查文件与参考中的文件名与编号均一致,状态为废止但对应状态为现行的新文件,对应 "高风险"
   
 
     【输出格式规范】
@@ -32,15 +34,15 @@ timeliness_basis_reviewer:
     ```json
     [
       {{
-        "issue_point": "规范版本号正确",
-        "location": "《建筑工程施工质量验收统一标准》(GB 50204-2015)",
-        "suggestion": "该引用符合现行标准要求,无需修改",
-        "reason": "《建筑工程施工质量验收统一标准》(GB 50204-2015)符合现行国家标准",
+        "issue_point": "规范版本号错误",
+        "location": "《建筑工程施工质量验收统一标准》(GB 50204-2005)",
+        "suggestion": "建议将引用更新为现行标准《建筑工程施工质量验收统一标准》(GB 50204-2015)",
+        "reason": "", "审查文件引用的《建筑工程施工质量验收统一标准》(GB 50204-2005)与参考内容中的《建筑工程施工质量验收统一标准》(GB 50204-2015)(已废止)和《建筑工程施工质量验收统一标准》(GB 50204-2020)(现行)文件名相同,但编号不同,且参考内容中无GB 50204-2005的对应编号"
         "risk_level": "无风险"
       }},
       {{
         "issue_point": "引用已被替代的标准",
-        "location": "《建筑施工组织设计编制规范》(GB/T 50502-2020)",
+        "location": "《建筑施工组织设计编制规范》(GB/T 50502-2015)",
         "suggestion": "建议将引用更新为现行标准《建筑施工组织设计编制规范》(GB/T 50502-2020)",
         "reason": "《建筑施工组织设计编制规范》(GB/T 50502-2015)已被《建筑施工组织设计编制规范》(GB/T 50502-2020)替代",
         "risk_level": "中风险"

+ 6 - 3
core/construction_review/component/reviewers/timeliness_basis_reviewer.py

@@ -38,8 +38,11 @@ class TextProcessor:
 
     @staticmethod
     def extract_basis(text: str) -> List[str]:
-        """从文本中提取编制依据"""
-        pattern = re.compile(r'《[^》]+》(?:([^)]+))?')
+        """从文本中提取编制依据,支持:《》《》(…)《》【…】"""
+        pattern = re.compile(
+            r'《[^》]+》'                 # 《标题》
+            r'(?:([^)]+)|【[^】]+】)?'  # 可选的(…)或【…】
+        )
         return pattern.findall(text)
 
 
@@ -502,5 +505,5 @@ async def review_all_basis_async(text: str, max_concurrent: int = 4) -> List[Lis
 
 if __name__ == "__main__":
     # 简单测试
-    test_text = "《起重机械安全规程》(GB6067-2010)"
+    test_text = "《中华人民共和国特种设备安全法》(9787511850782)"
     result = asyncio.run(review_all_basis_async(test_text))