o
    [+ i                     @   sT  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 deZd	ed
ededefddZded	ed
edefddZdedededededededefddZdedefddZdedefddZd ed!ed"ed#ed$ed%ed&efd'd(Z		d2deded)ed#ed*ef
d+d,Zdededed-efd.d/Zdedefd0d1ZdS )3ue   
本文件实现了请求产线任务

Authors: xiangyiqing(xiangyiqing@baidu.com)
Date:    2024/3/2
    N)configlog)BceClientConfiguration)BceCredentials)	BosClientc                   @   s   e Zd ZdZdS )RequestPipelineExceptionz2
    exception for requesting pipeline server
    N)__name__
__module____qualname____doc__ r   r   j/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/aistudio_sdk/requests/pipeline.pyr      s    r   methodurlheadersparamsc           	      C   s   t d|  d| d| d| d| 
 d}ttjD ]H}ztj| ||||tjd}t d|   | W   S  tj	j
yJ   d	|}Y q tyc } zd
|t|}W Y d}~qd}~ww t 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   ZCONNECTION_RETRY_TIMESrequestsrequestZCONNECTION_TIMEOUTjson
exceptionsJSONDecodeErrorformat	Exceptionstrr   )	r   r   r   r   r   err_msg_responseer   r   r   _request   s,   (r#   tokenc                 C   s.   dd|  d}t j | }t|||||S )u   
    请求pp-pipeline API
    zapplication/jsonztoken )zContent-TypeAuthorization)r   Z#STUDIO_MODEL_API_URL_PREFIX_DEFAULTr#   )r$   r   r   r   r   r   Z
access_urlr   r   r   _request_pipepline@   s
   r&   namecmdenvdevicegpuspaymentdatasetc           	      C   s,   |||||||d}t | dtjdt|S )u   
    请求创建产线
    )r'   r(   r)   r*   r+   r,   r-   POSTN)r&   r   ZPIPELINE_CREATE_URLr   dumps)	r$   r'   r(   r)   r*   r+   r,   r-   bodyr   r   r   createR   s   	r1   pipeline_idc                 C      d|d}t | dtj|dS )   
    申请ak/sk
    ZSDKsource
pipelineIdGETNr&   r   ZPIPELINE_BOSACL_URLr$   r2   r0   r   r   r   bosaclq      r;   c                 C   r3   )r4   ZcustomCodeOutputr5   r8   Nr9   r:   r   r   r   bosacl_ls_cp   r<   r=   
local_fileendpointbucket_namefile_keyaccess_key_idsecret_access_keysession_tokenc           	      C   s4   t t||||d}t|}|||d|  dS )u/   
    本地文件 上传至bos指定位置
    )credentialsr?   Zsecurity_token/N)r   r   r   Zput_object_from_filelstrip)	r>   r?   r@   rA   rB   rC   rD   Zbos_confZ
bos_clientr   r   r   
bos_upload   s   rH   
is_succuss	file_namec                 C   s&   ||||d}t | dtjdt|S )u,   
    创建产线回调, 成功or失败
    )r7   successZfileKeyfileNamer.   N)r&   r   ZPIPELINE_CREATE_CALLBACK_URLr   r/   )r$   r2   rI   rA   rJ   r0   r   r   r   create_callback   s   rM   statusc                 C   s$   |||d}t | dtjdt|S )u   
    查询产线
    )r7   ZpipelineNameZstager.   N)r&   r   ZPIPELINE_QUERY_URLr   r/   )r$   r2   r'   rN   r0   r   r   r   query   s   
rO   c                 C   s    d|i}t | dtjdt|S )u   
    停止产线
    r7   r.   N)r&   r   ZPIPELINE_STOP_URLr   r/   r:   r   r   r   stop   s   rP   )NN)r   r   r   Zaistudio_sdkr   r   Z!baidubce.bce_client_configurationr   Zbaidubce.auth.bce_credentialsr   Z baidubce.services.bos.bos_clientr   r   r   r   dictr#   r&   r1   r;   r=   rH   boolrM   rO   rP   r   r   r   r   <module>   s   
$






