| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- 测试prep_basis_review方法的简单脚本
- """
- import asyncio
- import sys
- import os
- # 添加项目根目录到sys.path
- current_file = os.path.abspath(__file__)
- root_dir = os.path.dirname(os.path.dirname(os.path.dirname(current_file)))
- sys.path.append(root_dir)
- from core.base.task_models import TaskFileInfo
- from core.construction_review.component.ai_review_engine import AIReviewEngine
- async def test_prep_basis_review():
- """测试编制依据审查方法"""
- print("🚀 开始测试 prep_basis_review 方法")
- # 模拟编制依据文本内容
- test_content = """
- (1)《架桥机通用技术条件》(GB/T 26470-2011);
- (2)《起重机设计规范》(GB/T 3811-2008);
- (3)《起重机械安全规程 第 5 部分:桥式和门式起重机》(GB 6067.5-2014);
- (4)《电气装置安装工程 起重机电气装置施工及验收规范》(GB 50256-2014);
- (5)《起重设备安装工程施工及验收规范》(GB50278-2010);
- (6)《施工现场机械设备检查技术规范》(JGJ 160-2016);
- (7)《公路桥涵施工技术规范》(JTG/T 3650-2020);
- (8)《建设工程安全生产管理条例》《四川省安全生产条例》(2023);
- (9)《重要用途钢丝绳》(GB 8918-2006);
- (10)《起重机用钢丝绳》(GB T 34198-2017);
- """
- # 创建模拟的TaskFileInfo
- file_info_dict = {
- 'file_id': "test_file_001",
- 'callback_task_id': "test_callback_001",
- 'user_id': "test_user_001",
- 'review_config': [],
- 'project_plan_type': "construction_plan",
- 'tendency_review_role': "safety_reviewer",
- 'file_name': "test_document.doc",
- 'file_type': "doc",
- 'launched_at': 1234567890
- }
- task_info = TaskFileInfo(file_info_dict)
- # 创建AIReviewEngine实例
- ai_engine = AIReviewEngine(task_info, max_concurrent_reviews=4)
- # 准备审查数据
- review_data = {
- 'content': test_content.strip(),
- 'max_concurrent': 4
- }
- # 执行编制依据审查
- try:
- result = await ai_engine.prep_basis_review(
- review_data=review_data,
- trace_id="test_prep_basis_001",
- state={"test": True},
- stage_name="编制依据审查测试"
- )
- print("✅ 编制依据审查成功完成!")
- print(f"📊 审查结果统计:")
- print(f" - 成功状态: {result.get('success', False)}")
- print(f" - 执行时间: {result.get('execution_time', 0):.2f}秒")
- print(f" - 总编制依据数: {result.get('total_basis_items', 0)}")
- print(f" - 有效项目数: {result.get('valid_items', 0)}")
- print(f" - 标准项目数: {result.get('standard_items', 0)}")
- # 显示部分审查结果详情
- review_results = result.get('review_results', [])
- if review_results:
- print(f"📋 审查结果详情 (前2个批次):")
- for i, batch in enumerate(review_results[:2]):
- print(f" 批次 {i+1}: {len(batch)} 条编制依据")
- for j, item in enumerate(batch[:3]): # 每批次显示前3条
- name = item.get('name', 'Unknown')[:30] + "..." if len(item.get('name', '')) > 30 else item.get('name', 'Unknown')
- status = item.get('status', 'Unknown')
- is_standard = item.get('is_standard', False)
- print(f" {j+1}. {name}: {status} ({'标准' if is_standard else '非标准'})")
- else:
- print("⚠️ 没有返回审查结果")
- except Exception as e:
- print(f"❌ 测试失败: {str(e)}")
- import traceback
- traceback.print_exc()
- if __name__ == "__main__":
- asyncio.run(test_prep_basis_review())
|