Преглед изворни кода

v0.0.4-功能优化
- 强制性技术参数审查更改为专业性审查
- 专业性审查
-非参数合规性检查功能
- 参数合规性检查功能

WangXuMing пре 2 месеци
родитељ
комит
a85a321ad5

+ 2 - 2
config/config.ini

@@ -1,7 +1,7 @@
 
 
 [model]
-MODEL_TYPE=lq_qwen3_8b
+MODEL_TYPE=gemini
 
 
 
@@ -30,7 +30,7 @@ QWEN_API_KEY=ms-9ad4a379-d592-4acd-b92c-8bac08a4a045
 [ai_review]
 # 调试模式配置
 MAX_REVIEW_UNITS=5
-REVIEW_MODE=all
+REVIEW_MODE=first
 # REVIEW_MODE=all/random/first
 
 

+ 36 - 62
core/construction_review/component/ai_review_engine.py

@@ -81,9 +81,8 @@ class Stage(Enum):
     }
     TECHNICAL = {
         'reviewer_type':'technical',
-        'mandatory': 'mandatory_standards_check',
-        'technical': 'technical_parameters_check',
-        'design': 'design_values_check'
+        'non_parameter': 'non_parameter_compliance_check',
+        'parameter': 'parameter_compliance_check'
     }
     RAG = {
         'rag': 'rag_enhanced_review',
@@ -304,7 +303,6 @@ class AIReviewEngine(BaseReviewer):
             unit_content: 待审查单元内容
             state: 状态字典
             stage_name: 阶段名称
-            current_progress: 当前进度
 
         Returns:
             Dict[str, Any]: 技术性合规检查结果
@@ -317,30 +315,27 @@ class AIReviewEngine(BaseReviewer):
         review_references = rag_result.get('text_content', '')
         reference_source = rag_result.get('file_name', '')
 
-        
+
         async def check_with_semaphore(check_func, **kwargs):
             async with self.semaphore:
                 return await check_func(**kwargs)
 
-        # 并发执行技术性检查任务,传入RAG增强的参考上下文和reference_source
+        # 并发执行技术性检查任务,使用新的非参数和参数合规性检查
         technical_tasks = [
-            check_with_semaphore(self.check_mandatory_standards, trace_id_idx=trace_id_idx, review_content=review_content, review_references=review_references, reference_source=reference_source, review_location_label=review_location_label, state=state, stage_name=stage_name),
-            check_with_semaphore(self.check_design_values, trace_id_idx=trace_id_idx, review_content=review_content, review_references=review_references, reference_source=reference_source, review_location_label=review_location_label, state=state, stage_name=stage_name),
-            check_with_semaphore(self.check_technical_parameters, trace_id_idx=trace_id_idx, review_content=review_content, review_references=review_references, reference_source=reference_source, review_location_label=review_location_label, state=state, stage_name=stage_name)
+            check_with_semaphore(self.check_non_parameter_compliance, trace_id_idx=trace_id_idx, review_content=review_content, review_references=review_references, reference_source=reference_source, review_location_label=review_location_label, state=state, stage_name=stage_name),
+            check_with_semaphore(self.check_parameter_compliance, trace_id_idx=trace_id_idx, review_content=review_content, review_references=review_references, reference_source=reference_source, review_location_label=review_location_label, state=state, stage_name=stage_name)
         ]
 
-        mandatory_result, design_value_result, technical_param_result = await asyncio.gather(*technical_tasks, return_exceptions=True)
+        non_parameter_result, parameter_result = await asyncio.gather(*technical_tasks, return_exceptions=True)
 
         # 使用公共方法处理结果
-        mandatory_result = self._process_review_result(mandatory_result)
-        design_value_result = self._process_review_result(design_value_result)
-        technical_param_result = self._process_review_result(technical_param_result)
+        non_parameter_result = self._process_review_result(non_parameter_result)
+        parameter_result = self._process_review_result(parameter_result)
 
         return {
-            'mandatory_standards': mandatory_result,
-            'design_values': design_value_result,
-            'technical_parameters': technical_param_result,
-            'overall_score': self._calculate_technical_score(mandatory_result, design_value_result, technical_param_result)
+            'non_parameter_compliance': non_parameter_result,
+            'parameter_compliance': parameter_result,
+            'overall_score': self._calculate_technical_score(non_parameter_result, parameter_result)
         }
 
     def rag_enhanced_check(self, unit_content: Dict[str, Any]) -> Dict[str, Any]:
@@ -400,7 +395,7 @@ class AIReviewEngine(BaseReviewer):
         reviewer_type = Stage.BASIC.value['reviewer_type']
         prompt_name = Stage.BASIC.value['grammar']
         trace_id = prompt_name+trace_id_idx
-        return await self.review("词句语法检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
+        return await self.review("sensitive_word_check", trace_id, reviewer_type, prompt_name, review_content, review_references,
                                None, review_location_label, state, stage_name)
 
     async def check_semantic_logic(self, trace_id_idx: str, review_content: str, review_references: str,
@@ -420,7 +415,7 @@ class AIReviewEngine(BaseReviewer):
         reviewer_type = Stage.BASIC.value['reviewer_type']
         prompt_name = Stage.BASIC.value['semantic']
         trace_id = prompt_name+trace_id_idx
-        return await self.review("语义逻辑检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
+        return await self.review("semantic_logic_check", trace_id, reviewer_type, prompt_name, review_content, review_references,
                                None, review_location_label, state, stage_name)
 
     async def check_completeness(self, trace_id_idx: str, review_content: str, review_references: str,
@@ -442,73 +437,53 @@ class AIReviewEngine(BaseReviewer):
         reviewer_type = Stage.BASIC.value['reviewer_type']
         prompt_name = Stage.BASIC.value['completeness']
         trace_id = prompt_name+trace_id_idx
-        return await self.review("完整性检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
+        return await self.review("completeness_check", trace_id, reviewer_type, prompt_name, review_content, review_references,
                                None, review_location_label, state, stage_name)
 
-    async def check_mandatory_standards(self, trace_id_idx: str, review_content: str, review_references: str,
-                                        reference_source: str, review_location_label: str, state: str, stage_name: str) -> Dict[str, Any]:
+    async def check_non_parameter_compliance(self, trace_id_idx: str, review_content: str, review_references: str,
+                                         reference_source: str, review_location_label: str, state: str, stage_name: str) -> Dict[str, Any]:
         """
-        强制性标准检查
+        非参数合规性检查 - 安全相关/强制性条文知识库
 
         Args:
             trace_id_idx: 追踪ID索引
             review_content: 审查内容
             review_references: 审查参考信息
-            stage_name: 阶段名称
+            reference_source: 参考来源
+            review_location_label: 审查位置标签
             state: 状态字典
-            current_progress: 当前进度
-
-        Returns:
-            Dict[str, Any]: 强制性标准检查结果
-        """
-        reviewer_type = Stage.TECHNICAL.value['reviewer_type']
-        prompt_name = Stage.TECHNICAL.value['mandatory']
-        trace_id = prompt_name+trace_id_idx
-        return await self.review("强制性标准检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
-                               reference_source, review_location_label, state, stage_name)
-
-    async def check_design_values(self, trace_id_idx: str, review_content: str, review_references: str,
-                                  reference_source: str, review_location_label: str, state: str, stage_name: str) -> Dict[str, Any]:
-        """
-        设计值检查
-
-        Args:
-            trace_id_idx: 追踪ID索引
-            review_content: 审查内容
-            review_references: 审查参考信息
             stage_name: 阶段名称
-            state: 状态字典
-            current_progress: 当前进度
 
         Returns:
-            Dict[str, Any]: 设计值检查结果
+            Dict[str, Any]: 非参数合规性检查结果
         """
         reviewer_type = Stage.TECHNICAL.value['reviewer_type']
-        prompt_name = Stage.TECHNICAL.value['design']
+        prompt_name = Stage.TECHNICAL.value['non_parameter']
         trace_id = prompt_name+trace_id_idx
-        return await self.review("设计值检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
+        return await self.review("non_parameter_compliance_check", trace_id, reviewer_type, prompt_name, review_content, review_references,
                                reference_source, review_location_label, state, stage_name)
 
-    async def check_technical_parameters(self, trace_id_idx: str, review_content: str, review_references: str,
-                                         reference_source: str, review_location_label: str, state: str, stage_name: str) -> Dict[str, Any]:
+    async def check_parameter_compliance(self, trace_id_idx: str, review_content: str, review_references: str,
+                                        reference_source: str, review_location_label: str, state: str, stage_name: str) -> Dict[str, Any]:
         """
-        技术参数检查
+        参数合规性检查 - 实体概念/工程术语知识库
 
         Args:
             trace_id_idx: 追踪ID索引
             review_content: 审查内容
             review_references: 审查参考信息
-            stage_name: 阶段名称
+            reference_source: 参考来源
+            review_location_label: 审查位置标签
             state: 状态字典
-            current_progress: 当前进度
+            stage_name: 阶段名称
 
         Returns:
-            Dict[str, Any]: 技术参数检查结果
+            Dict[str, Any]: 参数合规性检查结果
         """
         reviewer_type = Stage.TECHNICAL.value['reviewer_type']
-        prompt_name = Stage.TECHNICAL.value['technical']
+        prompt_name = Stage.TECHNICAL.value['parameter']
         trace_id = prompt_name+trace_id_idx
-        return await self.review("技术参数检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
+        return await self.review("parameter_compliance_check", trace_id, reviewer_type, prompt_name, review_content, review_references,
                                reference_source, review_location_label, state, stage_name)
 
     # RAG检索增强
@@ -527,19 +502,18 @@ class AIReviewEngine(BaseReviewer):
         """
         return (grammar.get('score', 0) + semantic.get('score', 0) + completeness.get('score', 0)) / 3
 
-    def _calculate_technical_score(self, mandatory: Dict, design: Dict, technical: Dict) -> float:
+    def _calculate_technical_score(self, non_parameter: Dict, parameter: Dict) -> float:
         """
         计算技术合规性得分
 
         Args:
-            mandatory: 强制性标准检查结果
-            design: 设计值检查结果
-            technical: 技术参数检查结果
+            non_parameter: 非参数合规性检查结果
+            parameter: 参数合规性检查结果
 
         Returns:
             float: 技术合规性平均得分
         """
-        return (mandatory.get('compliance_rate', 0) + design.get('accuracy', 0) + technical.get('outlineion', 0)) / 3
+        return (non_parameter.get('compliance_rate', 0) + parameter.get('accuracy', 0)) / 2
 
     async def prep_basis_review(self, review_data: Dict[str, Any], trace_id: str,
                                 state: dict = None, stage_name: str = None) -> Dict[str, Any]:

+ 0 - 256
core/construction_review/component/reviewers/batch_status_resolver.py

@@ -1,256 +0,0 @@
-import json
-import re
-import time
-import requests
-from typing import Any, Dict, List, Optional
-from concurrent.futures import ThreadPoolExecutor, as_completed
-
-from foundation.database.base.vector.milvus_vector import MilvusVectorManager
-
-LLM_ENDPOINT = "http://192.168.91.253:9002/v1/chat/completions"
-LLM_MODEL = "Qwen3-8B"
-
-
-def call_llm(
-    messages: List[Dict[str, str]],
-    endpoint: str = LLM_ENDPOINT,
-    model: str = LLM_MODEL,
-    timeout: int = 120,
-) -> str:
-    payload = {
-        "model": model,
-        "messages": messages,
-        "temperature": 0.1,
-    }
-    resp = requests.post(endpoint, json=payload, timeout=timeout)
-    resp.raise_for_status()
-    return resp.json()["choices"][0]["message"]["content"]
-
-
-def extract_json_array(text: str) -> List[Dict[str, Any]]:
-    """提取最后一个 JSON 数组(适配 <think>... + [..] 输出)。"""
-    if not text:
-        return []
-
-    # 1) 直接整体解析
-    try:
-        obj = json.loads(text.strip())
-        if isinstance(obj, list):
-            return [x for x in obj if isinstance(x, dict)]
-    except Exception:
-        pass
-
-    # 2) 取最后一个 [...]
-    matches = re.findall(r"\[[\s\S]*?\]", text, flags=re.S)
-    for s in reversed(matches):
-        try:
-            obj = json.loads(s)
-            if isinstance(obj, list):
-                return [x for x in obj if isinstance(x, dict)]
-        except Exception:
-            continue
-    return []
-
-
-def normalize_item(obj: Dict[str, Any]) -> Dict[str, Any]:
-    name = obj.get("name", "")
-    is_standard = obj.get("is_standard", False)
-    status = obj.get("status", "")
-    meg = obj.get("meg", "")
-
-    if isinstance(is_standard, str):
-        is_standard = is_standard.strip().lower() in ("true", "1", "yes")
-    else:
-        is_standard = bool(is_standard)
-
-    return {
-        "name": str(name or "").strip(),
-        "is_standard": is_standard,
-        "status": str(status or "").strip(),
-        "meg": str(meg or "").strip(),
-    }
-
-
-def normalize_output(arr: List[Dict[str, Any]], expected_len: int) -> List[Dict[str, Any]]:
-    out = [normalize_item(x) for x in arr[:expected_len]]
-    while len(out) < expected_len:
-        out.append({"name": "", "is_standard": False, "status": "", "meg": ""})
-    return out
-
-
-SYSTEM_PROMPT = """
-/no_think
-你是一个【规范性引用文件识别与状态判断助手】。
-
-你会收到一个JSON,包含 items 数组。每个 item 有:
-- raw_text:该条“依据”原始文本(例如: 《书名》(编号))
-- candidates:该条依据对应的向量库候选列表(top3),每条可能含“当前状态为XXX”
-
-你需要对 items 中的每一条分别输出一个结果对象,输出顺序必须与 items 顺序一致。
-
-每条结果对象字段:
-1) is_standard:判断 raw_text 是否严格符合唯一格式《书名》(编号)
-   - 必须同时满足:中文书名号《》 + 紧跟中文全角括号() + 括号内是编号
-   - 缺任一条件则为 false,其他情况均为 true,不用管中间是否有空格、斜杆
-2) status:仅当能确认 candidates 与 raw_text 指向同一份文件时,内容相同就行,不用完全匹配,才输出状态(如 现行/已废止/修订中),否则为空字符串
-3) meg:必须写清楚依据,且同时包含:
-   - 格式判断依据(为什么规范/不规范)
-   - 状态判断依据(命中哪条候选、或未命中/信息不足)
-
-【输出要求】
-- 只能输出一个 JSON 数组,数组长度必须等于 items 长度
-- 数组元素只能是对象,且每个对象只能包含三个字段:
-  {"is_standard": true/false, "status": "", "meg": ""}
-- 禁止输出解释文字、禁止输出代码块、禁止输出多余字段
-"""
-
-
-def build_messages(
-    basis_items: List[str],
-    grouped_candidates: List[List[Dict[str, Any]]],
-) -> List[Dict[str, str]]:
-    items = []
-    for raw, cands in zip(basis_items, grouped_candidates):
-        items.append(
-            {
-                "raw_text": raw,
-                "candidates": [
-                    {
-                        "id": c.get("id"),
-                        "similarity": c.get("similarity"),
-                        "text": c.get("text_content", ""),
-                    }
-                    for c in (cands or [])
-                ],
-            }
-        )
-
-    user_content = {
-        "items": items,
-        "required_output_example": [
-            {"is_standard": False, "status": "", "meg": ""} for _ in items
-        ],
-    }
-
-    return [
-        {"role": "system", "content": SYSTEM_PROMPT},
-        {"role": "user", "content": json.dumps(user_content, ensure_ascii=False)},
-    ]
-
-
-def infer_status_batch(
-    basis_items: List[str],
-    collection_name: str,
-    filters: Optional[Dict[str, Any]] = None,
-    min_score: float = 0.3,
-    top_k_each: int = 3,
-) -> List[Dict[str, Any]]:
-    """
-    单批次(通常3条)推理
-    ⚠️ 本函数保持串行,避免 name 回填错位
-    """
-    basis_items = [x for x in (basis_items or []) if isinstance(x, str) and x.strip()]
-    if not basis_items:
-        return []
-
-    manager = MilvusVectorManager()
-    grouped_candidates: List[List[Dict[str, Any]]] = []
-
-    for basis in basis_items:
-        retrieved = (
-            manager.similarity_search(
-                param={"collection_name": collection_name},
-                query_text=basis,
-                min_score=min_score,
-                top_k=top_k_each,
-                filters=filters,
-            )
-            or []
-        )
-        grouped_candidates.append(retrieved)
-
-    messages = build_messages(basis_items, grouped_candidates)
-
-    llm_out = call_llm(messages)
-
-    arr = extract_json_array(llm_out)
-    result = normalize_output(arr, expected_len=len(basis_items))
-
-    # ⚠️ 严格按本 batch 内顺序回填 name
-    for i, name in enumerate(basis_items):
-        result[i]["name"] = name
-
-    return result
-
-
-def extract_basis(text: str) -> list:
-    pattern = re.compile(
-        r'《[^》]+》'
-        r'(?:([^)]+))?'
-    )
-    return pattern.findall(text)
-
-
-def batch_status_resolver(text: str) -> list:
-    """
-    ✅ 并发执行 infer_status_batch
-    ✅ 通过 index 保证结果顺序 100% 正确
-    """
-    items = extract_basis(text)
-    if not items:
-        return []
-
-    tasks = []
-    results = [None] * ((len(items) + 2) // 3)
-    start_time = time.time()
-
-    with ThreadPoolExecutor(max_workers=4) as executor:
-        for idx, i in enumerate(range(0, len(items), 3)):
-            batch = items[i:i + 3]
-            future = executor.submit(
-                infer_status_batch,
-                basis_items=batch,
-                collection_name="already_basis",
-                filters=None,
-            )
-            tasks.append((idx, future))
-
-        for idx, future in tasks:
-            results[idx] = future.result()
-    elapsed_time = time.time() - start_time
-    print(f"调用LLM耗时: {elapsed_time:.4f} 秒")
-    return results
-
-
-if __name__ == "__main__":
-    text = """
-(1)《架桥机通用技术条件》(GB/T 26470-2011);
-(2)《起重机设计规范》(GB/T 3811-2008);
-(3)《起重机械安全规程 第 5 部分:桥式和门式起重机》(GB 6067.5-2014);
-(4)《电气装置安装工程 起重机电气装置施工及验收规范》(GB 50256-2014);
-(5)《起重设备安装工程施工及验收规范》(GB50278-2010);
-(6)《施工现场机械设备检查技术规范》(JGJ 160-2016);
-(7)《公路桥涵施工技术规范》(JTG/T 3650-2020);
-四川公路桥梁建设集团有限公司 镇广 C4 项目经理部 JQ220t-40m 架桥机安装及拆除专项施工方案
-第 2 页
-(8)《建设工程安全生产管理条例》《四川省安全生产条例》(2023);
-(9)《重要用途钢丝绳》(GB 8918-2006);
-(10)《起重机用钢丝绳》(GB T 34198-2017);
-(11)《起重机钢丝绳保养、维护、检验和报废》(GBT5972-2023);
-(12)《建筑施工起重吊装工程安全技术规范》(JGJ 276-2012);
-(13)《建筑施工高处作业安全技术规范》(JGJ 80-2016);
-(14)公路水运危险性较大工程安全专项施工方 案审查规程》(JT/T1495-2024);
-(15)《公路工程施工安全标志设置规范》(JTT1507-2024);
-(16)《公路工程施工现场安全防护技术要求》(JTT1508-2024);
-(17)《公路水运工程临时用电技术 规程》(JTT1499-2024);
-(18)《坠落防护 水平生命线装置》(GB 38454-2019);
-(19)《坠落防护 挂点装置》(GB30862-2014);
-(20)《钢丝绳通用技术规范》(GB/T 20118-2017);
-(21)《坠落防 护 安全带》(GB 6095-2021);
-(22)《一般起重用 D 形和弓形锻造卸扣》(GB/T 25854-2010);
-(23)《钢丝绳夹》(GB/T 5976-2006);
-(24)《不锈钢丝绳》(GB/T 9944-2015)。
-    """
-
-    res = batch_status_resolver(text)
-    print(res)

+ 20 - 59
core/construction_review/component/reviewers/prompt/technical_reviewers.yaml

@@ -1,16 +1,17 @@
 # 技术性审查提示词配置
 
-# 2.1 强制性标准符合性检查功能
-mandatory_standards_check:
+# 非参数合规性检查功能 - 审查 安全相关/强制性条文相关知识库
+non_parameter_compliance_check:
   system_prompt: |
-    你是施工方案强制性标准审查专家,负责检查是否符合国家强制性标准
+    你是施工方案非参数合规性审查专家,专门负责检查安全相关条文和强制性标准的符合性
 
     审查参考:
     {review_references}
 
     审查要求:
-    - 重点检查强制性条文符合性
-    - 识别违反强标的问题
+    - 重点检查安全相关强制性条文符合性
+    - 识别违反安全标准和强制规范的问题
+    - 关注安全防护措施、安全风险评估、安全管理要求
     - 简明扼要指出违规内容和整改要求
     - 风险等级分类:
       * 高风险:影响审查结论、可能导致法律问题或严重安全隐患
@@ -21,12 +22,12 @@ mandatory_standards_check:
     1. 务必结合语境进行分析检查
     2. 对于表格制表符、不需要检查
     3. 对于术语概念不得曲解
-    4. 没有明显强制性标准问题的内容不予检查,输出无明显问题
+    4. 没有明显安全合规问题的内容不予检查,输出无明显问题
     5. 已检查出的问题项仅输出一次检查结果,禁止对同一内容重复检查
-    6. 若审查参考与审查内容相关性过低,可不予参考该条文,直接实施审查
+    6. 若审查参考与审查内容相关性过低,可不予参考该条文,直接实施审查
 
   user_prompt_template: |
-    请审查以下内容的强制性标准符合性:
+    请审查以下内容的安全合规性和强制性标准符合性:
 
     {review_content}
 
@@ -44,58 +45,20 @@ mandatory_standards_check:
     }}
     ```
 
-# 2.2 技术参数精确检查功能
-technical_parameters_check:
+# 参数合规性检查功能 - 审查 实体概念/工程术语相关知识库
+parameter_compliance_check:
   system_prompt: |
-    你是施工方案技术参数审查专家,负责检查技术参数的精确性和合理性。
+    你是施工方案参数合规性审查专家,专门负责检查技术参数、实体概念和工程术语的准确性和合理性。
 
-    审查要求:
-    - 重点检查技术参数的准确性和合理性
-    - 识别参数错误或不合理设置
-    - 简明扼要指出参数问题和修正建议
-    - 风险等级分类:
-      * 高风险:影响审查结论、可能导致法律问题或严重安全隐患
-      * 中风险:影响专业表达、可能导致理解偏差或一般性问题
-      * 低风险:形式问题、不影响实质内容和安全
-
-    注意事项:
-    1. 务必结合语境进行分析检查
-    2. 对于表格制表符、不需要检查
-    3. 对于术语概念不得曲解
-    4. 没有明显技术参数问题的内容不予检查,输出无明显问题
-    5. 已检查出的问题项仅输出一次检查结果,禁止对同一内容重复检查
-    6. 若审查参考与审查内容相关性过低,可不予参考该条文,直接实施审查。
     审查参考:
     {review_references}
 
-  user_prompt_template: |
-    请审查以下内容的技术参数精确性:
-
-    {review_content}
-
-    输出格式:务必须严格按照以下标准JSON格式输出审查结果:
-    如果未发现问题,请输出:无明显问题
-    如果发现问题,请按以下格式输出:
-    location字段直接输出原字段内容,不得猜测
-    ```json
-    {{
-      "issue_point": "问题标题描述",
-      "location": "当前问题对应的原始条款内容及位置,以及其语境上下文",
-      "suggestion": "具体的修改建议内容",
-      "reason": "问题的原因分析和依据说明",
-      "risk_level": ""
-    }}
-    ```
-
-# 2.3 设计值符合性检查功能
-design_values_check:
-  system_prompt: |
-    你是施工方案设计值审查专家,负责检查设计值的符合性和合理性。
-
     审查要求:
-    - 重点检查设计值与标准的符合性
-    - 识别设计值超标或不合理问题
-    - 简明扼要指出设计值问题和调整建议
+    - 重点检查技术参数的准确性和合理性
+    - 识别参数错误或不合理设置
+    - 检查实体概念和工程术语的正确使用
+    - 验证设计值与标准的符合性
+    - 简明扼要指出参数问题和修正建议
     - 风险等级分类:
       * 高风险:影响审查结论、可能导致法律问题或严重安全隐患
       * 中风险:影响专业表达、可能导致理解偏差或一般性问题
@@ -105,14 +68,12 @@ design_values_check:
     1. 务必结合语境进行分析检查
     2. 对于表格制表符、不需要检查
     3. 对于术语概念不得曲解
-    4. 没有明显设计值问题的内容不予检查,输出无明显问题
+    4. 没有明显参数合规问题的内容不予检查,输出无明显问题
     5. 已检查出的问题项仅输出一次检查结果,禁止对同一内容重复检查
-     6. 若审查参考与审查内容相关性过低,可不予参考该条文,直接实施审查。
-    审查参考:
-    {review_references}
+    6. 若审查参考与审查内容相关性过低,可不予参考该条文,直接实施审查
 
   user_prompt_template: |
-    请审查以下内容的设计值符合性:
+    请审查以下内容的技术参数精确性、实体概念和工程术语的正确性:
 
     {review_content}
 

+ 2 - 3
views/construction_review/launch_review.py

@@ -113,9 +113,8 @@ def validate_review_config(review_config: List[str]) -> None:
         'timeliness_check',           # 时效性审查
         'reference_check',            # 规范性审查
         'sensitive_words_check',      # 敏感词审查
-        'mandatory_standards_check',  # 强制性标准检查
-        'technical_parameters_check', # 技术参数精确检查
-        'design_values_check'         # 设计值符合性检查
+        'non_parameter_compliance_check',  # 非参数合规性检查功能
+        'parameter_compliance_check', # 参数合规性检查功能
     }
 
     # 检查是否包含不支持的审查项