test_workflow.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. PDF解析工作流测试脚本
  5. 测试包含向量化入库的完整工作流
  6. """
  7. import os
  8. import sys
  9. # 添加项目根目录到Python路径
  10. sys.path.append(os.path.dirname(os.path.abspath(__file__)))
  11. from services.pdf_parser.workflow import PDFParsingWorkflow
  12. def test_pdf_parsing_workflow():
  13. """
  14. 测试PDF解析工作流,包括向量化入库
  15. """
  16. print("=== 测试PDF解析工作流 ===")
  17. # 测试参数
  18. pdf_path = "test/sample.pdf" # 替换为实际的测试PDF路径
  19. dataset_id = "test_dataset"
  20. ragflow_api_url = "http://localhost:8000/" # 替换为实际的RAGFLOW API URL
  21. rag_flow_api_key = "test_api_key" # 替换为实际的API密钥
  22. try:
  23. # 检查测试PDF文件是否存在
  24. if not os.path.exists(pdf_path):
  25. print(f"测试PDF文件不存在: {pdf_path}")
  26. print("请将测试PDF文件放置在指定位置")
  27. return False
  28. # 初始化工作流
  29. workflow = PDFParsingWorkflow()
  30. print(f"工作流初始化成功")
  31. # 运行工作流
  32. print(f"开始运行工作流,解析PDF: {pdf_path}")
  33. result = workflow.run(
  34. pdf_path=pdf_path,
  35. dataset_id=dataset_id,
  36. ragflow_api_url=ragflow_api_url,
  37. rag_flow_api_key=rag_flow_api_key
  38. )
  39. # 打印结果
  40. print(f"\n工作流运行完成")
  41. print(f"解析页面数量: {len(result.get('parsed_results', []))}")
  42. print(f"向量化页面数量: {result.get('vectorized_pages', 0)}")
  43. print(f"向量化结果数量: {len(result.get('vectorized_results', []))}")
  44. # 检查结果
  45. if result.get('is_complete', False):
  46. print("\n✅ 工作流运行成功!")
  47. return True
  48. else:
  49. print("\n❌ 工作流运行失败!")
  50. return False
  51. except Exception as e:
  52. print(f"\n❌ 测试失败: {e}")
  53. import traceback
  54. traceback.print_exc()
  55. return False
  56. if __name__ == "__main__":
  57. test_pdf_parsing_workflow()