
    hl              	           d Z ddlZddlmZmZmZmZmZmZ ddl	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          d/var/www/Befach/backend/env/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                 p  K   dt         j                  j                         vry| | 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
    langfuseNlitellm_logging_obj   )service_namez/trace/)litellmlogging_callback_manager_get_all_callbacksgetrange_get_trace_idasynciosleep_get_callback_objectLangfusebase_url)r    trace_idr#   _langfuse_objectr0   s         r   _add_langfuse_trace_id_to_alertr4   >   s      99LLNN 	 2D9E"&'34I'JqA*88j8QH#--"""	  .BB# C 
 &&//88HZwxj11 #s   A9B6;B4<9B6)N)__doc__r,   typingr   r   r   r   r   r   r&   litellm.proxy._typesr	   litellm.secret_managers.mainr
   *litellm.litellm_core_utils.litellm_loggingr   _Loggingr   r   dictr4    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   