Merge pull request #39102 from gaurav-pandey-zocdoc/litellm_budget_alert_wording

fix(alerting): clarify budget threshold messages
This commit is contained in:
Mateo Wang 2026-09-19 03:15:16 -07:00 committed by GitHub
commit 6b8db68fb8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View file

@ -647,10 +647,10 @@ class SlackAlerting(CustomBatchLogger):
event_message += f"Budget Crossed\n Total Budget:`{user_info.max_budget}`"
elif percent_left <= SLACK_ALERTING_THRESHOLD_5_PERCENT:
event = "threshold_crossed"
event_message += "5% Threshold Crossed "
event_message += "5% or less of budget remaining"
elif percent_left <= SLACK_ALERTING_THRESHOLD_15_PERCENT:
event = "threshold_crossed"
event_message += "15% Threshold Crossed"
event_message += "15% or less of budget remaining"
return event, event_message

View file

@ -10,6 +10,7 @@ import pytest
import litellm
from litellm.caching.caching import DualCache
from litellm.integrations.SlackAlerting.budget_alert_types import get_budget_alert_type
from litellm.integrations.SlackAlerting.slack_alerting import SlackAlerting
from litellm.proxy._types import CallInfo, Litellm_EntityType
from litellm.types.integrations.slack_alerting import AlertType, SlackAlertingCacheKeys
@ -61,9 +62,8 @@ class TestSlackAlerting(unittest.TestCase):
self.assertNotIn("*token:*", result)
def test_get_event_and_event_message_max_budget(self):
# Initial setup with no event
event = None
event_message = "Test Message: "
event_message = get_budget_alert_type("user_budget").get_event_message()
# Test case 1: When spend exceeds max_budget
user_info = CallInfo(
@ -78,7 +78,7 @@ class TestSlackAlerting(unittest.TestCase):
self.assertEqual(event, "budget_crossed")
self.assertTrue("Budget Crossed" in event_message)
# Test case 2: When 5% of max_budget is left
event_message = get_budget_alert_type("user_budget").get_event_message()
user_info = CallInfo(
max_budget=100.0,
spend=95.0,
@ -89,9 +89,9 @@ class TestSlackAlerting(unittest.TestCase):
user_info=user_info, event=event, event_message=event_message
)
self.assertEqual(event, "threshold_crossed")
self.assertTrue("5% Threshold Crossed" in event_message)
self.assertEqual(event_message, "User Budget: 5% or less of budget remaining")
# Test case 3: When 15% of max_budget is left
event_message = get_budget_alert_type("user_budget").get_event_message()
user_info = CallInfo(
max_budget=100.0,
spend=85.0,
@ -102,7 +102,7 @@ class TestSlackAlerting(unittest.TestCase):
user_info=user_info, event=event, event_message=event_message
)
self.assertEqual(event, "threshold_crossed")
self.assertTrue("15% Threshold Crossed" in event_message)
self.assertEqual(event_message, "User Budget: 15% or less of budget remaining")
def test_get_event_and_event_message_soft_budget(self):
# Initial setup with no event