
    hd                         d dl Z d dlZd dlmZmZmZmZ d dlmZ de	dee	ed   f   fdZ
de	de	fdZd	e	dee	   fd
Zde	dee	   fdZde	de	fdZy)    N)ListLiteralOptionalUnion)SpecialEnumsb64_uidreturnFc                     | dt        |        dz  z  z   }	 t        j                  |      j                         }|j	                  t
        j                  j                        r|S y# t        $ r Y yw xY w)N=   F)	lenbase64urlsafe_b64decodedecode
startswithr   LITELM_MANAGED_FILE_ID_PREFIXvalue	Exception)r   paddeddecodeds      m/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/openai_files_endpoints/common_utils.py"_is_base64_encoded_unified_file_idr      sn    ss7|ma/00F**6299;lHHNNON s   AA& &	A21A2c                 $    t        |       }|r|S | S )N)r   )r   is_base64_unified_file_ids     r   convert_b64_uid_to_unified_uidr      s     B7 K ((    unified_file_idc                     	 t        j                  d|       }|r<|j                  d      j                  d      D cg c]  }|j	                          c}S g S c c}w # t
        $ r g cY S w xY w)a  
    Extract model names from unified file ID.

    Example:
    unified_file_id = "litellm_proxy:application/octet-stream;unified_id,c4843482-b176-4901-8292-7523fd0f2c6e;target_model_names,gpt-4o-mini,gemini-2.0-flash"
    returns: ["gpt-4o-mini", "gemini-2.0-flash"]
    ztarget_model_names,([^;]+)   ,)researchgroupsplitstripr   )r   matchmodels      r   get_models_from_unified_file_idr(      sd    		7I/4{{1~/C/CC/HIeEKKMII	 J 	s(   :A AA A A A+*A+file_idc                 n    	 | j                  d      d   j                  d      d   S # t        $ r Y yw xY w)z
    Get the model_id from the file_id

    Expected format: litellm_proxy;model_id:{};llm_batch_id:{};llm_output_file_id:{}
    z	model_id:r   ;r   N)r$   r   r)   s    r   "get_model_id_from_unified_batch_idr-   0   s=    }}[)!,2237:: s   %( 	44c                     d| v r&| j                  d      d   j                  d      d   S | j                  d      d   j                  d      d   S )Nllm_batch_idzllm_batch_id:r   r    r   zgeneric_response_id:)r$   r,   s    r   "get_batch_id_from_unified_batch_idr0   =   sS     }}_-a066s;A>>}}34Q7==cB1EEr   )r   r!   typingr   r   r   r   litellm.types.utilsr   strr   r   r(   r-   r0    r   r   <module>r5      s     	 1 1 , c75>>Q8R C C S T#Y $
 
 
F F Fr   