feat: add mineru model
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
|
||||
from app.core.dependencies import get_image_processor, get_layout_detector, get_ocr_service
|
||||
from app.core.dependencies import get_image_processor, get_layout_detector, get_ocr_service, get_mineru_ocr_service
|
||||
from app.schemas.image import ImageOCRRequest, ImageOCRResponse
|
||||
from app.services.image_processor import ImageProcessor
|
||||
from app.services.layout_detector import LayoutDetector
|
||||
from app.services.ocr_service import OCRService
|
||||
from app.services.ocr_service import OCRService, MineruOCRService
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -16,7 +16,8 @@ async def process_image_ocr(
|
||||
request: ImageOCRRequest,
|
||||
image_processor: ImageProcessor = Depends(get_image_processor),
|
||||
layout_detector: LayoutDetector = Depends(get_layout_detector),
|
||||
ocr_service: OCRService = Depends(get_ocr_service),
|
||||
mineru_service: MineruOCRService = Depends(get_mineru_ocr_service),
|
||||
paddle_service: OCRService = Depends(get_ocr_service),
|
||||
) -> ImageOCRResponse:
|
||||
"""Process an image and extract content as LaTeX, Markdown, and MathML.
|
||||
|
||||
@@ -35,7 +36,12 @@ async def process_image_ocr(
|
||||
)
|
||||
|
||||
try:
|
||||
ocr_result = ocr_service.recognize(image)
|
||||
if request.model_name == "mineru":
|
||||
ocr_result = mineru_service.recognize(image)
|
||||
elif request.model_name == "paddle":
|
||||
ocr_result = paddle_service.recognize(image)
|
||||
else:
|
||||
raise HTTPException(status_code=400, detail="Invalid model name")
|
||||
except RuntimeError as e:
|
||||
raise HTTPException(status_code=503, detail=str(e))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user