|
|
@@ -55,6 +55,8 @@ from dataclasses import dataclass
|
|
|
from enum import Enum
|
|
|
from typing import Any, Dict, List, Optional, Sequence
|
|
|
|
|
|
+import pandas as pd
|
|
|
+
|
|
|
from core.base.task_models import TaskFileInfo
|
|
|
from core.construction_review.component.infrastructure.milvus import MilvusConfig, MilvusManager
|
|
|
from core.construction_review.component.infrastructure.parent_tool import (
|
|
|
@@ -738,25 +740,30 @@ class AIReviewEngine(BaseReviewer):
|
|
|
logger.info(f" 最大并发数: {concurrent_workers}")
|
|
|
|
|
|
review_results = await review_pipeline.review(documents, specification)
|
|
|
-
|
|
|
+ review_results_flag = pd.DataFrame(review_results)["chapter_classification"].unique().tolist()
|
|
|
+ # with open(r'temp\document_temp\1_spec_review_results.json', 'w', encoding='utf-8') as f:
|
|
|
+ # json.dump(review_results, f, ensure_ascii=False, indent=4)
|
|
|
# 统计结果
|
|
|
success_count = sum(1 for r in review_results if isinstance(r.get('review_result', {}), dict) and 'error' not in r.get('review_result', {}))
|
|
|
error_count = len(review_results) - success_count
|
|
|
logger.info(f"\n 审查完成: 成功 {success_count} 个, 失败 {error_count} 个")
|
|
|
|
|
|
-
|
|
|
# 6. 使用结果解析处理组件,生成规范覆盖汇总表
|
|
|
logger.info("\n[5/5] 生成规范要点覆盖汇总表...")
|
|
|
analyzer = ResultAnalyzer(str(csv_path))
|
|
|
processed_results = analyzer.process_results(review_results)
|
|
|
- spec_summary_csv_path = base_dir / 'output' / 'spec_review_summary.csv'
|
|
|
+ spec_summary_csv_path = Path('temp') / 'document_temp' / '3_spec_review_summary.csv'
|
|
|
summary_rows = analyzer.build_spec_summary(processed_results)
|
|
|
logger.info(f" 规范覆盖汇总结果已保存至: {spec_summary_csv_path}")
|
|
|
-
|
|
|
+ summary_rows = pd.DataFrame(summary_rows)
|
|
|
+ summary_rows = summary_rows[summary_rows['标签'].isin(review_results_flag)]
|
|
|
+ # summary_rows.to_csv(str(spec_summary_csv_path), encoding='utf-8-sig', index=False)
|
|
|
+ summary_rows = summary_rows.to_dict('records')
|
|
|
# 生成缺失要点 JSON 列表,便于前端消费
|
|
|
#missing_issue_json_path = Path(r'temp\document_temp') / 'spec_review_missing_issues.json'
|
|
|
issues = analyzer.build_missing_issue_list(summary_rows)
|
|
|
-
|
|
|
+ # with open(r'temp\document_temp\4_spec_review_missing_issues.json', 'w', encoding='utf-8') as f:
|
|
|
+ # json.dump(issues, f, ensure_ascii=False, indent=4)
|
|
|
# 包装成外层格式化期望的结构
|
|
|
execution_time = time.time() - start_time
|
|
|
return {
|