#!/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.construction_review.component.ai_review_engine import AIReviewEngine from foundation.observability.logger.loggering import server_logger as logger async def test_rag_enhanced_check(): """ 测试RAG增强检查功能 """ try: print("=" * 80) print("开始测试AI审查引擎的RAG增强检查功能") print("=" * 80) # 初始化AI审查引擎 review_engine = AIReviewEngine() # 设置milvus集合名称(从test_rag.py中获取) collection_name = "first_bfp_collection" review_engine.milvus_collection = collection_name # 准备测试用的待审查单元内容 # 使用与test_rag.py相同的查询内容进行测试 test_content = """按照《公路钢结构桥梁制造与安装施工规范》(JTG/T3651-2022)的要求,对圆 柱头焊钉进行了焊接工艺评定试验,试验共计1 组,焊接9 个剪力钉,其中3 个用来 做弯曲试验,3 个用来做拉伸试验,3 个备用。施焊参数见表4.4.3。 表4.4.3 焊钉施焊参数 编号 焊接方法 剪力钉直径 (mm) 伸出长度 (mm) 提升高度 (mm) 焊接时间 (s) 焊接电流 (A) YJ-J1 电弧螺柱焊 22 6 3 1.0 1900~2200 焊缝挤出焊脚均匀饱满,外观质量合格。 4.4.3 圆柱头焊钉焊接工艺评定试验结果 按规定对焊钉取3 根进行锤击30º弯曲试验,另外取3 根进行拉伸试验,试验结 果见表4.4.4,接头力学性能满足技术要求。 鹿寨至钦州港公路郁江特大桥钢箱梁 焊接工艺评定总结报告 42 表4.4.4 焊钉锤击30º弯曲试验和拉伸试验结果 规格 锤击30º弯曲试验 拉伸试验 YJ-J1 Φ22×140+ Q355D-δ18 编号 焊缝状况 编号 拉力(KN) 断口 部位 评定标准 1 完好 1 202.05 母材 拉力载荷不 小于 159.6KN,断 口不在焊缝 或热影响区 2 完好 2 201.50 母材 3 完好 3 201.95 母材 鹿寨至钦州港公路郁江特大桥钢箱梁 焊接工艺评定总结报告 43 五、焊接工艺评定试验结果分析 5.1 焊缝强度 1.1 验收标准:焊缝屈服强度和抗拉强度不低于母材标准值。 材质 板厚范围(mm) ReL(MPa) Rm(MPa) A(%) Q355D t≤16 ≥355 ≥470 ≥22 16<t≤40 ≥345 ≥470 ≥22 1.2 根据表4.1.6 中试验结果整理出各类接头强度散点图如下,所有焊缝的屈服 强度、抗拉强度均超过了母材标准值。 5.2 焊缝金属延伸率 2.1 验收标准:不低于母材标准值。 2.2 结果分析:根据表4.1.6 中试验结果整理出散点图如下,所有焊缝的延伸率 均在母材标准要求值之上。 鹿寨至钦州港公路郁江特大桥钢箱梁 焊接工艺评定总结报告 44 5.3 接头韧性 3.1 验收标准:根据设计要求,对接接头及熔透角接接头焊缝中心及热影响区焊 缝V 型缺口低温冲击试验结果的平均值不低于下表的规定值,且任一试验结果不得 低于0.70 倍的标准值。 钢材牌号 试验温度(℃) 冲击韧性(J) Q355D -20 34 注:板厚≤20mm 的薄板接头冲击功规定值为27J 3.2 结果分析:从表4.1.6 中试验数据可以看出:所有试验结果中冲击功最小平均 值为YJ-D2 试件的焊缝中心冲击功47J,大于验收值;单一试件的冲击功最小值为 YJ-D2(板厚t=18mm)试件的焊缝中心冲击功31J,大于验收值。 5.4 接头弯曲 4.1 验收标准:对接接头弯曲180°,试样受拉面上的裂纹总长不大于试样宽度 的15%,且单个裂纹长度不大于3mm,则判为合格。 4.2 结果分析:所有对接接头的弯曲试验均完好未产生裂纹。 5.5 接头硬度 5.1 验收标准:不大于HV380。 5.2 结果分析:根据表4.1.6 中试验结果整理出接头各区最高硬度曲线图如下, 所有接头各区的硬度低于HV380。 鹿寨至钦州港公路郁江特大桥钢箱梁 焊接工艺评定总结报告 45 5.6 接头宏观断面腐蚀 焊缝均熔合良好,未见焊接缺陷。 鹿寨至钦州港公路郁江特大桥钢箱梁 焊接工艺评定总结报告 46 六、结论 从以上试验的焊缝检验和试验结果可以看出:焊缝内、外部质量良好,通过宏观""" # 构造unit_content格式 unit_content = { 'content': test_content, 'review_references': '' # 可以为空或提供参考信息 } print(f"测试内容长度: {len(test_content)} 字符") print(f"使用的集合名称: {collection_name}") # 执行RAG增强检查 print("\n开始执行RAG增强检查...") start_time = asyncio.get_event_loop().time() result = review_engine.rag_enhanced_check(unit_content) end_time = asyncio.get_event_loop().time() elapsed_time = end_time - start_time print(f"\nRAG增强检查完成,耗时: {elapsed_time:.2f}秒") # 分析结果 print("\n" + "=" * 60) print("检查结果分析:") print("=" * 60) if 'vector_search' in result: vector_search_results = result['vector_search'] print(f"返回结果数量: {len(vector_search_results)}") for i, search_result in enumerate(vector_search_results): print(f"\n--- 搜索结果 {i + 1} ---") if isinstance(search_result, dict): # 显示文档内容前100字符 text_content = search_result.get('text_content', '') print(f"文档内容(前100字符): {text_content[:100]}...") # 显示元数据信息 metadata = search_result.get('metadata', {}) if metadata: print(f"文件名称: {metadata.get('file_name', 'N/A')}") print(f"标题: {metadata.get('title', 'N/A')}") print(f"文件ID: {metadata.get('file_id', 'N/A')}") print(f"主键: {metadata.get('pk', 'N/A')}") else: print("元数据: 无") else: print(f"结果格式异常: {type(search_result)} - {search_result}") else: print("错误: 结果中未找到'vector_search'字段") print(f"完整结果: {result}") print("\n" + "=" * 80) print("RAG增强检查测试完成") print("=" * 80) except Exception as e: print(f"\n[ERROR] 测试失败: {str(e)}") import traceback print("详细错误信息:") traceback.print_exc() async def main(): """ 主测试函数 """ await test_rag_enhanced_check() if __name__ == "__main__": print("启动RAG增强检查测试...") asyncio.run(main())