feat: add glm ocr
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, get_mineru_ocr_service
|
||||
from app.core.dependencies import get_image_processor, get_layout_detector, get_ocr_service, get_mineru_ocr_service, get_glmocr_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, MineruOCRService
|
||||
from app.services.ocr_service import OCRService, MineruOCRService, GLMOCRService
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@@ -18,6 +18,7 @@ async def process_image_ocr(
|
||||
layout_detector: LayoutDetector = Depends(get_layout_detector),
|
||||
mineru_service: MineruOCRService = Depends(get_mineru_ocr_service),
|
||||
paddle_service: OCRService = Depends(get_ocr_service),
|
||||
glmocr_service: GLMOCRService = Depends(get_glmocr_service),
|
||||
) -> ImageOCRResponse:
|
||||
"""Process an image and extract content as LaTeX, Markdown, and MathML.
|
||||
|
||||
@@ -33,18 +34,16 @@ async def process_image_ocr(
|
||||
Use the /convert/latex-to-omml endpoint to convert LaTeX to OMML separately.
|
||||
"""
|
||||
|
||||
image = image_processor.preprocess(
|
||||
image_url=request.image_url,
|
||||
image_base64=request.image_base64,
|
||||
)
|
||||
|
||||
try:
|
||||
if request.model_name == "mineru":
|
||||
image = image_processor.preprocess(
|
||||
image_url=request.image_url,
|
||||
image_base64=request.image_base64,
|
||||
)
|
||||
layout_info = layout_detector.detect(image)
|
||||
if layout_info.MixedRecognition:
|
||||
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")
|
||||
ocr_result = glmocr_service.recognize(image)
|
||||
except RuntimeError as e:
|
||||
raise HTTPException(status_code=503, detail=str(e))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user