litellm-enterprise 0.1.16__tar.gz → 0.1.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/PKG-INFO +3 -2
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/llama_guard.py +1 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/llm_guard.py +1 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/pagerduty/pagerduty.py +1 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/integrations/prometheus.py +66 -10
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/auth/route_checks.py +0 -1
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/auth/user_api_key_auth.py +3 -1
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/hooks/managed_files.py +1 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/pyproject.toml +2 -2
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/LICENSE.md +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/README.md +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/__init__.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/callback_controls.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/example_logging_api.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/generic_api_callback.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secret_detection.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/__init__.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adafruit.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adobe.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/age_secret_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/airtable_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/algolia_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/alibaba.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/asana.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/atlassian_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/authress_access_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/beamer_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bitbucket.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bittrex.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/clojars_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/codecov_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/coinbase_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/confluent.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/contentful_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/databricks_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/datadog_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/defined_networking_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/digitalocean.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/discord.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/doppler_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/droneci_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dropbox.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/duffel_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dynatrace_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/easypost.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/etsy_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/facebook_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/fastly_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finicity.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finnhub_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flickr_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flutterwave.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/frameio_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/freshbooks_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gcp_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/github_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitlab.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitter_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gocardless_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/grafana.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hashicorp_tf_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/heroku_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hubspot_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/huggingface.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/intercom_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jfrog.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jwt.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kraken_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kucoin.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/launchdarkly_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linear.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linkedin.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/lob.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mailgun.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mapbox_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mattermost_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/messagebird.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/microsoft_teams_webhook.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/netlify_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/new_relic.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/nytimes_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/okta_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/openai_api_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/planetscale.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/postman_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/prefect_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pulumi_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pypi_upload_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rapidapi_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/readme_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rubygems_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/scalingo_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendbird.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendgrid_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendinblue_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sentry_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shippo_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shopify.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/slack.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/snyk_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/squarespace_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sumologic.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/telegram_bot_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/travisci_access_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitch_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitter.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/typeform_api_token.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/vault.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/yandex.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/secrets_plugins/zendesk_secret_key.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/send_emails/endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/send_emails/resend_email.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/send_emails/smtp_email.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/enterprise_callbacks/session_handler.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/integrations/custom_guardrail.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/litellm_core_utils/litellm_logging.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/auth/__init__.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/auth/custom_sso_handler.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/common_utils/check_batch_cost.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/enterprise_routes.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/guardrails/endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/management_endpoints/__init__.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/management_endpoints/internal_user_endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/management_endpoints/key_management_endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/proxy_server.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/readme.md +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/utils.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/vector_stores/endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/types/enterprise_callbacks/send_emails.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/types/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/types/proxy/proxy_server.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: litellm-enterprise
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.18
|
|
4
4
|
Summary: Package for LiteLLM Enterprise features
|
|
5
5
|
Author: BerriAI
|
|
6
6
|
Requires-Python: >=3.8, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*
|
|
@@ -9,6 +9,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
13
|
Project-URL: Documentation, https://docs.litellm.ai
|
|
13
14
|
Project-URL: Homepage, https://litellm.ai
|
|
14
15
|
Project-URL: Repository, https://github.com/BerriAI/litellm
|
|
@@ -122,19 +122,19 @@ class PrometheusLogger(CustomLogger):
|
|
|
122
122
|
|
|
123
123
|
# Counter for total_output_tokens
|
|
124
124
|
self.litellm_tokens_metric = self._counter_factory(
|
|
125
|
-
"
|
|
125
|
+
"litellm_total_tokens_metric",
|
|
126
126
|
"Total number of input + output tokens from LLM requests",
|
|
127
127
|
labelnames=self.get_labels_for_metric("litellm_total_tokens_metric"),
|
|
128
128
|
)
|
|
129
129
|
|
|
130
130
|
self.litellm_input_tokens_metric = self._counter_factory(
|
|
131
|
-
"
|
|
131
|
+
"litellm_input_tokens_metric",
|
|
132
132
|
"Total number of input tokens from LLM requests",
|
|
133
133
|
labelnames=self.get_labels_for_metric("litellm_input_tokens_metric"),
|
|
134
134
|
)
|
|
135
135
|
|
|
136
136
|
self.litellm_output_tokens_metric = self._counter_factory(
|
|
137
|
-
"
|
|
137
|
+
"litellm_output_tokens_metric",
|
|
138
138
|
"Total number of output tokens from LLM requests",
|
|
139
139
|
labelnames=self.get_labels_for_metric("litellm_output_tokens_metric"),
|
|
140
140
|
)
|
|
@@ -2293,10 +2293,60 @@ def get_custom_labels_from_metadata(metadata: dict) -> Dict[str, str]:
|
|
|
2293
2293
|
return result
|
|
2294
2294
|
|
|
2295
2295
|
|
|
2296
|
+
def _tag_matches_wildcard_configured_pattern(tags: List[str], configured_tag: str) -> bool:
|
|
2297
|
+
"""
|
|
2298
|
+
Check if any of the request tags matches a wildcard configured pattern
|
|
2299
|
+
|
|
2300
|
+
Args:
|
|
2301
|
+
tags: List[str] - The request tags
|
|
2302
|
+
configured_tag: str - The configured tag
|
|
2303
|
+
|
|
2304
|
+
Returns:
|
|
2305
|
+
bool - True if any of the request tags matches the configured tag, False otherwise
|
|
2306
|
+
|
|
2307
|
+
e.g.
|
|
2308
|
+
tags = ["User-Agent: curl/7.68.0", "User-Agent: python-requests/2.28.1", "prod"]
|
|
2309
|
+
configured_tag = "User-Agent: curl/*"
|
|
2310
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # True
|
|
2311
|
+
|
|
2312
|
+
configured_tag = "User-Agent: python-requests/*"
|
|
2313
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # True
|
|
2314
|
+
|
|
2315
|
+
configured_tag = "gm"
|
|
2316
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # False
|
|
2317
|
+
"""
|
|
2318
|
+
import re
|
|
2319
|
+
|
|
2320
|
+
from litellm.router_utils.pattern_match_deployments import PatternMatchRouter
|
|
2321
|
+
pattern_router = PatternMatchRouter()
|
|
2322
|
+
regex_pattern = pattern_router._pattern_to_regex(configured_tag)
|
|
2323
|
+
return any(re.match(pattern=regex_pattern, string=tag) for tag in tags)
|
|
2324
|
+
|
|
2325
|
+
|
|
2296
2326
|
def get_custom_labels_from_tags(tags: List[str]) -> Dict[str, str]:
|
|
2297
2327
|
"""
|
|
2298
|
-
Get custom labels from tags based on admin configuration
|
|
2328
|
+
Get custom labels from tags based on admin configuration.
|
|
2329
|
+
|
|
2330
|
+
Supports both exact matches and wildcard patterns:
|
|
2331
|
+
- Exact match: "prod" matches "prod" exactly
|
|
2332
|
+
- Wildcard pattern: "User-Agent: curl/*" matches "User-Agent: curl/7.68.0"
|
|
2333
|
+
|
|
2334
|
+
Reuses PatternMatchRouter for wildcard pattern matching.
|
|
2335
|
+
|
|
2336
|
+
Returns dict of label_name: "true" if the tag matches the configured tag, "false" otherwise
|
|
2337
|
+
|
|
2338
|
+
{
|
|
2339
|
+
"tag_User-Agent_curl": "true",
|
|
2340
|
+
"tag_User-Agent_python_requests": "false",
|
|
2341
|
+
"tag_Environment_prod": "true",
|
|
2342
|
+
"tag_Environment_dev": "false",
|
|
2343
|
+
"tag_Service_api_gateway_v2": "true",
|
|
2344
|
+
"tag_Service_web_app_v1": "false",
|
|
2345
|
+
}
|
|
2299
2346
|
"""
|
|
2347
|
+
import re
|
|
2348
|
+
|
|
2349
|
+
from litellm.router_utils.pattern_match_deployments import PatternMatchRouter
|
|
2300
2350
|
from litellm.types.integrations.prometheus import _sanitize_prometheus_label_name
|
|
2301
2351
|
|
|
2302
2352
|
configured_tags = litellm.custom_prometheus_tags
|
|
@@ -2304,16 +2354,22 @@ def get_custom_labels_from_tags(tags: List[str]) -> Dict[str, str]:
|
|
|
2304
2354
|
return {}
|
|
2305
2355
|
|
|
2306
2356
|
result: Dict[str, str] = {}
|
|
2357
|
+
pattern_router = PatternMatchRouter()
|
|
2307
2358
|
|
|
2308
|
-
# Map each configured tag to its presence in the request tags
|
|
2309
2359
|
for configured_tag in configured_tags:
|
|
2310
|
-
# Create a safe prometheus label name
|
|
2311
2360
|
label_name = _sanitize_prometheus_label_name(f"tag_{configured_tag}")
|
|
2312
|
-
|
|
2313
|
-
# Check
|
|
2361
|
+
|
|
2362
|
+
# Check for exact match first (backwards compatibility)
|
|
2314
2363
|
if configured_tag in tags:
|
|
2315
2364
|
result[label_name] = "true"
|
|
2316
|
-
|
|
2317
|
-
|
|
2365
|
+
continue
|
|
2366
|
+
|
|
2367
|
+
# Use PatternMatchRouter for wildcard pattern matching
|
|
2368
|
+
if "*" in configured_tag and _tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag):
|
|
2369
|
+
result[label_name] = "true"
|
|
2370
|
+
continue
|
|
2371
|
+
|
|
2372
|
+
# No match found
|
|
2373
|
+
result[label_name] = "false"
|
|
2318
2374
|
|
|
2319
2375
|
return result
|
|
@@ -20,7 +20,6 @@ class EnterpriseRouteChecks:
|
|
|
20
20
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
|
21
21
|
detail=f"🚨🚨🚨 DISABLING LLM API ENDPOINTS is an Enterprise feature\n🚨 {CommonProxyErrors.not_premium_user.value}",
|
|
22
22
|
)
|
|
23
|
-
return False
|
|
24
23
|
|
|
25
24
|
return get_secret_bool("DISABLE_LLM_API_ENDPOINTS") is True
|
|
26
25
|
|
|
@@ -3,7 +3,7 @@ from typing import Any, Optional
|
|
|
3
3
|
from fastapi import Request
|
|
4
4
|
|
|
5
5
|
from litellm._logging import verbose_proxy_logger
|
|
6
|
-
from litellm.proxy._types import UserAPIKeyAuth
|
|
6
|
+
from litellm.proxy._types import ProxyException, UserAPIKeyAuth
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
async def enterprise_custom_auth(
|
|
@@ -24,6 +24,8 @@ async def enterprise_custom_auth(
|
|
|
24
24
|
elif custom_auth_settings["mode"] == "auto":
|
|
25
25
|
try:
|
|
26
26
|
return await user_custom_auth(request, api_key)
|
|
27
|
+
except ProxyException as e:
|
|
28
|
+
raise e
|
|
27
29
|
except Exception as e:
|
|
28
30
|
verbose_proxy_logger.debug(
|
|
29
31
|
f"Error in custom auth, checking litellm auth: {e}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "litellm-enterprise"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.18"
|
|
4
4
|
description = "Package for LiteLLM Enterprise features"
|
|
5
5
|
authors = ["BerriAI"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -22,7 +22,7 @@ requires = ["poetry-core"]
|
|
|
22
22
|
build-backend = "poetry.core.masonry.api"
|
|
23
23
|
|
|
24
24
|
[tool.commitizen]
|
|
25
|
-
version = "0.1.
|
|
25
|
+
version = "0.1.18"
|
|
26
26
|
version_files = [
|
|
27
27
|
"pyproject.toml:version",
|
|
28
28
|
"../requirements.txt:litellm-enterprise==",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.16 → litellm_enterprise-0.1.18}/litellm_enterprise/proxy/proxy_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|