
    =pj9%                        S SK Jr  S SKJrJrJrJr  SSKJr  SSK	J
r
  SSKJrJr  SS	KJr  SS
KJrJ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  SSKJr  SSKJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*  SSK+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:J;r;  SSK<J=r=  SSK>J?r?  SS K@JArA  SS!KBJCrC  SS"KDJErE  SS#KFJGrG  SS$KHJIrIJJrJ  SS%KKJLrL  SS&KMJNrN  SS'KOJPrP  SS(KQJRrR  SS)KSJTrT  SS*KUJVrV  S+\WS,\W4S- jrXS.\WS,\\W\4   4S/ jrY S>S0S0S0S0S0S0S0S1.S.\\W   S2\\\W\4      S3\\W   S4\\W   S5\\\W\4      S6\\   S7\\Z   S8\\\\W\4   \4      S9\S,\4S: jjjr[S2\S,\4S; jr\S2\S,\4S< jr]S2\S,\4S= jr^g0)?    )Path)AnyDictOptionalUnion   )logging)parse_config   )	HPIConfigPaddlePredictorOption   )AnomalyDetectionPipeline)PedestrianAttributeRecPipelineVehicleAttributeRecPipeline)BasePipeline)BaseChatBaseGeneratePromptBaseRetriever)DocPreprocessorPipeline)DocUnderstandingPipeline)FaceRecPipeline)FormulaRecognitionPipeline)ImageClassificationPipeline)%ImageMultiLabelClassificationPipeline)InstanceSegmentationPipeline)KeypointDetectionPipeline)LayoutParsingPipeline)BEVDet3DPipeline)%MultilingualSpeechRecognitionPipeline)ObjectDetectionPipeline)OCRPipeline)OpenVocabularyDetectionPipeline)"OpenVocabularySegmentationPipeline)PaddleOCRVLPipeline)PP_ChatOCRv3_PipelinePP_ChatOCRv4_Pipeline)PP_DocTranslation_Pipeline)ShiTuV2Pipeline)RotatedObjectDetectionPipeline)SealRecognitionPipeline)SemanticSegmentationPipeline)SmallObjectDetectionPipeline)TableRecognitionPipelineTableRecognitionPipelineV2)TextToSpeechPipeline)TSAnomalyDetPipeline)TSClsPipeline)TSFcPipeline)VideoClassificationPipeline)VideoDetectionPipelinepipeline_namereturnc                     [        [        5      R                  R                  R                  S-  U  S3-  R                  5       n[        U5      R	                  5       (       d  gU$ )z
Get the full path of the pipeline configuration file based on the provided pipeline name.

Args:
    pipeline_name (str): The name of the pipeline.

Returns:
    str: The full path to the pipeline configuration file or None if not found.
zconfigs/pipelines.yamlN)r   __file__parentresolveexists)r6   pipeline_paths     `/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/inference/pipelines/__init__.pyget_pipeline_pathr@   <   sa     	X$$++
	O5
!	" gi	 
 %%''    pipelinec                     U R                  S5      (       d4  U R                  S5      (       d  [        U 5      nUc  [        SU  S35      eOU n[        U5      nU$ )z
Load the pipeline configuration.

Args:
    pipeline (str): The name of the pipeline or the path to the config file.

Returns:
    Dict[str, Any]: The parsed pipeline configuration.

Raises:
    Exception: If the config file of pipeline does not exist.
z.ymlr9   zThe pipeline (zC) does not exist! Please use a pipeline name or a config file path!)endswithr@   	Exceptionr
   )rB   r>   configs      r?   load_pipeline_configrG   P   sj     f%%):):7)C)C)(3  
*mn  !
 !-(FMrA   NrF   deviceengineengine_config	pp_optionuse_hpip
hpi_configrF   rI   rJ   rK   rL   rM   rN   kwargsc                   U c  Uc  [        S5      eUc  [        U 5      nO;U b(  US   U :w  a  [        R                  " SUS   U US   5        UR	                  5       nUS   n	Uc  UR                  SS5      nOUR                  SS5        Uc  UR                  SS5      nOUR                  SS5        Uc  UR                  SS5      nOX1S'   Uc  UR                  S	S5      nOXAS	'   [        R                  " U	5      " SUUUUUUUS
.UD6n U $ )a  Create a pipeline instance from a pipeline name or config.


Args:
    pipeline (Optional[str], optional): Pipeline name (e.g. "OCR", "object_detection") or
        path to a YAML config file. Required if `config` is None.
    config (Optional[Dict[str, Any]], optional): Pipeline configuration dict. If provided,
        `pipeline` name is optional and used only for validation. If both are provided
        and pipeline names differ, `config` takes precedence.
    device (Optional[str], optional): Device to run on (e.g. "gpu", "cpu", "npu:0").
    engine (Optional[str], optional): Inference engine for models in the pipeline.
    engine_config (Optional[Dict[str, Any]], optional): Engine-specific config.
    pp_option (Optional[PaddlePredictorOption], optional): Paddle predictor options.
    use_hpip (Optional[bool], optional): Whether to use HPIP.
    hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional): HPIP configuration.

Returns:
    BasePipeline: The created pipeline instance.
Nz=Both `pipeline` and `config` cannot be None at the same time.r6   ziThe pipeline name in the config (%r) is different from the specified pipeline name (%r). %r will be used.rM   FrN   rJ   rK   rH    )
ValueErrorrG   r	   warningcopypopgetr   )
rB   rF   rI   rJ   rK   rL   rM   rN   rO   r6   s
             r?   create_pipelinerW   i   s=   > FNK
 	
 ~%h/F?$;x$GOO{''	 ?+M::j%0

:t$ZZd3


<&~Hd+!x

?D9"/. 	#	 	H OrA   c                 p    SU ;   a  [        U S   5      eU S   n[        R                  " U5      " U 5      nU$ )a  Creates an instance of a chat bot based on the provided configuration.

Args:
    config (Dict): Configuration settings, expected to be a dictionary with at least a 'model_name' key.
    *args: Additional positional arguments. Not used in this function but allowed for future compatibility.
    **kwargs: Additional keyword arguments. Not used in this function but allowed for future compatibility.

Returns:
    BaseChat: An instance of the chat bot class corresponding to the 'model_name' in the config.
chat_bot_config_errorapi_type)rR   r   rV   )rF   argsrO   rZ   chat_bots        r?   create_chat_botr]      s?     &( 7899j!H||H%f-HOrA   c                 p    SU ;   a  [        U S   5      eU S   n[        R                  " U5      " U 5      nU$ )a  
Creates a retriever instance based on the provided configuration.

Args:
    config (Dict): Configuration settings, expected to be a dictionary with at least a 'model_name' key.
    *args: Additional positional arguments. Not used in this function but allowed for future compatibility.
    **kwargs: Additional keyword arguments. Not used in this function but allowed for future compatibility.

Returns:
    BaseRetriever: An instance of a retriever class corresponding to the 'model_name' in the config.
retriever_config_errorrZ   )rR   r   rV   )rF   r[   rO   rZ   	retrievers        r?   create_retrieverra      sB       6) 89::j!H!!(+F3IrA   c                 p    SU ;   a  [        U S   5      eU S   n[        R                  " U5      " U 5      nU$ )a  
Creates a prompt engineering instance based on the provided configuration.

Args:
    config (Dict): Configuration settings, expected to be a dictionary with at least a 'task_type' key.
    *args: Variable length argument list for additional positional arguments.
    **kwargs: Arbitrary keyword arguments.

Returns:
    BaseGeneratePrompt: An instance of a prompt engineering class corresponding to the 'task_type' in the config.
pe_config_error	task_type)rR   r   rV   )rF   r[   rO   rd   pes        r?   create_prompt_engineeringrf      sA      F" 1233{#I					*6	2BIrA   )N)_pathlibr   typingr   r   r   r   utilsr	   utils.configr
   modelsr   r   anomaly_detectionr   attribute_recognitionr   r   baser   
componentsr   r   r   doc_preprocessorr   doc_understandingr   face_recognitionr   formula_recognitionr   image_classificationr   image_multilabel_classificationr   instance_segmentationr   keypoint_detectionr   layout_parsingr   m_3d_bev_detectionr   multilingual_speech_recognitionr    object_detectionr!   ocrr"   open_vocabulary_detectionr#   open_vocabulary_segmentationr$   paddleocr_vlr%   
pp_chatocrr&   r'   pp_doctranslationr(   pp_shitu_v2r)   rotated_object_detectionr*   seal_recognitionr+   semantic_segmentationr,   small_object_detectionr-   table_recognitionr.   r/   text_to_speechr0   ts_anomaly_detectionr1   ts_classificationr2   ts_forecastingr3   video_classificationr4   video_detectionr5   strr@   rG   boolrW   r]   ra   rf   rQ   rA   r?   <module>r      s    - -  ( 5 7  C C 5 7 - ; = R ? 9 1 0 R 5  F L - D 9 ( D 5 ? @ S 0 6 , ( = 3S S (3 4S> 4 #J (,  .215#=AJsmJ T#s(^$J SM	J
 SMJ DcN+J -.J tnJ tCH~y89:J J JZD h & 	. 	rA   