test_full_service.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. """完整PDF解析服务测试脚本"""
  2. import sys
  3. import os
  4. import json
  5. from pathlib import Path
  6. sys.path.append(os.path.dirname(os.path.abspath(__file__)))
  7. from services.pdf_parser.main import PDFParsingService
  8. def test_full_service():
  9. """测试完整的PDF解析服务"""
  10. print("=" * 50)
  11. print("完整PDF解析服务测试")
  12. print("=" * 50)
  13. # 检查PDF文件
  14. pdf_path = r"D:\project\work\ragflow_plugs\book\不一样的卡梅拉1-我想去看海.pdf"
  15. pdf = Path(pdf_path)
  16. if not pdf.exists():
  17. print(f"✗ PDF文件不存在: {pdf_path}")
  18. print("请确保PDF文件存在,或修改脚本中的pdf_path变量")
  19. return False
  20. print(f"✓ PDF文件存在: {pdf_path}")
  21. print(f" 大小: {pdf.stat().st_size} 字节")
  22. print()
  23. try:
  24. # 创建服务实例
  25. print("创建PDF解析服务实例...")
  26. service = PDFParsingService(model_name="gpt-4o")
  27. print("✓ 服务实例创建成功")
  28. print(f" 使用模型: {service.model_name}")
  29. print()
  30. # 测试PDF拆分功能
  31. print("测试PDF拆分功能...")
  32. from services.pdf_parser.pdf_splitter import PDFSplitter
  33. splitter = PDFSplitter()
  34. pages = splitter.split_pdf(pdf_path)
  35. print(f"✓ PDF拆分成功,共 {len(pages)} 页")
  36. print(f" 第1页图像大小: {pages[0]['image'].size}")
  37. print()
  38. # 注意:完整解析需要模型API密钥,这里只测试到拆分阶段
  39. print("注意:完整解析需要配置模型API密钥")
  40. print("当前只测试了PDF拆分功能,模型解析需要配置API_KEY")
  41. print()
  42. print("=" * 50)
  43. print("测试完成!")
  44. print("✓ PDF拆分功能正常工作")
  45. print("✓ 服务实例创建成功")
  46. print("✓ 依赖配置正确")
  47. print("=" * 50)
  48. # 输出使用说明
  49. print("\n使用说明:")
  50. print("1. 配置.env文件:")
  51. print(" - API_KEY=your-api-key")
  52. print(" - BASE_URL=https://api.openai.com/v1")
  53. print(" - MODEL_NAME=qwen3-vl")
  54. print(" - MODEL_PROVIDER=openai")
  55. print("2. 运行解析:")
  56. print(" service = PDFParsingService()")
  57. print(" result = service.parse_pdf('your_pdf_file.pdf')")
  58. return True
  59. except Exception as e:
  60. print(f"✗ 测试失败: {str(e)}")
  61. print("可能的解决方案:")
  62. print("1. 确保已安装所有依赖: pip install -r requirements.txt")
  63. print("2. 检查PDF文件是否损坏")
  64. print("3. 检查PyMuPDF版本是否兼容")
  65. return False
  66. def main():
  67. """主函数"""
  68. test_full_service()
  69. if __name__ == "__main__":
  70. main()