|
|
@@ -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]:
|