| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- """完整PDF解析服务测试脚本"""
- import sys
- import os
- import json
- from pathlib import Path
- sys.path.append(os.path.dirname(os.path.abspath(__file__)))
- from services.pdf_parser.main import PDFParsingService
- def test_full_service():
- """测试完整的PDF解析服务"""
- print("=" * 50)
- print("完整PDF解析服务测试")
- print("=" * 50)
-
- # 检查PDF文件
- pdf_path = r"D:\project\work\ragflow_plugs\book\不一样的卡梅拉1-我想去看海.pdf"
- pdf = Path(pdf_path)
- if not pdf.exists():
- print(f"✗ PDF文件不存在: {pdf_path}")
- print("请确保PDF文件存在,或修改脚本中的pdf_path变量")
- return False
-
- print(f"✓ PDF文件存在: {pdf_path}")
- print(f" 大小: {pdf.stat().st_size} 字节")
- print()
-
- try:
- # 创建服务实例
- print("创建PDF解析服务实例...")
- service = PDFParsingService(model_name="gpt-4o")
- print("✓ 服务实例创建成功")
- print(f" 使用模型: {service.model_name}")
- print()
-
- # 测试PDF拆分功能
- print("测试PDF拆分功能...")
- from services.pdf_parser.pdf_splitter import PDFSplitter
- splitter = PDFSplitter()
- pages = splitter.split_pdf(pdf_path)
- print(f"✓ PDF拆分成功,共 {len(pages)} 页")
- print(f" 第1页图像大小: {pages[0]['image'].size}")
- print()
-
- # 注意:完整解析需要模型API密钥,这里只测试到拆分阶段
- print("注意:完整解析需要配置模型API密钥")
- print("当前只测试了PDF拆分功能,模型解析需要配置API_KEY")
- print()
-
- print("=" * 50)
- print("测试完成!")
- print("✓ PDF拆分功能正常工作")
- print("✓ 服务实例创建成功")
- print("✓ 依赖配置正确")
- print("=" * 50)
-
- # 输出使用说明
- print("\n使用说明:")
- print("1. 配置.env文件:")
- print(" - API_KEY=your-api-key")
- print(" - BASE_URL=https://api.openai.com/v1")
- print(" - MODEL_NAME=qwen3-vl")
- print(" - MODEL_PROVIDER=openai")
- print("2. 运行解析:")
- print(" service = PDFParsingService()")
- print(" result = service.parse_pdf('your_pdf_file.pdf')")
-
- return True
-
- except Exception as e:
- print(f"✗ 测试失败: {str(e)}")
- print("可能的解决方案:")
- print("1. 确保已安装所有依赖: pip install -r requirements.txt")
- print("2. 检查PDF文件是否损坏")
- print("3. 检查PyMuPDF版本是否兼容")
- return False
- def main():
- """主函数"""
- test_full_service()
- if __name__ == "__main__":
- main()
|