Ë
    ÝªgË  ã                   ó`   — d Z ddlmZmZ ddlmZ er	ddlmZ eZ	neZ	d„ Z
dede	fd	„Zde	fd
„Zy)z¾
Handles Batching + sending Httpx Post requests to slack 

Slack alerts are sent every 10s or when events are greater than X events 

see custom_batch_logger.py for more details / defaults 
é    )ÚTYPE_CHECKINGÚAny)Úverbose_proxy_loggeré   )ÚSlackAlertingc                 ó¾   — i }t        | «      dk(  r|S t        | «      dk(  r
d| d   ddœiS | D ]-  }|d   }|d   }||f}||v r||   dxx   dz  cc<   Œ&|ddœ||<   Œ/ |S )Nr   r   Úkey)ÚitemÚcountÚurlÚ
alert_typer   )Úlen)ÚqueueÚsquashedr
   r   r   Ú_keys         úh/var/www/openai/venv/lib/python3.12/site-packages/litellm/integrations/SlackAlerting/batching_handler.pyÚsquash_payloadsr      s   € à€HÜ
ˆ5ƒzQ‚ØˆÜ
ˆ5ƒzQ‚Ø  a¡°1Ñ5Ð6Ð6ãˆØ5‰kˆØ˜,Ñ'ˆ
ØZÐ ˆà8ÑØT‰N˜7Ó# qÑ(Ô#ð '+°QÑ7ˆHTŠNð ð €Oó    ÚpayloadÚslackAlertingInstancec                 ó`   — |j                   j                  du rt        j                  | «       yy)z²
    Print the payload to the console when
    slackAlertingInstance.alerting_args.log_to_console is True

    Relevant issue: https://github.com/BerriAI/litellm/issues/7372
    TN)Úalerting_argsÚlog_to_consoler   Úwarning)r   r   s     r   Ú_print_alerting_payload_warningr   ,   s,   € ð ×*Ñ*×9Ñ9¸TÑAÜ×$Ñ$ WÕ-ð Br   c              ƒ   óô  K  — ddl }|j                  di «      }	 |dkD  rd|› d|d   › |d<   | j                  j                  |d   |d	   |j	                  |«      ¬
«      ƒ d{  –—† }|j
                  dk7  r(t        j                  d|d   › d|j                  › «       t        || ¬«       y7 ŒI# t        $ r+}t        j                  dt        |«      › «       Y d}~Œ?d}~ww xY w# t        || ¬«       w xY w­w)z2
    Send a single slack alert to the webhook
    r   Nr   r   z[Num Alerts: z]

Útextr   Úheaders)r   r   ÚdataéÈ   z!Error sending slack alert to url=z. Error=zError sending slack alert: )r   )ÚjsonÚgetÚasync_http_handlerÚpostÚdumpsÚstatus_coder   Údebugr   Ú	ExceptionÚstrr   )r   r
   r   r!   r   ÚresponseÚes          r   Úsend_to_webhookr,   9   s	  è ø€ ó àh‰hy "Ó%€Gð
Ø1Š9Ø -¨e¨W°E¸'À&¹/Ð9JÐKˆGF‰Oà.×AÑA×FÑFØU‘Ø˜‘OØ—‘˜GÓ$ð Gó 
÷ 
ˆð
 ×Ñ 3Ò&Ü ×&Ñ&Ø3°D¸±K°=ÀÈÏÉÈÐXôô 	(ØÐ+@ö	
ð
ùô ò KÜ×"Ñ"Ð%@ÄÀQÃÀÐ#I×JÑJûðKûô 	(ØÐ+@ö	
üsM   ‚C8šA	B/ Á#B-Á$;B/ ÂC8Â-B/ Â/	C#Â8!CÃC& ÃC#Ã#C& Ã&C5Ã5C8N)Ú__doc__Útypingr   r   Úlitellm._loggingr   Úslack_alertingr   Ú_SlackAlertingÚSlackAlertingTyper   Údictr   r,   © r   r   Ú<module>r5      sK   ðñ÷ &å 1áÝ?à&ÑàÐòð.
.Øð
.Ø*;ó
.ð
Ð1Bô 
r   