
    h	              	           d dl Z d dlZd dlmZmZmZmZmZ erd dlm	Z	 d dl
mZ dedefdZdeee   ef   d	ed
   defdZ	 ddeee   ef   dee   deee   ef   fdZy)    N)TYPE_CHECKINGDictListOptionalUnion)OpenAIFileObject)CredentialLiteLLMParamslitellm_paramsreturnc                     t        di | }t        j                  t        j                  |j                               j                               j                         S )zX
    Hash of the credential params, used for mapping the file id to the right model
     )r	   hashlibsha256jsondumps
model_dumpencode	hexdigest)r
   sensitive_paramss     ]/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/router_utils/common_utils.py,get_litellm_params_sensitive_credential_hashr      sI     /@@>>

#..0188:ik    healthy_deployments	responsesr   c                    i }t        | t              rDt        | |      D ]3  \  }}|j                  ||j	                  di       j	                  d      <   5 |S t        | t
              r| j                         D ]
  \  }}|||<    |S )z}
    Create a mapping of model name to file id
    {
        "model_id": "file_id",
        "model_id": "file_id",
    }
    
model_infoid)
isinstancelistzipr   getdictitems)r   r   model_file_id_mapping
deploymentresponsemodel_idfile_ids          r   add_model_file_id_mappingsr)      s     %t,$'(;Y$G J "*..r"B"F"Ft"LM %H !  
'	.!4!:!:!<Hg.5!(+ "=  r   request_kwargsc                 
   || S |j                  d      xs i }|j                  d      xs i }|j                  d      xs |j                  d      }g }t        | t              r| S | D ]a  }|j                  d      xs i }|j                  d      }|,||k7  s2|j                  |j                  di       j                  d             c | D cg c]'  }|j                  di       j                  d      |vr|) c}S c c}w )zM
    If a model has a team_id

    Only use if request is from that team
    metadatalitellm_metadatauser_api_key_team_idr   team_idr   )r!   r   r"   append)	r   r*   r,   r-   request_team_idids_to_remover%   _model_infomodel_team_ids	            r   filter_team_based_modelsr5   +   s    ""!!*-3H%))*<=Cll#9: >N>R>R?O M%t,"")
 nn\28b#	2 O+  b!A!E!Ed!KL * .>>,+//5]J 	  s   ,D )N)r   r   typingr   r   r   r   r   litellm.types.llms.openair   litellm.types.routerr	   r"   strr   r)   r5   r   r   r   <module>r:      s      = =: 8 # !tDz4/0!=ABT=U!	!0 &* tDz4/0 TN  4:t r   