ó
    �®žj:  ã                   óà   • S r SSKrSSKJr  SSKJrJrJr  SSKJ	r	  SSK
JrJrJr  \(       a  SSKJrJr  SSKJrJrJrJrJr  \R.                  " \5      rS	\S
SS\S\\\\4      S\	S\4S jrg)z+Factory for creating VLM inference engines.é    N)ÚPath)ÚTYPE_CHECKINGÚOptionalÚUnion)ÚAcceleratorOptions)ÚBaseVlmEngineÚBaseVlmEngineOptionsÚVlmEngineType)ÚEngineModelConfigÚVlmModelSpec)ÚApiVlmEngineOptionsÚAutoInlineVlmEngineOptionsÚMlxVlmEngineOptionsÚTransformersVlmEngineOptionsÚVllmVlmEngineOptionsÚoptionsÚ
model_specr   Úenable_remote_servicesÚartifacts_pathÚaccelerator_optionsÚreturnc                 ó(  • U R                   nSnUb_  U[        R                  :w  aK  UR                  U5      n[        R                  " U5      (       a  UR                  U5      nXvR                  S'   U[        R                  :X  a<  SSKJn  SSK	J
n	  [        X5      (       d  [        S[        U 5       35      eU	" U UUUS9$ U[        R                  :X  a<  SSKJn
  SS	KJn  [        X
5      (       d  [        S
[        U 5       35      eU" U UUUS9$ U[        R$                  :X  a:  SSKJn  SSKJn  [        X5      (       d  [        S[        U 5       35      eU" XUS9$ U[        R,                  :X  a<  SSKJn  SSKJn  [        X5      (       d  [        S[        U 5       35      eU" U UUUS9$ [        R                  " U5      (       a<  SSKJn  SSKJn  [        U U5      (       d  [        S[        U 5       35      eU" UU US9$ [        SU 35      e)aI  Create a VLM inference engine from options.

Args:
    options: Engine configuration options
    model_spec: Model specification (for generating engine-specific configs)

Returns:
    Initialized engine instance

Raises:
    ValueError: If engine type is not supported
    ImportError: If required dependencies are not installed
NÚ
api_paramsr   )r   )ÚAutoInlineVlmEnginez)Expected AutoInlineVlmEngineOptions, got )r   r   r   )r   )ÚTransformersVlmEnginez+Expected TransformersVlmEngineOptions, got )Úmodel_configr   r   )r   )ÚMlxVlmEnginez"Expected MlxVlmEngineOptions, got )r   r   )r   )ÚVllmVlmEnginez#Expected VllmVlmEngineOptions, got )r   )ÚApiVlmEnginez"Expected ApiVlmEngineOptions, got )r   r   r   zUnsupported engine type: )Úengine_typer
   ÚAUTO_INLINEÚget_engine_configÚis_api_variantÚget_api_paramsÚextra_configÚ$docling.datamodel.vlm_engine_optionsr   Ú7docling.models.inference_engines.vlm.auto_inline_enginer   Ú
isinstanceÚ
ValueErrorÚtypeÚTRANSFORMERSr   Ú8docling.models.inference_engines.vlm.transformers_enginer   ÚMLXr   Ú/docling.models.inference_engines.vlm.mlx_enginer   ÚVLLMr   Ú0docling.models.inference_engines.vlm.vllm_enginer   r   ÚAdocling.models.inference_engines.vlm.api_openai_compatible_enginer   )r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   s                     Úi/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/models/inference_engines/vlm/factory.pyÚcreate_vlm_enginer3      s&  € ð* ×%Ñ%€Kð 15€LØÑ +´×1JÑ1JÓ"Jà!×3Ñ3°KÓ@ˆô ×'Ò'¨×4Ñ4Ø#×2Ñ2°;Ó?ˆJØ6@×%Ñ% lÑ3à”m×/Ñ/Ó/ÝSõ	
ô ˜'×>Ñ>ÜØ;¼DÀ»M¸?ÐKóð ñ #ØØ!Ø)Ø 3ñ	
ð 	
ð 
œ×2Ñ2Ó	2ÝUõ	
ô ˜'×@Ñ@ÜØ=¼dÀ7»m¸_ÐMóð ñ %ØØ%Ø)Ø 3ñ	
ð 	
ð 
œ×)Ñ)Ó	)ÝLÝPä˜'×7Ñ7ÜÐAÄ$ÀwÃ-ÀÐQÓRÐRÙØ¸~ñ
ð 	
ð 
œ×*Ñ*Ó	*ÝMÝRä˜'×8Ñ8ÜÐBÄ4ÈÃ=À/ÐRÓSÐSÙØØ%Ø)Ø 3ñ	
ð 	
ô 
×	%Ò	% k×	2Ñ	2ÝLõ	
ô ˜'Ð#6×7Ñ7ÜÐAÄ$ÀwÃ-ÀÐQÓRÐRÙØ#9ØØ%ñ
ð 	
ô Ð4°[°MÐBÓCÐCó    )Ú__doc__ÚloggingÚpathlibr   Útypingr   r   r   Ú%docling.datamodel.accelerator_optionsr   Ú)docling.models.inference_engines.vlm.baser   r	   r
   Ú#docling.datamodel.stage_model_specsr   r   r&   r   r   r   r   r   Ú	getLoggerÚ__name__Ú_logÚboolÚstrr3   © r4   r2   Ú<module>rB      s¢   ðñ 2ã Ý ß 1Ñ 1å D÷ñ ö ßS÷õ ð ×Ò˜Ó"€ðjDà!ðjDð ðjDð !ð	jDð
 ˜U 4¨ 9Ñ-Ñ.ðjDð ,ðjDð õjDr4   