dataset_manage.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """
  2. 数据集管理 API
  3. 该文件提供数据集管理的 API 接口,支持:
  4. - PDF 文件上传和解析
  5. - 数据集创建
  6. """
  7. from fastapi import FastAPI, HTTPException, UploadFile, File, Form
  8. from typing import Dict, Any
  9. from api.dataset.services.dataset_manage_service import DatasetManageService
  10. # 创建 FastAPI 应用
  11. app = FastAPI(
  12. title="数据集管理 API",
  13. description="数据集管理服务,提供 PDF 解析和数据集创建功能",
  14. version="1.0.0"
  15. )
  16. # 创建数据集管理服务实例
  17. dataset_service = DatasetManageService()
  18. @app.post("/parse-pdf", response_model=Dict[str, Any])
  19. async def parse_pdf(
  20. file: UploadFile = File(...),
  21. series_name: str = Form(...)
  22. ):
  23. """
  24. 解析 PDF 文件接口
  25. - **file**: PDF 文件附件
  26. - **series_name**: 系列名
  27. """
  28. try:
  29. # 验证文件格式
  30. if not file.filename.endswith((".pdf", ".PDF")):
  31. raise HTTPException(status_code=400, detail="只支持 PDF 格式的文件")
  32. # 读取文件内容
  33. file_content = await file.read()
  34. # 调用解析 PDF 方法
  35. result = dataset_service.parse_pdf(
  36. series_name=series_name,
  37. pdf_file=file_content,
  38. pdf_filename=file.filename
  39. )
  40. return {"success": True, "result": result}
  41. except HTTPException as e:
  42. raise e
  43. except Exception as e:
  44. raise HTTPException(status_code=500, detail=f"解析 PDF 文件失败: {str(e)}")