diff --git a/docling/models/base_model.py b/docling/models/base_model.py index c2cce6bd..712d329d 100644 --- a/docling/models/base_model.py +++ b/docling/models/base_model.py @@ -14,6 +14,8 @@ class BaseModelWithOptions(Protocol): @classmethod def get_options_type(cls) -> Type[BaseOptions]: ... + def __init__(self, *, options: BaseOptions, **kwargs): ... + class BasePageModel(ABC): @abstractmethod diff --git a/docling/models/base_ocr_model.py b/docling/models/base_ocr_model.py index a4c9f9e3..c9d7b280 100644 --- a/docling/models/base_ocr_model.py +++ b/docling/models/base_ocr_model.py @@ -22,6 +22,7 @@ _log = logging.getLogger(__name__) class BaseOcrModel(BasePageModel, BaseModelWithOptions): def __init__( self, + *, enabled: bool, artifacts_path: Optional[Path], options: OcrOptions, diff --git a/docling/models/factories/base_factory.py b/docling/models/factories/base_factory.py index c1d34b5b..26a659ef 100644 --- a/docling/models/factories/base_factory.py +++ b/docling/models/factories/base_factory.py @@ -39,10 +39,10 @@ class BaseFactory(Generic[A], metaclass=ABCMeta): def classes(self): return self._classes - def create_instance(self, options: BaseOptions, *args, **kwargs) -> A: + def create_instance(self, options: BaseOptions, **kwargs) -> A: try: _cls = self._classes[type(options)] - return _cls(*args, **kwargs) + return _cls(options=options, **kwargs) except KeyError: raise RuntimeError(self._err_msg_on_class_not_found(options.kind)) diff --git a/docling/models/picture_description_base_model.py b/docling/models/picture_description_base_model.py index 734c18ba..129387b3 100644 --- a/docling/models/picture_description_base_model.py +++ b/docling/models/picture_description_base_model.py @@ -32,6 +32,7 @@ class PictureDescriptionBaseModel( def __init__( self, + *, enabled: bool, enable_remote_services: bool, artifacts_path: Optional[Union[Path, str]],