
    g$              	           d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
 ddlmZ er	ddlmZ eZneZdeee
eee   ef   f      deee
eee   ef   f      fd	Z	 dd
ee   dee   fdZy)z
Utils used for slack alerting
    N)TYPE_CHECKINGAnyDictListOptionalUnion)	AlertType)
get_secret)Loggingalert_to_webhook_urlreturnc           
         | y| j                         D ]  \  }}t        |t              rlg }|D ]_  }d|v rHt        |      }t        |t              st        d| dt        |             |j                  |       O|j                  |       a || |<   |}d|v r9t        |      }t        |t              st        d| dt        |             |}n|}|| |<    | S )z
    process alert_to_webhook_url
    - check if any urls are set as os.environ/SLACK_WEBHOOK_URL_1 read env var and set the correct value
    Nzos.environ/)secret_namezInvalid webhook url value for: z. Got type=)items
isinstancelistr
   str
ValueErrortypeappend)r   
alert_typewebhook_urls_webhook_valueswebhook_url
_env_value_webhook_value_strs          ]/var/www/openai/venv/lib/python3.12/site-packages/litellm/integrations/SlackAlerting/utils.py process_slack_alerting_variablesr      s    #$8$>$>$@ 
LlD))+O+ K/!+!DJ%j#6(=k]+VZ[eVfUgh  $**:6#**;7  , 0? ,&2,'LA
!*c2$9,{SWXbScRde  &0"%1"/A ,7 %A:      request_datac                 .  K   | | j                  dd      {d}| d   }t        d      D ]5  }|j                  d      }| nt        j                  d       d{    7 |j                  d      }||j                  j                  }| d| S y7 8w)zr
    Returns langfuse trace url

    - check:
    -> existing_trace_id
    -> trace_id
    -> litellm_call_id
    Nlitellm_logging_obj   langfuse)service_namez/trace/)getrange_get_trace_idasynciosleep_get_callback_objectLangfusebase_url)r    trace_idr"   __langfuse_objectr-   s         r   _add_langfuse_trace_id_to_alertr1   =   s      	 2D9E"&'34I'JqA*88j8QH#--"""	  /CC# D 
 ''0099HZwxj11 #s   ABB9B)N)__doc__r)   typingr   r   r   r   r   r   litellm.proxy._typesr	   litellm.secret_managers.mainr
   *litellm.litellm_core_utils.litellm_loggingr   _Loggingr   r   dictr1    r   r   <module>r:      s     B B * 3NGG' "4	5cC3H(H#IJ' d9eDIsN3345' V $(4.c]r   