#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
测试AI审查引擎的RAG增强检查功能
"""

import sys
import os
import asyncio
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))


from core.base.task_models import TaskFileInfo
from core.construction_review.component.ai_review_engine import AIReviewEngine
from foundation.observability.logger.loggering import review_logger as logger

# 构建测试用的 TaskFileInfo
test_file_info = {
    'file_id': 'test_file_001',
    'user_id': 'test_user',
    'callback_task_id': 'test_task_001',
    'file_name': 'test_document.pdf',
    'file_type': 'pdf',
    'review_config': ['non_parameter_compliance_check', 'parameter_compliance_check'],
    'project_plan_type': '桥梁施工方案',
    'tendency_review_role': 'reviewer',
    'launched_at': 0
}

# 创建 TaskFileInfo 实例
task_file_info = TaskFileInfo(test_file_info)

# 实例化AIReviewEngine (传入 task_file_info)
review_engine = AIReviewEngine(task_file_info=task_file_info)

# 记录开始时间
import time
start_time = time.time()
query = """ 主要部件说明
1、主梁总成
主梁总成由主梁和导梁构成。主梁单节长12m，共7节，每节重10.87t，主梁为主要承载受力构件，其上弦杆上方设有轨道供纵移桁车走行，实现预制梁的纵向移动;下弦设有反滚轮行走轨道，作为导梁纵移、前中支腿移动纵行轨道。导梁长18m，主要是为降低过孔挠度和承受中支腿移动荷载，起安全引导、辅助过孔作用。主梁、导梁为三角桁架构件单元，采用销轴连接，前、后端各设置横联构架。

图4-1 主梁总成图
注意事项：
（1）更换上、下弦销轴时，应优先向设备供应方购买符合要求的备件。自行更换时，材料性能必须优于设计零件性能，并按规定进行热处理，否则可能造成人员、设备事故。
（2）销轴不得弯曲受力，不得用销轴作为锤砸工具，不得任意放置及焊接"""
unit_content= {
    "content" : query,
}
result = review_engine.rag_enhanced_check(unit_content)


print(result)

end_time = time.time()
elapsed_time = end_time - start_time
print(f"\nRAG增强检查完成，耗时: {elapsed_time:.2f}秒")
