o
    ưi                     @   s   d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZm	Z	 d dl
T ejd e jd dee defd	d
ZdededefddZde	dedefddZdS )    N)Dict)verbose_proxy_logger)LiteLLM_TeamTableUserAPIKeyAuth)*z../..team_objreturnc                 C   sV   | d u rdS | j p
i }|dd d ur)t|dtr)|di dd du r)dS dS )NT
guardrailsZmodify_guardrailsF)metadataget
isinstancer   )r   Zteam_metadata r   a/home/app/Keep/.python/lib/python3.10/site-packages/litellm/proxy/guardrails/guardrail_helpers.pycan_modify_guardrails   s   

r   dataguardrail_namec                    s   d| v rTt | d trTd| d v rT| d d }td| g }t |trT| D ]\}}|du r8td| q)tj| }|j}|| q)td| ||v rRdS dS dS )A
    checks if this guardrail should be applied to this call
    r
   r	   z9Guardrails %s passed in request - checking which to applyF1Guardrail %s skipped because request set to Falsezrequested_callback_names %sT)	r   dictr   debugitemslitellmguardrail_name_config_map	callbacksextend)r   r   Zrequest_guardrailsZrequested_callback_names_guardrail_name
should_runguardrail_itemguardrail_callbacksr   r   r    should_proceed_based_on_metadata   s:   
r   user_api_key_dictc                    s   | j durBtd| j  t| j tstd| | dS | j  D ]\}}|du r0td| q!tj| }|j	}||v r? dS q!dS dS )r   Nz:Guardrails valid for API Key= %s - checking which to applyz<API Key permissions must be a dict - %s running guardrail %sTFr   )
Zpermissionsr   r   r   r   errorr   r   r   r   )r    r   r   r   r   r   r   r   r   should_proceed_based_on_api_keyN   s:   
r"   )ossystypingr   r   Zlitellm._loggingr   Zlitellm.proxy.proxy_serverr   r   Zlitellm.types.guardrailspathinsertabspathOptionalboolr   r   strr   r"   r   r   r   r   <module>   s&    0