mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-15 04:19:08 +00:00
* chore(lint): remove the LIT002 mutable-construction rule
Drop LIT002 from scripts/check_type_discipline.py along with its helpers,
its budget entry, its unit tests, and the AGENTS.md and gate docstring
mentions. `# mutable-ok` now only suppresses LIT001, so the markers that
only existed to silence LIT002 became LIT013 stale suppressions and are
removed. The files whose layout depended on those trailing comments are
reformatted with ruff format.
Every other LIT rule count is unchanged and the ASTs of all touched
litellm/ files match main apart from one docstring.
* chore(lint): keep the leftover mutable-ok markers for a follow-up
Restore the ~1.4k `# mutable-ok` markers stripped in the previous commit
so this PR only touches the checker, its tests, the budget, and docs.
Those markers no longer suppress anything, so `# mutable-ok` is exempt
from LIT013 until a follow-up strips them.
* Revert "chore(lint): keep the leftover mutable-ok markers for a follow-up"
This reverts commit
|
||
|---|---|---|
| .. | ||
| batching_handler.py | ||
| budget_alert_types.py | ||
| hanging_request_check.py | ||
| ms_teams.py | ||
| Readme.md | ||
| slack_alerting.py | ||
| user_spend_alerts.py | ||
| utils.py | ||
Slack Alerting on LiteLLM Gateway
This folder contains the Slack Alerting integration for LiteLLM Gateway.
Folder Structure
slack_alerting.py: This is the main file that handles sending different types of alertsbatching_handler.py: Handles Batching + sending Httpx Post requests to slack. Slack alerts are sent every 10s or when events are greater than X events. Done to ensure litellm has good performance under high traffictypes.py: This file contains the AlertType enum which is used to define the different types of alerts that can be sent to Slack.utils.py: This file contains common utils used specifically for slack alerting
Budget Alert Types
The budget_alert_types.py module provides a flexible framework for handling different types of budget alerts:
BaseBudgetAlertType: An abstract base class with abstract methods that all alert types must implement:get_event_group(): Returns the Litellm_EntityType for the alertget_event_message(): Returns the message prefix for the alertget_id(user_info): Returns the ID to use for caching/tracking the alert
Concrete implementations include:
ProxyBudgetAlert: Alerting for proxy-level budget concernsSoftBudgetAlert: Alerting when soft budgets are crossedUserBudgetAlert: Alerting for user-level budget concernsTeamBudgetAlert: Alerting for team-level budget concernsTokenBudgetAlert: Alerting for API key budget concernsProjectedLimitExceededAlert: Alerting when projected spend will exceed budget
Use the get_budget_alert_type() factory function to get the appropriate alert type class for a given alert type string:
from litellm.integrations.SlackAlerting.budget_alert_types import get_budget_alert_type
# Get the appropriate handler
budget_alert_class = get_budget_alert_type("user_budget")
# Use the handler methods
event_group = budget_alert_class.get_event_group() # Returns Litellm_EntityType.USER
event_message = budget_alert_class.get_event_message() # Returns "User Budget: "
cache_id = budget_alert_class.get_id(user_info) # Returns user_id
To add a new budget alert type, simply create a new class that extends BaseBudgetAlertType and implements all the required methods, then add it to the dictionary in the get_budget_alert_type() function.