
    @;?i                         d dl mZ ddlmZmZ ddlmZmZmZm	Z	 ddZ
 G d d      Z G d	 d
e      Z G d de      Zy)    )deepcopy   )PaddlePredictorOptioncreate_predictor)build_dataset_checkerbuild_evaluatorbuild_exportorbuild_trainerNc                     t        || |d|S )N)
model_name	model_dir)_ModelBasedInference)r   r   argskwargss       c/var/www/html/leadgen/airagagent/ocr_fallback/ocr_env/lib/python3.12/site-packages/paddlex/model.pycreate_modelr      s    59:=C     c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
_BaseModelc                     t        d      )Nzcheck_dataset is not supported!	Exceptionselfr   r   s      r   check_datasetz_BaseModel.check_dataset"   s    9::r   c                     t        d      )Nztrain is not supported!r   r   s      r   trainz_BaseModel.train%   s    122r   c                     t        d      )Nzevaluate is not supported!r   r   s      r   evaluatez_BaseModel.evaluate(   s    455r   c                     t        d      )Nzexport is not supported!r   r   s      r   exportz_BaseModel.export+   s    233r   c                     t        d      )Nzpredict is not supported!r   r   s      r   predictz_BaseModel.predict.   s    344r   c                     t        d      )Nzset_predict is not supported!r   r   s      r   set_predictz_BaseModel.set_predict1   s    788r   c              /   D   K    | j                   |i |E d {    y 7 wN)r#   r   s      r   __call__z_BaseModel.__call__4   s     4<<0000     N)
__name__
__module____qualname__r   r   r   r!   r#   r%   r(    r   r   r   r   !   s%    ;364591r   r   c                   $    e Zd Zd Zd Zd Zd Zy)r   c                 $    t        |i || _        y r'   )r   
_predictorr   s      r   __init__z_ModelBasedInference.__init__9   s    *D;F;r   c              /   D   K    | j                   |i |E d {    y 7 wr'   )r0   r   s      r   r#   z_ModelBasedInference.predict<   s     "4??D3F333r)   c                 <     | j                   j                  di | y Nr-   )r0   set_predictor)r   r   s     r   r5   z"_ModelBasedInference.set_predictor?   s    %%%//r   c                     t        | j                  |      rt        | j                  |      S t        d| j                  j
                   d| d      )N'z' object has no attribute ')hasattrr0   getattrAttributeError	__class__r*   )r   names     r   __getattr__z _ModelBasedInference.__getattr__B   sL    4??D)4??D11''((CD6K
 	
r   N)r*   r+   r,   r1   r#   r5   r=   r-   r   r   r   r   8   s    <40
r   r   c                   D     e Zd Zd fd	Zd Zd Zd Zd Zd Zd Z	 xZ
S )	_ModelBasedConfigc                 f    t         |           || _        |j                  j                  | _        y r'   )superr1   _configGlobalmodel_model_name)r   configr   r   r;   s       r   r1   z_ModelBasedConfig.__init__K   s'    !==..r   c                    t        | j                  j                        }|j                  dd       }| j                  j                  j                  dd       }t               }|j                  d|      }|j                  d|      }|j                  d|      }|j                  d|      }i }	||urt        di ||	d<   ||ur||	d<   nd|	d<   ||ur||	d<   ||ur||	d<   t        | j                  f||d	|	}
d
|v sJ ||
fS )Nr   devicekernel_optionuse_hpip
hpi_configgenai_config	pp_optionF)r   rH   inputr-   )
r   rB   PredictpoprC   getobjectr   r   rE   )r   predict_kwargsr   rH   UNSETrI   rJ   rK   rL   create_predictor_kwargs	predictors              r   _build_predictorz"_ModelBasedConfig._build_predictorP   sB   !$,,"6"67"&&{D9	$$((48&**?EB!%%j%8#''e<
%)).%@"$%3H 44#K0 5 2:#J/27#J/U"4>#L1u$6B#N3$

 &	
	 .(((y((r   c                 L    t        | j                        }|j                         S r'   )r   rB   check)r   dataset_checkers     r   r   z_ModelBasedConfig.check_datasets   s    /=$$&&r   c                 N    t        | j                        }|j                          y r'   )r
   rB   r   )r   trainers     r   r   z_ModelBasedConfig.trainw   s    -r   c                 L    t        | j                        }|j                         S r'   )r   rB   r   )r   	evaluators     r   r   z_ModelBasedConfig.evaluate{   s    #DLL1	!!##r   c                 L    t        | j                        }|j                         S r'   )r	   rB   r!   )r   exportors     r   r!   z_ModelBasedConfig.export   s    !$,,/  r   c              #   V   K   | j                         \  }} |di |E d {    y 7 wr4   )rW   )r   rS   rV   s      r   r#   z_ModelBasedConfig.predict   s*     $($9$9$;!	.~...s   )')r'   )r*   r+   r,   r1   rW   r   r   r   r!   r#   __classcell__)r;   s   @r   r?   r?   J   s'    /
!)F'$!/r   r?   r'   )copyr   	inferencer   r   modulesr   r   r	   r
   r   r   r   r?   r-   r   r   <module>rf      s>     > 1 1.
: 
$;/
 ;/r   