From ec5dc0be514543c742ae98729e60ef9060e42c48 Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Thu, 5 Feb 2026 20:42:43 -0800 Subject: [PATCH] email soft budgets --- ...litellm_enterprise-0.1.29-py3-none-any.whl | Bin 111358 -> 112486 bytes .../dist/litellm_enterprise-0.1.29.tar.gz | Bin 48839 -> 49967 bytes .../send_emails/base_email.py | 102 ++++++++++++++++-- .../integrations/email_templates/templates.py | 24 +++++ litellm/proxy/_types.py | 5 + litellm/proxy/auth/auth_checks.py | 67 ++++++++++++ litellm/proxy/auth/user_api_key_auth.py | 1 + litellm/proxy/utils.py | 29 ++++- 8 files changed, 216 insertions(+), 12 deletions(-) diff --git a/enterprise/dist/litellm_enterprise-0.1.29-py3-none-any.whl b/enterprise/dist/litellm_enterprise-0.1.29-py3-none-any.whl index 0895ecbc4271ba78bed1da72468e19f87324b33a..5eedd1fe876e110a84047318cefd194078254fbb 100644 GIT binary patch delta 24676 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 z�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 z od7yM;6%-|N^R|L8C=&!$Q+ANI}{Q4geJ+dQ_w7(SpEU(0%wsZItAM$Z^w~67= z?B<2vU+nV|bCn~I-!IgN-K^IYb!)Fmsuguftc9vl;a@vA$xDHdnHM9YD1Yk>XfE|k zJeEAJ5uW|*b{A_W$4Vx3>2O7Wak^B7`>IqTH82|%I_S)DQ>jCbZAK2onO^@<`ek(U z<<2GHCe`|BQ00Tu=*b3)y4XH7+u6jcrdoY=%=vJ#D%`W z`E9t*G#lxTu^d9Pnd*qREsz%4i)$hX-VjLNFKB5&0IhXRUf9Y#yuP0X+E3bMf3I5m zhAqAGPo}Kdq27H=9aRsPuF-5wLyET9v%qW`#CJbszNpH6t!JBOxR;EjS8%&Kw&yxF z9k=n13NHe)hpZBL;lld<(q~Foia(7N>4f&fvh_?scL72M1qYjw2cw@jP3bqAjj9Ub z6!#LLl{F%qXKg2=I%zNgs3(joij)VHlxvtcO{eF`@47q+`d2_~%v<_(82fLtrqLL@ zaPQ-dWct0Lmf*tD^vTkWh?oy%RF0^ey+WW%ES~Z7?^07iV z-sI!ZloU^@4wNp9ntuLj2kRiv@jB=IXKi&6$;7$5(cfXAHcQRI?q+j6WWg$|d0D{e z!7QGh8C1PIj#ED3;>HYB;k?pwwscty3~&ob^DnHN0523xNFJbkHspUxyhEA_K>+mr zc7kaJ%YW*;+ZTcOpgE8J%gaR|0chCMzf1x#Dh4q@w_N;Xl!U4?RLJN*4(|Go!-Jrg zfaF0H5Uf%VKE$B}qyqin{y)B27zCdnev1M@t^{F1Zc0GJ&`bZ@BVGnVgs_)_Bw=iz zK#-n4J&>4EkRXf==r3)Tg1|65@P7#%7K97YD+4jXtRenYE$|>BNb5hU4f(G!DF>lJ z(91z2WdAJ)L<$8Z0QK*c9{@)AH&`BK75iVpfh?ATgkW$8|EhVsKRKl6(Dh#WAVRqPyv#M>5}-D@E{o?e;(1l^3QbHrT)K1lK_!G$ZP(* zo-|1iCffgvo*(ci{Wnas3M2qCDf^cat3cc^hjM>us|v&g)35NCqGkT%P^$iu1Ed8? zaN@#+7}tQ{A;W4Q8c5SWT1@x98Wn=B`6v2MW+oV9{r_qy=pXvYwIF)P&l(UHw4u?T zdrjzve;Rtom>viR5?2etB>m4`7$FqYlNb~f)BjERPn!=aG5=5KW-SOG-pL2_$Ndj^ CK`&eY delta 23511 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 IfCrEN2dsIPi2wiq diff --git a/enterprise/dist/litellm_enterprise-0.1.29.tar.gz b/enterprise/dist/litellm_enterprise-0.1.29.tar.gz index 6781cf26cc9e9feab8ae6a0bacbb31fa52501dd0..1ea224f8f340cd67950787c29ca2591707495089 100644 GIT binary patch delta 49442 zcmX7v1zS~J*M&(DknS$&mJR^{LAqPIk(AC&cPZT|je>NSG)Q-Mcf&bne?IT`5BA#E z8e`sLUSkbH5q^auCJMsWeiIS}rs>N#Q{gP6Eo7`#-@Q{`ATKAKHJ*_Z0Zvx*Ps2~U2dw3jnUE;w!t$n|&Ky%)2ESGCG!U{EEzeDp1&dLb$ z!O>C3u;D}Gb*gTvhgacjhg|-lehl&DML6QcO>d0GJ+1K&MMlWCAMU6ira5_c zS!QO$m_@EM;!lNelXyj1fA_?`D67X9U zTy9*N){Ll6X&E9uU5)j;dm~(3=Pg)HrVG&^0TDai%iRY=o;uqNB zG^@W;BjK`d6!3fwQE%!nY~ASCm|c=*cjy5Wi)?#8*~v7`B8;F%1Gdb?Sk5UJ>> z4K1^!7OV7=Eb0hR^x~h;H0^i~92D)NOsqfe;8@PE-caGjceNtEnO!+g

ncGmQo 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 delta 48352 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 K4gO95Xa)d1`I`s; diff --git a/enterprise/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py b/enterprise/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py index 61e0745bab1..1e87e5594fc 100644 --- a/enterprise/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py +++ b/enterprise/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py @@ -30,8 +30,15 @@ from litellm.integrations.email_templates.user_invitation_email import ( from litellm.integrations.email_templates.templates import ( MAX_BUDGET_ALERT_EMAIL_TEMPLATE, SOFT_BUDGET_ALERT_EMAIL_TEMPLATE, + TEAM_SOFT_BUDGET_ALERT_EMAIL_TEMPLATE, +) +from litellm.proxy._types import ( + CallInfo, + InvitationNew, + Litellm_EntityType, + UserAPIKeyAuth, + WebhookEvent, ) -from litellm.proxy._types import CallInfo, InvitationNew, UserAPIKeyAuth, WebhookEvent from litellm.secret_managers.main import get_secret_bool from litellm.types.integrations.slack_alerting import LITELLM_LOGO_URL from litellm.constants import ( @@ -217,6 +224,68 @@ class BaseEmailLogger(CustomLogger): ) pass + async def send_team_soft_budget_alert_email(self, event: WebhookEvent): + """ + Send email to team members when team soft budget is crossed + Supports multiple recipients via alert_emails field from team metadata + """ + # Collect all recipient emails + recipient_emails: List[str] = [] + + # Add additional alert emails from team metadata.soft_budget_alert_emails + if hasattr(event, "alert_emails") and event.alert_emails: + for email in event.alert_emails: + if email and email not in recipient_emails: # Avoid duplicates + recipient_emails.append(email) + + # If no recipients found, skip sending + if not recipient_emails: + verbose_proxy_logger.warning( + f"No recipient emails found for team soft budget alert. event={event.model_dump(exclude_none=True)}" + ) + return + + verbose_proxy_logger.debug( + f"send_team_soft_budget_alert_email_event: {json.dumps(event.model_dump(exclude_none=True), indent=4, default=str)}" + ) + + # Get email params using the first recipient email (for template formatting) + email_params = await self._get_email_params( + email_event=EmailEvent.soft_budget_crossed, + user_id=event.user_id, + user_email=recipient_emails[0], + event_message=event.event_message, + ) + + # Format budget values + soft_budget_str = f"${event.soft_budget}" if event.soft_budget is not None else "N/A" + spend_str = f"${event.spend}" if event.spend is not None else "$0.00" + max_budget_info = "" + if event.max_budget is not None: + max_budget_info = f"Maximum Budget: ${event.max_budget}
" + + # Use team alias or generic greeting + team_alias = event.team_alias or "Team" + + email_html_content = TEAM_SOFT_BUDGET_ALERT_EMAIL_TEMPLATE.format( + email_logo_url=email_params.logo_url, + team_alias=team_alias, + soft_budget=soft_budget_str, + spend=spend_str, + max_budget_info=max_budget_info, + base_url=email_params.base_url, + email_support_contact=email_params.support_contact, + ) + + # Send email to all recipients + await self.send_email( + from_email=self.DEFAULT_LITELLM_EMAIL, + to_email=recipient_emails, + subject=email_params.subject, + html_body=email_html_content, + ) + pass + async def send_max_budget_alert_email(self, event: WebhookEvent): """ Send email to user when max budget alert threshold is reached @@ -285,15 +354,29 @@ class BaseEmailLogger(CustomLogger): # - Don't re-alert, if alert already sent _cache: DualCache = self.internal_usage_cache - # percent of max_budget left to spend - if user_info.max_budget is None and user_info.soft_budget is None: - return - # For soft_budget alerts, check if we've already sent an alert if type == "soft_budget": + # For team soft budget alerts, we only need team soft_budget to be set + # For other entity types, we need either max_budget or soft_budget + if user_info.event_group == Litellm_EntityType.TEAM: + if user_info.soft_budget is None: + return + else: + # For non-team alerts, require either max_budget or soft_budget + if user_info.max_budget is None and user_info.soft_budget is None: + return if user_info.soft_budget is not None and user_info.spend >= user_info.soft_budget: # Generate cache key based on event type and identifier - _id = user_info.token or user_info.user_id or "default_id" + # Use appropriate ID based on event_group to ensure unique cache keys per entity type + if user_info.event_group == Litellm_EntityType.TEAM: + _id = user_info.team_id or "default_id" + elif user_info.event_group == Litellm_EntityType.ORGANIZATION: + _id = user_info.organization_id or "default_id" + elif user_info.event_group == Litellm_EntityType.USER: + _id = user_info.user_id or "default_id" + else: + # For KEY and other types, use token or user_id + _id = user_info.token or user_info.user_id or "default_id" _cache_key = f"email_budget_alerts:soft_budget_crossed:{_id}" # Check if we've already sent this alert @@ -318,10 +401,15 @@ class BaseEmailLogger(CustomLogger): projected_exceeded_date=user_info.projected_exceeded_date, projected_spend=user_info.projected_spend, event_group=user_info.event_group, + alert_emails=user_info.alert_emails, ) try: - await self.send_soft_budget_alert_email(webhook_event) + # Use team-specific function for team alerts, otherwise use standard function + if user_info.event_group == Litellm_EntityType.TEAM: + await self.send_team_soft_budget_alert_email(webhook_event) + else: + await self.send_soft_budget_alert_email(webhook_event) # Cache the alert to prevent duplicate sends await _cache.async_set_cache( diff --git a/litellm/integrations/email_templates/templates.py b/litellm/integrations/email_templates/templates.py index 5de23db0f24..091351df2bb 100644 --- a/litellm/integrations/email_templates/templates.py +++ b/litellm/integrations/email_templates/templates.py @@ -85,6 +85,30 @@ SOFT_BUDGET_ALERT_EMAIL_TEMPLATE = """ The LiteLLM team
""" +TEAM_SOFT_BUDGET_ALERT_EMAIL_TEMPLATE = """ + LiteLLM Logo + +

Hi {team_alias} team member,
+ + Your LiteLLM team has crossed its soft budget limit of {soft_budget}.

+ + Current Spend: {spend}
+ Soft Budget: {soft_budget}
+ {max_budget_info} + +

+ ⚠️ Note: Your API requests will continue to work, but you should monitor your usage closely. + If you reach your maximum budget, requests will be rejected. +

+ + You can view your usage and manage your budget in the
LiteLLM Dashboard.

+ + If you have any questions, please send an email to {email_support_contact}

+ + Best,
+ The LiteLLM team
+""" + MAX_BUDGET_ALERT_EMAIL_TEMPLATE = """ LiteLLM Logo diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index 5b697249a41..f38f94f4c98 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -2190,6 +2190,7 @@ class LiteLLM_VerificationTokenView(LiteLLM_VerificationToken): team_tpm_limit: Optional[int] = None team_rpm_limit: Optional[int] = None team_max_budget: Optional[float] = None + team_soft_budget: Optional[float] = None team_models: List = [] team_blocked: bool = False soft_budget: Optional[float] = None @@ -2648,6 +2649,10 @@ class CallInfo(LiteLLMPydanticObjectBase): projected_exceeded_date: Optional[str] = None projected_spend: Optional[float] = None event_group: Litellm_EntityType + alert_emails: Optional[List[str]] = Field( + default=None, + description="Additional email addresses to send alerts to (e.g., from team metadata)", + ) class WebhookEvent(CallInfo): diff --git a/litellm/proxy/auth/auth_checks.py b/litellm/proxy/auth/auth_checks.py index 359bb944546..437ef0d438b 100644 --- a/litellm/proxy/auth/auth_checks.py +++ b/litellm/proxy/auth/auth_checks.py @@ -218,6 +218,13 @@ async def common_checks( valid_token=valid_token, ) + # 3.0.5. If team is over soft budget (alert only, doesn't block) + await _team_soft_budget_check( + team_object=team_object, + proxy_logging_obj=proxy_logging_obj, + valid_token=valid_token, + ) + # 3.1. If organization is in budget await _organization_max_budget_check( valid_token=valid_token, @@ -2421,6 +2428,66 @@ async def _team_max_budget_check( ) +async def _team_soft_budget_check( + team_object: Optional[LiteLLM_TeamTable], + valid_token: Optional[UserAPIKeyAuth], + proxy_logging_obj: ProxyLogging, +): + """ + Triggers a budget alert if the team is over it's soft budget. + """ + if ( + team_object is not None + and team_object.soft_budget is not None + and team_object.spend is not None + and team_object.spend >= team_object.soft_budget + ): + verbose_proxy_logger.debug( + "Crossed Soft Budget for team %s, spend %s, soft_budget %s", + team_object.team_id, + team_object.spend, + team_object.soft_budget, + ) + if valid_token: + # Extract alert emails from team metadata + alert_emails: Optional[List[str]] = None + if team_object.metadata is not None and isinstance(team_object.metadata, dict): + soft_budget_alert_emails = team_object.metadata.get("soft_budget_alerting_emails") + if soft_budget_alert_emails is not None: + if isinstance(soft_budget_alert_emails, list): + alert_emails = [email for email in soft_budget_alert_emails if isinstance(email, str) and email.strip()] + elif isinstance(soft_budget_alert_emails, str): + # Handle comma-separated string + alert_emails = [email.strip() for email in soft_budget_alert_emails.split(",") if email.strip()] + # Filter out empty strings + if alert_emails: + alert_emails = [email for email in alert_emails if email] + else: + alert_emails = None + + call_info = CallInfo( + token=valid_token.token, + spend=team_object.spend, + max_budget=team_object.max_budget, + soft_budget=team_object.soft_budget, + user_id=valid_token.user_id, + team_id=valid_token.team_id, + team_alias=valid_token.team_alias, + organization_id=valid_token.org_id, + user_email=None, # Team-level alert, no specific user email + key_alias=valid_token.key_alias, + event_group=Litellm_EntityType.TEAM, + alert_emails=alert_emails, + ) + + asyncio.create_task( + proxy_logging_obj.budget_alerts( + type="soft_budget", + user_info=call_info, + ) + ) + + async def _organization_max_budget_check( valid_token: Optional[UserAPIKeyAuth], team_object: Optional[LiteLLM_TeamTable], diff --git a/litellm/proxy/auth/user_api_key_auth.py b/litellm/proxy/auth/user_api_key_auth.py index a153c6e51cc..05eeab3f611 100644 --- a/litellm/proxy/auth/user_api_key_auth.py +++ b/litellm/proxy/auth/user_api_key_auth.py @@ -1149,6 +1149,7 @@ async def _user_api_key_auth_builder( # noqa: PLR0915 _team_obj: Optional[LiteLLM_TeamTable] = LiteLLM_TeamTable( team_id=valid_token.team_id, max_budget=valid_token.team_max_budget, + soft_budget=valid_token.team_soft_budget, spend=valid_token.team_spend, tpm_limit=valid_token.team_tpm_limit, rpm_limit=valid_token.team_rpm_limit, diff --git a/litellm/proxy/utils.py b/litellm/proxy/utils.py index 6bbf0df74de..00491675876 100644 --- a/litellm/proxy/utils.py +++ b/litellm/proxy/utils.py @@ -1370,17 +1370,35 @@ class ProxyLogging: ], user_info: CallInfo, ): - if self.alerting is None: - # do nothing if alerting is not switched on + # For soft_budget alerts with alert_emails set, allow email sending even if alerting is None + # This enables team-specific soft budget email alerts via metadata.soft_budget_alerting_emails + # Note: user_info is a CallInfo that can represent user/team/org level info. For team budgets, + # alert_emails is populated from team_object.metadata.soft_budget_alerting_emails (see auth_checks.py) + is_soft_budget_with_alert_emails = ( + type == "soft_budget" + and user_info.alert_emails is not None + and len(user_info.alert_emails) > 0 + ) + + if self.alerting is None and not is_soft_budget_with_alert_emails: + # do nothing if alerting is not switched on (unless it's a soft_budget alert with team-specific emails) return - if "slack" in self.alerting: + if self.alerting is not None and "slack" in self.alerting: await self.slack_alerting_instance.budget_alerts( type=type, user_info=user_info, ) - if "email" in self.alerting and self.email_logging_instance is not None: + # Call email_logging_instance if: + # 1. "email" is in alerting config, OR + # 2. It's a soft_budget alert with team-specific alert_emails (bypasses global alerting config) + should_send_email = ( + (self.alerting is not None and "email" in self.alerting) + or is_soft_budget_with_alert_emails + ) + + if should_send_email and self.email_logging_instance is not None: await self.email_logging_instance.budget_alerts( type=type, user_info=user_info, @@ -2607,7 +2625,8 @@ class PrismaClient: SELECT v.*, t.spend AS team_spend, - t.max_budget AS team_max_budget, + t.max_budget AS team_max_budget, + t.soft_budget AS team_soft_budget, t.tpm_limit AS team_tpm_limit, t.rpm_limit AS team_rpm_limit, t.models AS team_models,