|
@@ -231,9 +231,9 @@ class InterTool:
|
|
|
check_name = check_result["details"].get("name")
|
|
check_name = check_result["details"].get("name")
|
|
|
reference_source = check_result["details"].get("rag_reference_source")
|
|
reference_source = check_result["details"].get("rag_reference_source")
|
|
|
review_references = check_result["details"].get("rag_review_references")
|
|
review_references = check_result["details"].get("rag_review_references")
|
|
|
- logger.debug(f"解析检查项 {check_name} 的响应,长度: {len(response)}")
|
|
|
|
|
|
|
|
|
|
- logger.debug(f"检查项测试 {check_name}")
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
# 类型安全检查:确保 check_name 是字符串
|
|
# 类型安全检查:确保 check_name 是字符串
|
|
|
if not isinstance(check_name, str):
|
|
if not isinstance(check_name, str):
|
|
@@ -262,6 +262,10 @@ class InterTool:
|
|
|
review_lists.append(check_issue)
|
|
review_lists.append(check_issue)
|
|
|
|
|
|
|
|
else:
|
|
else:
|
|
|
|
|
+ if reference_source and review_references:
|
|
|
|
|
+ logger.debug(f"RAG检查:检查项找到相关rag依据 {check_name} : {review_references}")
|
|
|
|
|
+ else:
|
|
|
|
|
+ logger.debug(f"RAG检查:检查项未找到相关rag依据 {check_name}")
|
|
|
logger.debug(f"检查项 {check_name} 存在参考来源,开始处理参考来源")
|
|
logger.debug(f"检查项 {check_name} 存在参考来源,开始处理参考来源")
|
|
|
check_issues = self.parse_ai_review_response(response, check_name,chapter_code)
|
|
check_issues = self.parse_ai_review_response(response, check_name,chapter_code)
|
|
|
processed_issues = []
|
|
processed_issues = []
|
|
@@ -279,8 +283,12 @@ class InterTool:
|
|
|
# 添加参考来源到实际问题内容中
|
|
# 添加参考来源到实际问题内容中
|
|
|
if review_references:
|
|
if review_references:
|
|
|
issue_content["review_references"] = review_references
|
|
issue_content["review_references"] = review_references
|
|
|
|
|
+ else:
|
|
|
|
|
+ logger.debug(f"RAG检查:检查项找到相关review_references {check_name} ")
|
|
|
if reference_source:
|
|
if reference_source:
|
|
|
issue_content["reference_source"] = reference_source
|
|
issue_content["reference_source"] = reference_source
|
|
|
|
|
+ else:
|
|
|
|
|
+ logger.debug(f"RAG检查:检查项未找到相关reference_source {check_name} ")
|
|
|
|
|
|
|
|
# 更新包装格式中的check_result
|
|
# 更新包装格式中的check_result
|
|
|
item["check_result"] = issue_content
|
|
item["check_result"] = issue_content
|
|
@@ -378,13 +386,14 @@ class InterTool:
|
|
|
解析新的英文键名JSON格式: issue_point, location, suggestion, reason, risk_level
|
|
解析新的英文键名JSON格式: issue_point, location, suggestion, reason, risk_level
|
|
|
"""
|
|
"""
|
|
|
review_lists = []
|
|
review_lists = []
|
|
|
-
|
|
|
|
|
|
|
+ check_item_code = chapter_code+"_"+check_name
|
|
|
try:
|
|
try:
|
|
|
# 1. 检查无问题情况
|
|
# 1. 检查无问题情况
|
|
|
if any(keyword in response for keyword in ["无明显问题", "无问题", "符合要求","无风险"]):
|
|
if any(keyword in response for keyword in ["无明显问题", "无问题", "符合要求","无风险"]):
|
|
|
return [{
|
|
return [{
|
|
|
"check_item": check_name,
|
|
"check_item": check_name,
|
|
|
"chapter_code": chapter_code,
|
|
"chapter_code": chapter_code,
|
|
|
|
|
+ "check_item_code": check_item_code,
|
|
|
"check_result": "无明显问题",
|
|
"check_result": "无明显问题",
|
|
|
"exist_issue": False,
|
|
"exist_issue": False,
|
|
|
"risk_info": {"risk_level": "low"}
|
|
"risk_info": {"risk_level": "low"}
|
|
@@ -396,10 +405,10 @@ class InterTool:
|
|
|
# 处理数组格式 - 保存调试数据
|
|
# 处理数组格式 - 保存调试数据
|
|
|
if isinstance(json_data, list):
|
|
if isinstance(json_data, list):
|
|
|
for issue_data in json_data:
|
|
for issue_data in json_data:
|
|
|
- review_lists.append(self._create_issue_item(issue_data, check_name, chapter_code))
|
|
|
|
|
|
|
+ review_lists.append(self._create_issue_item(issue_data, check_name, chapter_code,check_item_code))
|
|
|
# 处理对象格式
|
|
# 处理对象格式
|
|
|
elif isinstance(json_data, dict):
|
|
elif isinstance(json_data, dict):
|
|
|
- review_lists.append(self._create_issue_item(json_data, check_name, chapter_code))
|
|
|
|
|
|
|
+ review_lists.append(self._create_issue_item(json_data, check_name, chapter_code,check_item_code))
|
|
|
|
|
|
|
|
# 3. 如果JSON解析失败,回退到文本解析
|
|
# 3. 如果JSON解析失败,回退到文本解析
|
|
|
if not review_lists:
|
|
if not review_lists:
|
|
@@ -407,6 +416,7 @@ class InterTool:
|
|
|
review_lists.append({
|
|
review_lists.append({
|
|
|
"check_item": check_name,
|
|
"check_item": check_name,
|
|
|
"chapter_code": chapter_code,
|
|
"chapter_code": chapter_code,
|
|
|
|
|
+ "check_item_code": check_item_code,
|
|
|
"check_result": response,
|
|
"check_result": response,
|
|
|
"exist_issue": True,
|
|
"exist_issue": True,
|
|
|
"risk_info": {"risk_level": risk_level}
|
|
"risk_info": {"risk_level": risk_level}
|
|
@@ -417,6 +427,7 @@ class InterTool:
|
|
|
review_lists.append({
|
|
review_lists.append({
|
|
|
"check_item": check_name,
|
|
"check_item": check_name,
|
|
|
"chapter_code": chapter_code,
|
|
"chapter_code": chapter_code,
|
|
|
|
|
+ "check_item_code": check_item_code,
|
|
|
"check_result": response,
|
|
"check_result": response,
|
|
|
"exist_issue": True,
|
|
"exist_issue": True,
|
|
|
"risk_info": {"risk_level": "low"}
|
|
"risk_info": {"risk_level": "low"}
|
|
@@ -472,7 +483,7 @@ class InterTool:
|
|
|
|
|
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
- def _create_issue_item(self, issue_data: dict, check_name: str, chapter_code: str = "") -> Dict[str, Any]:
|
|
|
|
|
|
|
+ def _create_issue_item(self, issue_data: dict, check_name: str, chapter_code:str,check_item_code:str) -> Dict[str, Any]:
|
|
|
"""创建单个审查问题项"""
|
|
"""创建单个审查问题项"""
|
|
|
risk_level = self._determine_risk_level(issue_data.get("risk_level", ""))
|
|
risk_level = self._determine_risk_level(issue_data.get("risk_level", ""))
|
|
|
|
|
|
|
@@ -483,6 +494,7 @@ class InterTool:
|
|
|
return {
|
|
return {
|
|
|
"check_item": check_name,
|
|
"check_item": check_name,
|
|
|
"chapter_code": chapter_code,
|
|
"chapter_code": chapter_code,
|
|
|
|
|
+ "check_item_code":check_item_code,
|
|
|
"check_result": issue_data,
|
|
"check_result": issue_data,
|
|
|
"exist_issue": exist_issue,
|
|
"exist_issue": exist_issue,
|
|
|
"risk_info": {"risk_level": risk_level}
|
|
"risk_info": {"risk_level": risk_level}
|