Ë
    tPêj�	  ã                   ót   — d Z ddlmZmZmZ ddlmZ ddlmZ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ÚFinal)Úverbose_proxy_loggeré   )ÚMS_TEAMS_ALERTING_DESTINATIONÚbuild_ms_teams_payload)Ú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         úx/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/SlackAlerting/batching_handler.pyÚsquash_payloadsr      s•   € Ø€HÜ
ˆ5ƒz�Q‚ØˆÜ
ˆ5ƒz�Q‚Ø  a¡°1Ñ5Ð6Ð6àò 
8ˆØ�5‰kˆØ˜,Ñ'ˆ
Ø�ZÐ ˆà�8ÑØ�T‰N˜7Ó# qÑ(Ô#ð '+°QÑ7ˆH�TŠNð
8ð €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                  d«      t        k(  rt        |d   «      n|}| j                  j                  |d	   |d
   |j                  |«      ¬«      ƒ d{  –—† }|j                  dk7  r$t        j                  d|d	   |j                  «       t        || ¬«       y7 ŒE# t        $ r }t        j                  d|«       Y d}~Œ4d}~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]

ÚtextÚformatr   Úheaders)r   r"   ÚdataéÈ   z'Error sending alert to url=%s. Error=%szError sending alert: %s)r   )ÚjsonÚgetr   r	   Úasync_http_handlerÚpostÚdumpsÚstatus_coder   Údebugr    Ú	Exceptionr   )r   r   r   r%   r   Úrequest_bodyÚresponseÚes           r   Úsend_to_webhookr0   8   s   è ø€ ó à—X‘X˜i¨Ó,€Gð^Ø�1Š9Ø -¨e¨W°E¸'À&¹/Ð9JÐKˆG�F‰Oð 8<·x±xÀÓ7IÔMjÒ7jÔ" 7¨6¡?Ô3Ðpwð 	ð !6× HÑ H× MÑ MØ�U‘Ø˜‘OØ—‘˜LÓ)ð !Nó !
÷ 
ˆð
 ×Ñ 3Ò&Ü ×&Ñ&Ð'PÐRVÐW\ÑR]Ð_g×_lÑ_lÔmô 	(¨ÐG\Ö]ð
ùô ò AÜ×"Ñ"Ð#<¸a×@Ñ@ûðAûô 	(¨ÐG\Ö]üsM   ‚DšA1C ÂCÂ7C ÃDÃC Ã	C<ÃC7Ã2C? Ã7C<Ã<C? Ã?DÄDN)Ú__doc__Útypingr   r   r   Úlitellm._loggingr   Úms_teamsr   r	   Úslack_alertingr
   Ú_SlackAlertingÚSlackAlertingTyper   Údictr   r0   © r   r   ú<module>r:      sR   ðñ÷ -Ñ ,å 1ç KáÝ?à&ÑàÐòð,.¨Tð .ÐJ[ó .ð^Ð1Bô ^r   