
    yj                     P   d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ  G d de          Zd	ed
ededefdZded	ed
edefdZdedededededededefdZdedefdZdedefdZdededededed ed!efd"Z	 	 d)deded#eded$ef
d%Zdededed&efd'Zdedefd(ZdS )*ue   
本文件实现了请求产线任务

Authors: xiangyiqing(xiangyiqing@baidu.com)
Date:    2024/3/2
    N)configlog)BceClientConfiguration)BceCredentials)	BosClientc                       e Zd ZdZdS )RequestPipelineExceptionz2
    exception for requesting pipeline server
    N)__name__
__module____qualname____doc__     n/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/aistudio_sdk/requests/pipeline.pyr	   r	      s          	Dr   r	   methodurlheadersparamsc                 ^   t          j        d|  d| d| d| d| 
           d}t          t          j                  D ]}	 t          j        | ||||t          j                  }t          j        d|                                            |                                c S # t
          j	        j
        $ r d	                    |          }Y t          $ r-}d
                    |t          |                    }Y d}~d}~ww xY wt          j        d|            t          |          )a  request api
    :param url: http url
    :param headers: dictionary of HTTP Headers to send
    :param json_data: json data to send in the body
    :param data: dictionary, list of tuples, bytes, or file-like object to send in the body
    :return: response data in json format
    z
- method: z
- url: z
- headers: z
- params: z	
- data:  )r   r   datatimeoutz
- response: z-Response body does not contain valid json: {}z)Error occurred when request for "{}": {}.Nz
- err_msg: )r   debugranger   CONNECTION_RETRY_TIMESrequestsrequestCONNECTION_TIMEOUTjson
exceptionsJSONDecodeErrorformat	Exceptionstrr	   )	r   r   r   r   r   err_msg_responsees	            r   _requestr)      sk    ImVmmcmmmmU[mmgkmmnnnG6011 V V	V'1  H I8x}}88999==??""""2 	W 	W 	WELLXVVGGG 	V 	V 	VAHHcRSffUUGGGGGG	VI'g''(((
"7
+
++s   A B%%)D	D#DDtokenc                 X    dd|  d}t           j         | }t          |||||          S )u   
    请求pp-pipeline API
    zapplication/jsonztoken )zContent-TypeAuthorization)r   #STUDIO_MODEL_API_URL_PREFIX_DEFAULTr)   )r*   r   r   r   r   r   
access_urls          r   _request_pipepliner/   @   sI     +)%)) G >EEEJFJ>>>r   namecmdenvdevicegpuspaymentdatasetc           	      t    |||||||d}t          | dt          j        dt          j        |                    S )u   
    请求创建产线
    )r0   r1   r2   r3   r4   r5   r6   POSTN)r/   r   PIPELINE_CREATE_URLr   dumps)	r*   r0   r1   r2   r3   r4   r5   r6   bodys	            r   creater<   R   sU      D "
4  r   pipeline_idc                 F    d|d}t          | dt          j        |d          S )   
    申请ak/sk
    SDKsource
pipelineIdGETNr/   r   PIPELINE_BOSACL_URLr*   r=   r;   s      r   bosaclrH   q   s<     ! D "  r   c                 F    d|d}t          | dt          j        |d          S )r?   customCodeOutputrA   rD   NrE   rG   s      r   bosacl_ls_cprK      s<     %! D "  r   
local_fileendpointbucket_namefile_keyaccess_key_idsecret_access_keysession_tokenc                     t          t          ||          ||          }t          |          }|                    ||                    d          |            dS )u/   
    本地文件 上传至bos指定位置
    )credentialsrM   security_token/N)r   r   r   put_object_from_filelstrip)	rL   rM   rN   rO   rP   rQ   rR   bos_conf
bos_clients	            r   
bos_uploadr[      sg     &"=2CDD$  H
 8$$J ##K1E1EzRRRRRr   
is_succuss	file_namec           	      n    ||||d}t          | dt          j        dt          j        |                    S )u,   
    创建产线回调, 成功or失败
    )rC   successfileKeyfileNamer8   N)r/   r   PIPELINE_CREATE_CALLBACK_URLr   r:   )r*   r=   r\   rO   r]   r;   s         r   create_callbackrc      sL     "	 D +
4  r   statusc           	      l    |||d}t          | dt          j        dt          j        |                    S )u   
    查询产线
    )rC   pipelineNamestager8   N)r/   r   PIPELINE_QUERY_URLr   r:   )r*   r=   r0   rd   r;   s        r   queryri      sI     " D
 !
4  r   c           	      h    d|i}t          | dt          j        dt          j        |                    S )u   
    停止产线
    rC   r8   N)r/   r   PIPELINE_STOP_URLr   r:   rG   s      r   stoprl      s@     	kD  
4  r   )NN)r   r   r   aistudio_sdkr   r   !baidubce.bce_client_configurationr   baidubce.auth.bce_credentialsr    baidubce.services.bos.bos_clientr   r#   r	   r$   dictr)   r/   r<   rH   rK   r[   boolrc   ri   rl   r   r   r   <module>rs      s      $ $ $ $ $ $ $ $ D D D D D D 8 8 8 8 8 8 6 6 6 6 6 6	 	 	 	 	y 	 	 	!,!,!, !, 	!, !, !, !,H??? ? 	? ? ? ?$  	
       >   &   *SSS S 	S
 S S S S S S8    	
    2  	   .     r   