init repo

This commit is contained in:
liuyuanchuang
2025-12-29 17:34:58 +08:00
commit 874fd383cc
36 changed files with 2641 additions and 0 deletions

42
app/core/dependencies.py Normal file
View File

@@ -0,0 +1,42 @@
"""Application dependencies."""
from app.services.image_processor import ImageProcessor
from app.services.layout_detector import LayoutDetector
from app.services.ocr_service import OCRService
from app.services.docx_converter import DocxConverter
# Global instances (initialized on startup)
_layout_detector: LayoutDetector | None = None
def init_layout_detector(model_path: str) -> None:
"""Initialize the global layout detector.
Called during application startup.
"""
global _layout_detector
_layout_detector = LayoutDetector(model_path=model_path)
_layout_detector.load_model()
def get_layout_detector() -> LayoutDetector:
"""Get the global layout detector instance."""
if _layout_detector is None:
raise RuntimeError("Layout detector not initialized. Call init_layout_detector() first.")
return _layout_detector
def get_image_processor() -> ImageProcessor:
"""Get an image processor instance."""
return ImageProcessor()
def get_ocr_service() -> OCRService:
"""Get an OCR service instance."""
return OCRService()
def get_docx_converter() -> DocxConverter:
"""Get a DOCX converter instance."""
return DocxConverter()