o
    ưi2                  
   @   sp   d dl m Z  d dlmZmZ d dlZd dlmZmZ d dlm	Z	 G dd dZ
ded	ed
e dedef
ddZdS )    )datetime)OptionalcastN)print_verboseverbose_logger)StandardLoggingPayloadc                   @   s<   e Zd Z											d	ddZdd Zdd ZdS )
S3LoggerNTc                 K   sx  dd l }ztdtj  d}tjd ur}tj D ]\}}t|tr0|dr0t	|tj|< qtj
d}tj
d}tj
d}tj
dd	}tj
d
}tj
d}tj
d}tj
d}	tj
d}
tj
d}tj
d}ttj
dd}|| _|| _|| _td|  |j	d|||||||	|
|d	|| _W d S  ty } ztdt|  |d }~ww )Nr   z'in init s3 logger - s3_callback_params Fzos.environ/s3_bucket_names3_region_names3_api_version
s3_use_sslT	s3_verifys3_endpoint_urls3_aws_access_key_ids3_aws_secret_access_keys3_aws_session_token	s3_configs3_paths3_use_team_prefixzs3 logger using endpoint url s3)	Zregion_nameZendpoint_urlapi_versionZuse_sslverifyZaws_access_key_idZaws_secret_access_keyZaws_session_tokenconfigz Got exception on init s3 client )r   )boto3r   debuglitellmZs3_callback_paramsitems
isinstancestr
startswithZ
get_secretgetboolr   bucket_namer   client	s3_client	Exceptionr   )selfr	   r   r
   r   r   r   r   r   r   r   r   kwargsr   r   keyvaluee r+   N/home/app/Keep/.python/lib/python3.10/site-packages/litellm/integrations/s3.py__init__   sn   

zS3Logger.__init__c                    s   |  ||||| d S )N)	log_event)r&   r'   response_obj
start_timeend_timer   r+   r+   r,   _async_log_eventW   s   zS3Logger._async_log_eventc              
   C   s  zt d|  |di }|di pi }i }t|tr0| D ]\}	}
|	dv r+q"|
||	< q"ttt |dd }|d u rBW d S |d d}d}t	j
rZ| jrZ|d urZ| d}t	j||pbd}tttt | jpmd|||}d	|d
 d |d  d }ddlm} ||}|d|  | jj| j||ddd| ddd}|dt|  |d|  |W S  ty } zt dt|  W Y d }~d S d }~ww )Nz/s3 Logging - Enters logging function for model litellm_paramsmetadata)headersZendpointZcaching_groupsZprevious_modelsZstandard_logging_objectZuser_api_key_team_alias /ztime-z%Y-%m-%dT%H-%M-%S-%f_id.jsonr   )
safe_dumpsz
s3 Logger - Logging payload = zapplication/jsonenzinline; filename=""z0private, immutable, max-age=31536000, s-maxage=0)ZBucketKeyZBodyZContentTypeZContentLanguageZContentDispositionCacheControlzResponse from s3:z*s3 Layer Logging - final response object: zs3 Layer Error - )r   r   r    r   dictr   r   r   r   r   Zenable_preview_featuresr   utilsZget_logging_idget_s3_object_keyr   r   strftimeZ*litellm.litellm_core_utils.safe_json_dumpsr;   r$   Z
put_objectr"   r%   	exception)r&   r'   r/   r0   r1   r   r3   r4   Zclean_metadatar(   r)   payloadZ
team_aliasZteam_alias_prefixs3_file_names3_object_keyZs3_object_download_filenamer;   Zpayload_strresponser*   r+   r+   r,   r.   \   s   





zS3Logger.log_event)NNNNTNNNNNN)__name__
__module____qualname__r-   r2   r.   r+   r+   r+   r,   r      s    
Ir   r   prefixr0   rF   returnc                 C   s8   | r	|  dd nd| |d d | }|d7 }|S )Nr7   r6   z%Y-%m-%dr:   )rstriprC   )r   rL   r0   rF   rG   r+   r+   r,   rB      s   rB   )r   typingr   r   r   Zlitellm._loggingr   r   Zlitellm.types.utilsr   r   r   rB   r+   r+   r+   r,   <module>   s$    +