|
|
@@ -62,7 +62,8 @@ class AIReviewEngine(BaseReviewer):
|
|
|
|
|
|
|
|
|
|
|
|
- async def basic_compliance_check(self,trace_id_idx: str, unit_content: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
+ async def basic_compliance_check(self,trace_id_idx: str, unit_content: Dict[str, Any],
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""基础合规性检查"""
|
|
|
review_content = unit_content['content']
|
|
|
review_references = unit_content.get('review_references')
|
|
|
@@ -71,7 +72,7 @@ class AIReviewEngine(BaseReviewer):
|
|
|
|
|
|
async def check_with_semaphore(check_func, *args):
|
|
|
async with self.semaphore:
|
|
|
- return await check_func(*args)
|
|
|
+ return await check_func(*args, stage_name=stage_name, state=state, current_progress=current_progress)
|
|
|
|
|
|
basic_tasks = [
|
|
|
check_with_semaphore(self.check_grammar, trace_id_idx, review_content, review_references),
|
|
|
@@ -98,14 +99,15 @@ class AIReviewEngine(BaseReviewer):
|
|
|
'overall_score': self._calculate_basic_score(grammar_result, semantic_result, completeness_result)
|
|
|
}
|
|
|
|
|
|
- async def technical_compliance_check(self, trace_id_idx: str, unit_content: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
+ async def technical_compliance_check(self, trace_id_idx: str, unit_content: Dict[str, Any],
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""技术性合规检查"""
|
|
|
review_content = unit_content['content']
|
|
|
review_references = unit_content.get('review_references')
|
|
|
logger.info(f"开始技术性合规检查,内容长度: {len(review_content)}")
|
|
|
async def check_with_semaphore(check_func, *args):
|
|
|
async with self.semaphore:
|
|
|
- return await check_func(*args)
|
|
|
+ return await check_func(*args, stage_name=stage_name, state=state, current_progress=current_progress)
|
|
|
|
|
|
technical_tasks = [
|
|
|
check_with_semaphore(self.check_mandatory_standards, trace_id_idx, review_content,review_references),
|
|
|
@@ -149,47 +151,59 @@ class AIReviewEngine(BaseReviewer):
|
|
|
}
|
|
|
|
|
|
|
|
|
- async def check_grammar(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_grammar(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""语法检查"""
|
|
|
reviewer_type = Stage.BASIC.value['reviewer_type']
|
|
|
prompt_name = Stage.BASIC.value['sensitive']
|
|
|
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("语法检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
- async def check_semantic_logic(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_semantic_logic(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""语义逻辑检查"""
|
|
|
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("语义逻辑检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
- async def check_completeness(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_completeness(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""完整性检查"""
|
|
|
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("完整性检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
- async def check_mandatory_standards(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_mandatory_standards(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> 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)
|
|
|
+ return await self.review("强制性标准检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
- async def check_design_values(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_design_values(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""设计值检查"""
|
|
|
reviewer_type = Stage.TECHNICAL.value['reviewer_type']
|
|
|
prompt_name = Stage.TECHNICAL.value['design']
|
|
|
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("设计值检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
- async def check_technical_parameters(self, trace_id_idx: str, review_content: str = None, review_references: str = None) -> Dict[str, Any]:
|
|
|
+ async def check_technical_parameters(self, trace_id_idx: str, review_content: str = None, review_references: str = None,
|
|
|
+ stage_name: str = None, state: dict = None, current_progress: int = None) -> Dict[str, Any]:
|
|
|
"""技术参数检查"""
|
|
|
reviewer_type = Stage.TECHNICAL.value['reviewer_type']
|
|
|
prompt_name = Stage.TECHNICAL.value['technical']
|
|
|
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("技术参数检查", trace_id, reviewer_type, prompt_name, review_content, review_references,
|
|
|
+ stage_name, state, current_progress)
|
|
|
|
|
|
# RAG检索增强
|
|
|
async def vector_search(self, content: str) -> List[Dict[str, Any]]:
|