Ë
    uPêj_  ã            	       ó˜   — d Z ddlZddlmZmZmZ ddlZddlmZ erddl	m
Z eZddlmZ neZeZdeded	eez  d
edz  fd„Zdedz  fd„Zy)z1
Callbacks triggered on cooling down deployments
é    N)ÚTYPE_CHECKINGÚAnyÚFinal)Úverbose_logger)ÚRouter©ÚPrometheusLoggerÚlitellm_router_instanceÚdeployment_idÚexception_statusÚcooldown_timec           	   ƒ   ó~  K  — t        j                  d«       | j                  |¬«      }|€t        j                  d|«       y|d   }t	        j
                  |«      }t        |«      }|j                  dd«      xs d}t        j                  ||¬«      xs d}|d	   }	|	j                  }
|j                  d
«      xs d}d}	 t        j                  ||j                  d«      ¬«      \  }}}}t        «       }|�4|j                  ||
||¬«       |j                  ||
||t!        |«      ¬«       y# t        $ r Y ŒLw xY w­w)zº
    Callback triggered when a deployment is put into cooldown by litellm

    - Updates deployment state on Prometheus
    - Increments cooldown metric for deployment on Prometheus
    z7In router_cooldown_event_callback - updating prometheus)Úmodel_idNz]in router_cooldown_event_callback but _deployment is None for deployment_id=%s. Doing nothingÚlitellm_paramsÚ
model_nameÚ )ÚmodelÚoptional_paramsÚ
model_infor   Úcustom_llm_provider)r   r   )Úlitellm_model_namer   Úapi_baseÚapi_provider)r   r   r   r   r   )r   ÚdebugÚget_deploymentÚwarningÚcopyÚdeepcopyÚdictÚgetÚlitellmÚget_api_baseÚidÚget_llm_providerÚ	ExceptionÚ%_get_prometheus_logger_from_callbacksÚset_deployment_complete_outageÚ increment_deployment_cooled_downÚstr)r
   r   r   r   Ú_deploymentÚ_litellm_paramsÚtemp_litellm_paramsÚ_model_nameÚ	_api_baser   r   r   Úllm_providerÚ_ÚprometheusLoggers                  úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/router_utils/cooldown_callbacks.pyÚrouter_cooldown_event_callbackr3      sn  è ø€ ô ×ÑÐRÔSØ0×?Ñ?ÈÐ?ÓW€KØÐÜ×ÑØkØô	
ð 	Ø(Ð)9Ñ:€OÜŸ-™-¨Ó8ÐÜÐ2Ó3ÐØ$Ÿ™¨°tÓ<ÒBÀ€KÜ×+Ñ+°+ÐObÔcÒiÐgi€IØ# LÑ1€JØ —m‘m€Hà 3× 7Ñ 7¸Ó @Ò FÀBÐØ€LðÜ '× 8Ñ 8Ø$Ø 3× 7Ñ 7Ð8MÓ Nô!
Ñˆˆ<˜˜Aô 8]Ó7^ÐàÐ#Ø×7Ñ7Ø*ØØØ%ð	 	8ô 	
ð 	×9Ñ9Ø*ØØØ%Ü Ð!1Ó2ð 	:ô 	
ð øô- ò Ùðüs+   ‚B?D=Ã+D. Ã-AD=Ä.	D:Ä7D=Ä9D:Ä:D=Úreturnc                  óª   — ddl m}  | €yt        j                  D ]  }t	        || «      sŒ|c S  t        j
                  D ]  }t	        || «      sŒ|c S  y)zJ
    Checks if prometheus is a initalized callback, if yes returns it
    r   r   N)Úlitellm.integrations.prometheusr	   r!   Ú_async_success_callbackÚ
isinstanceÚ	callbacks)r	   Ú	_callbackÚglobal_callbacks      r2   r&   r&   Q   sd   € õ AàÐØä×4Ñ4ò ˆ	Ü�iÐ!1Õ2ØÒðô #×,Ñ,ò #ˆÜ�oÐ'7Õ8Ø"Ò"ð#ð ó    )Ú__doc__r   Útypingr   r   r   r!   Úlitellm._loggingr   Úlitellm.routerr   Ú_RouterÚLitellmRouterr6   r	   r)   ÚintÚfloatr3   r&   © r<   r2   ú<module>rF      sx   ðñó ß ,Ñ ,ã Ý +áÝ0à€MÞ@à€MØÐð9Ø*ð9àð9ð ˜C‘ið9ð ˜4‘<ó	9ðxÐ/?À$Ñ/Fô r<   