Zum Hauptinhalt springen

Budget-Routing

LiteLLM unterstützt das Festlegen der folgenden Budgets

  • Anbieter-Budget - 100 $/Tag für OpenAI, 100 $/Tag für Azure.
  • Modell-Budget - 100 $/Tag für gpt-4 https://api-base-1, 100 $/Tag für gpt-4o https://api-base-2
  • Tag-Budget - 10 $/Tag für tag=product:chat-bot, 100 $/Tag für tag=product:chat-bot-2

Anbieter-Budgets

Verwenden Sie dies, um Budgets für LLM-Anbieter festzulegen – z. B. 100 $/Tag für OpenAI, 100 $/Tag für Azure.

Schnellstart

Legen Sie Anbieter-Budgets in Ihrer proxy_config.yaml-Datei fest

Proxy-Konfigurations-Setup

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

router_settings:
provider_budget_config:
openai:
budget_limit: 0.000000000001 # float of $ value budget for time period
time_period: 1d # can be 1d, 2d, 30d, 1mo, 2mo
azure:
budget_limit: 100
time_period: 1d
anthropic:
budget_limit: 100
time_period: 10d
vertex_ai:
budget_limit: 100
time_period: 12d
gemini:
budget_limit: 100
time_period: 12d

# OPTIONAL: Set Redis Host, Port, and Password if using multiple instance of LiteLLM
redis_host: os.environ/REDIS_HOST
redis_port: os.environ/REDIS_PORT
redis_password: os.environ/REDIS_PASSWORD

general_settings:
master_key: sk-1234

Machen Sie eine Testanfrage

Wir erwarten, dass die erste Anfrage erfolgreich ist und die zweite fehlschlägt, da wir das Budget für openai überschreiten

Langchain, OpenAI SDK Anwendungsbeispiele

curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
]
}'

Wie das Routing von Anbieter-Budgets funktioniert

  1. Budget-Tracking:

    • Verwendet Redis, um die Ausgaben für jeden Anbieter zu verfolgen
    • Verfolgt Ausgaben über angegebene Zeiträume (z. B. "1d", "30d")
    • Setzt die Ausgaben nach Ablauf des Zeitraums automatisch zurück
  2. Routing-Logik:

    • Leitet Anfragen an Anbieter unter deren Budgetgrenzen weiter
    • Überspringt Anbieter, die ihr Budget überschritten haben
    • Wenn alle Anbieter ihr Budget überschreiten, wird ein Fehler ausgelöst
  3. Unterstützte Zeiträume:

    • Sekunden: "Xs" (z. B. "30s")
    • Minuten: "Xm" (z. B. "10m")
    • Stunden: "Xh" (z. B. "24h")
    • Tage: "Xd" (z. B. "1d", "30d")
    • Monate: "Xmo" (z. B. "1mo", "2mo")
  4. Anforderungen:

    • Redis ist für die Verfolgung von Ausgaben über Instanzen hinweg erforderlich
    • Anbieternamen müssen LiteLLM-Anbieternamen sein. Siehe Unterstützte Anbieter

Überwachung des verbleibenden Anbieter-Budgets

Budget und Ausgabendetails abrufen

Verwenden Sie diesen Endpunkt, um das aktuelle Budget, die Ausgaben und die Zeit für die Budgetrücksetzung für einen Anbieter zu überprüfen

Beispielanfrage

curl -X GET https://:4000/provider/budgets \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234"

Beispielantwort

{
"providers": {
"openai": {
"budget_limit": 1e-12,
"time_period": "1d",
"spend": 0.0,
"budget_reset_at": null
},
"azure": {
"budget_limit": 100.0,
"time_period": "1d",
"spend": 0.0,
"budget_reset_at": null
},
"anthropic": {
"budget_limit": 100.0,
"time_period": "10d",
"spend": 0.0,
"budget_reset_at": null
},
"vertex_ai": {
"budget_limit": 100.0,
"time_period": "12d",
"spend": 0.0,
"budget_reset_at": null
}
}
}

Prometheus-Metrik

LiteLLM wird die folgende Metrik auf Prometheus ausgeben, um das verbleibende Budget für jeden Anbieter zu verfolgen

Diese Metrik gibt das verbleibende Budget für einen Anbieter in Dollar (USD) an

litellm_provider_remaining_budget_metric{api_provider="openai"} 10

Modell-Budgets

Verwenden Sie dies, um Budgets für Modelle festzulegen – z. B. 10 $/Tag für openai/gpt-4o, 100 $/Tag für openai/gpt-4o-mini

Schnellstart

Legen Sie Modell-Budgets in Ihrer proxy_config.yaml-Datei fest

model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
max_budget: 0.000000000001 # (USD)
budget_duration: 1d # (Duration. can be 1s, 1m, 1h, 1d, 1mo)
- model_name: gpt-4o-mini
litellm_params:
model: openai/gpt-4o-mini
api_key: os.environ/OPENAI_API_KEY
max_budget: 100 # (USD)
budget_duration: 30d # (Duration. can be 1s, 1m, 1h, 1d, 1mo)


Machen Sie eine Testanfrage

Wir erwarten, dass die erste Anfrage erfolgreich ist und die zweite fehlschlägt, da wir das Budget für openai/gpt-4o überschreiten

Langchain, OpenAI SDK Anwendungsbeispiele

curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
]
}'

✨ Tag-Budgets

Info

✨ Dies ist eine Funktion nur für Enterprise-Kunden. Hier geht's zum Enterprise-Angebot

Verwenden Sie dies, um Budgets für Tags festzulegen – z. B. 10 $/Tag für tag=product:chat-bot, 100 $/Tag für tag=product:chat-bot-2

Schnellstart

Legen Sie Tag-Budgets fest, indem Sie tag_budget_config in Ihrer proxy_config.yaml-Datei festlegen

model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY

litellm_settings:
tag_budget_config:
product:chat-bot: # (Tag)
max_budget: 0.000000000001 # (USD)
budget_duration: 1d # (Duration)
product:chat-bot-2: # (Tag)
max_budget: 100 # (USD)
budget_duration: 1d # (Duration)

Machen Sie eine Testanfrage

Wir erwarten, dass die erste Anfrage erfolgreich ist und die zweite fehlschlägt, da wir das Budget für openai/gpt-4o überschreiten

Langchain, OpenAI SDK Anwendungsbeispiele

curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is test request"}
],
"metadata": {"tags": ["product:chat-bot"]}
}'

Multi-Instanz-Setup

Wenn Sie ein Multi-Instanz-Setup verwenden, müssen Sie den Redis-Host, -Port und das -Passwort in der Datei proxy_config.yaml festlegen. Redis wird verwendet, um die Ausgaben über LiteLLM-Instanzen hinweg zu synchronisieren.

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

router_settings:
provider_budget_config:
openai:
budget_limit: 0.000000000001 # float of $ value budget for time period
time_period: 1d # can be 1d, 2d, 30d, 1mo, 2mo

# 👇 Add this: Set Redis Host, Port, and Password if using multiple instance of LiteLLM
redis_host: os.environ/REDIS_HOST
redis_port: os.environ/REDIS_PORT
redis_password: os.environ/REDIS_PASSWORD

general_settings:
master_key: sk-1234

Spezifikation für provider_budget_config

Die provider_budget_config ist ein Wörterbuch, bei dem

  • Schlüssel: Anbietername (Zeichenkette) – Muss ein gültiger LiteLLM-Anbietername sein
  • Wert: Budget-Konfigurationsobjekt mit den folgenden Parametern
    • budget_limit: Gleitkommawert, der das Budget in USD darstellt
    • time_period: Dauerzeichenkette in einem der folgenden Formate
      • Sekunden: "Xs" (z. B. "30s")
      • Minuten: "Xm" (z. B. "10m")
      • Stunden: "Xh" (z. B. "24h")
      • Tage: "Xd" (z. B. "1d", "30d")
      • Monate: "Xmo" (z. B. "1mo", "2mo")

Beispielstruktur

provider_budget_config:
openai:
budget_limit: 100.0 # $100 USD
time_period: "1d" # 1 day period
azure:
budget_limit: 500.0 # $500 USD
time_period: "30d" # 30 day period
anthropic:
budget_limit: 200.0 # $200 USD
time_period: "1mo" # 1 month period
gemini:
budget_limit: 50.0 # $50 USD
time_period: "24h" # 24 hour period