"""
异步性能测试脚本
对比同步和异步实现的性能差异
"""
from PIL import Image
from agent.agent import OcrAgent
import time


def main():
    print("\n" + "="*70)
    print("🧪 异步 OCR 性能测试")
    print("="*70)

    # 加载测试图片
    print("\n📸 加载测试图片...")
    try:
        image = Image.open("./test1.jpg").convert("RGB")
        print(f"✅ 图片加载成功: {image.size}")
    except FileNotFoundError:
        # 尝试其他可能的路径
        try:
            image = Image.open("./test.jpg").convert("RGB")
            print(f"✅ 图片加载成功: {image.size}")
        except:
            print("❌ 未找到测试图片 (test1.jpg 或 test.jpg)")
            print("请确保测试图片存在于当前目录")
            return

    # 创建 Agent
    print("\n🤖 初始化 OCR Agent...")
    agent = OcrAgent()

    # 执行异步 OCR
    print("\n" + "="*70)
    print("🚀 开始异步并发 OCR 提取...")
    print("="*70)

    overall_start = time.perf_counter()
    result = agent.agent_ocr(image)
    overall_end = time.perf_counter()

    print("\n" + "="*70)
    print(f"✨ 总体执行时间: {overall_end - overall_start:.3f} 秒")
    print("="*70)

    # 输出结果摘要
    print("\n📊 结果摘要:")
    print(f"  - 化学品中文名: {result['tag']['name_cn']}")
    print(f"  - 化学品英文名: {result['tag']['name_en']}")
    print(f"  - 成分数量: {len(result['tag']['cf_list'])}")
    print(f"  - 安全信号词: {result['key_word']}")
    print(f"  - 供应商数量: {len(result['supplier'])}")

    print("\n✅ 测试完成！")
    print("\n💡 提示: 观察日志中的时间戳，你会发现所有任务几乎同时开始执行")
    print("   这就是真正的异步并发效果！")


if __name__ == "__main__":
    main()
