|
|
@@ -62,7 +62,7 @@ class StandardizedResponseProcessor:
|
|
|
处理LLM响应,返回标准格式
|
|
|
|
|
|
Args:
|
|
|
- response_text: LLM原始响应文本
|
|
|
+ response_text: LLM原始响应文本(JSON字符串)
|
|
|
check_name: 检查项名称
|
|
|
|
|
|
Returns:
|
|
|
@@ -73,8 +73,12 @@ class StandardizedResponseProcessor:
|
|
|
return []
|
|
|
|
|
|
try:
|
|
|
- # 使用inter_tool提取JSON数据
|
|
|
- json_data = self.inter_tool._extract_json_data(response_text)
|
|
|
+ json_data = response_text
|
|
|
+
|
|
|
+ # ✅ 只有 str 才提取 JSON;如果已经是 list/dict,直接用
|
|
|
+ if isinstance(response_text, str):
|
|
|
+ json_data = self.inter_tool._extract_json_data(response_text)
|
|
|
+
|
|
|
parsed_result = []
|
|
|
|
|
|
if json_data and isinstance(json_data, list):
|
|
|
@@ -291,12 +295,15 @@ class BasisReviewService:
|
|
|
message = prompt_template.partial(reference_content=grouped_candidates, check_content=basis_items)
|
|
|
trace_id = f"prep_basis_batch_{int(time.time())}"
|
|
|
llm_out = await self.llm_client.review_basis(message, trace_id)
|
|
|
- print("LLM输出:\n")
|
|
|
- print(llm_out)
|
|
|
+
|
|
|
|
|
|
- # 使用标准化处理器处理响应
|
|
|
+ # from core.construction_review.component.reviewers.utils.timeliness import review_reference_timeliness
|
|
|
+ # llm_out = await review_reference_timeliness(reference_text=grouped_candidates, review_text=basis_items)
|
|
|
+
|
|
|
+
|
|
|
standardized_result = self.response_processor.process_llm_response(llm_out, "timeliness_check")
|
|
|
-
|
|
|
+ print("标准化处理器处理响应:\n")
|
|
|
+ print(standardized_result)
|
|
|
# 统计问题数量
|
|
|
issue_count = sum(1 for item in standardized_result if item.get('exist_issue', False))
|
|
|
logger.info(f"编制依据批次审查完成:总计 {len(basis_items)} 项,发现问题 {issue_count} 项")
|
|
|
@@ -304,7 +311,7 @@ class BasisReviewService:
|
|
|
return standardized_result
|
|
|
|
|
|
except Exception as e:
|
|
|
- logger.error(f" 批次处理失败: {e}")
|
|
|
+ logger.error(f" 批次处理失败1: {e}")
|
|
|
return [{
|
|
|
"check_item": "reference_check",
|
|
|
"check_result": {"error": str(e), "basis_items": basis_items},
|
|
|
@@ -409,7 +416,7 @@ class BasisReviewService:
|
|
|
|
|
|
except Exception as e:
|
|
|
logger.error(f" 批次 {batch_index} 处理失败: {e}")
|
|
|
- error_result = [{"name": name, "is_standard": False, "status": "", "meg": f"批次处理失败: {str(e)}"}
|
|
|
+ error_result = [{"name": name, "is_standard": False, "status": "", "meg": f"批次处理失败2: {str(e)}"}
|
|
|
for name in batch]
|
|
|
|
|
|
# 即使失败也要推送结果
|
|
|
@@ -491,6 +498,7 @@ class BasisReviewService:
|
|
|
|
|
|
logger.info(f" 异步审查完成,耗时: {elapsed_time:.4f} 秒")
|
|
|
logger.info(f" 总编制依据: {total_items}, 问题项: {issue_items}, 成功批次: {successful_batches}/{total_batches}")
|
|
|
+ print(final_results)
|
|
|
return final_results
|
|
|
|
|
|
|
|
|
@@ -509,37 +517,8 @@ async def review_all_basis_async(text: str, max_concurrent: int = 4) -> List[Lis
|
|
|
if __name__ == "__main__":
|
|
|
# 简单测试
|
|
|
test_text = """
|
|
|
-(1)相关法律法规
|
|
|
-1)《中华人民共和国安全生产法》2021年修订版
|
|
|
-2)《中华人民共和国环境保护法》2021年修订版
|
|
|
-3)《建设工程安全生产管理条例》2023年最新修正
|
|
|
-4)《中华人民共和国道路交通安全法》2021年4月29日修订
|
|
|
-5)《中华人民共和国水土保持法》2010年12月25日修订
|
|
|
-6)《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495-2024)
|
|
|
-7)《公路水运工程临时用电技术规程》(JT/T 1499—2024)
|
|
|
-8)《建设工程质量管理条例》2019年4月23日修订
|
|
|
-9)《建设工程安全生产管理条例》2023年最新修正
|
|
|
-10)《四川省安全生产条例》2023年5月25日修订
|
|
|
-11)《危险性较大的分部分项工程安全管理规定》住建部令第37号
|
|
|
-12)《建筑机械使用安全技术规程》JGJ 33—2012
|
|
|
-13)《起重机—手势信号》GB/T 5082—2019
|
|
|
-14)《架桥机通用技术条件》GB/T 26470—2011
|
|
|
-15)《施工现场机械设备检查技术规范》JGJ 160—2016
|
|
|
-16)《粗直径钢丝绳》GB/T 20067—2017
|
|
|
-17)《建筑施工起重吊装工程安全技术规范》JGJ 276—2012
|
|
|
-18)《架桥机安全规程》GB 26469—2011
|
|
|
-19)《起重机械安全规程》GB 6067.1—2010
|
|
|
-20)《电气装置安装工程起重机电气装置施工及验收规范》GB 50256—2014
|
|
|
-21)《起重设备安装工程施工及验收规范》GB 50278—2010
|
|
|
-22)《公路工程施工安全技术规范》JTG F90—2015
|
|
|
-23)《建筑施工高处作业安全技术规范》JGJ 80—2016
|
|
|
-24)《电力高处作业防坠器》DL/T 1147-2009
|
|
|
-(2)项目文件
|
|
|
-1)《S81线会理至禄劝(四川境)高速公路两阶段施工图设计》;
|
|
|
-2)《S81线会理至禄劝(四川境)高速公路ZCB1-3标段实施性施工组织设计》;
|
|
|
-3)《S81线会理至禄劝(四川境)高速公路ZCB1-3标段T梁预制、运输及安装专项施工方案》。
|
|
|
-(3)我公司现有可投入工程的施工技术力量和机械设备;
|
|
|
-(4)近年来,我公司参加类似工程的经验;
|
|
|
-(5)本合同段工程现场踏勘、调查所获得的现场情况、自然环境、人文环境、市场环境等参考资料;
|
|
|
+(16)《公路工程施工现场安全防护技术要求》(JTT1508-2024);
|
|
|
+(17)《公路水运工程临时用电技术 规程》(JTT1499-2024);
|
|
|
+(18)《坠落防护 水平生命线装置》(GB 38454-2019);
|
|
|
"""
|
|
|
result = asyncio.run(review_all_basis_async(test_text))
|