💰 Budgets, Ratenlimits
Anforderungen
- Benötigt eine Postgres-Datenbank (z.B. Supabase, Neon, etc.) Setup ansehen
Budgets festlegen
Globaler Proxy
Ein Budget für alle Aufrufe auf dem Proxy anwenden
Schritt 1. config.yaml ändern
general_settings:
master_key: sk-1234
litellm_settings:
# other litellm settings
max_budget: 0 # (float) sets max budget as $0 USD
budget_duration: 30d # (str) frequency of reset - You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d").
Schritt 2. Proxy starten
litellm /path/to/config.yaml
Schritt 3. Testaufruf senden
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Autherization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
}'
Team
Sie können
- Budgets zu Teams hinzufügen
Schritt-für-Schritt-Anleitung zum Festlegen und Zurücksetzen von Budgets für Teams hier (API oder über die Admin-Oberfläche)
Budgets zu Teams hinzufügen
curl --location 'https://:4000/team/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_alias": "my-new-team_4",
"members_with_roles": [{"role": "admin", "user_id": "5c4a0aa3-a1e1-43dc-bd87-3c2da8382a3a"}],
"rpm_limit": 99
}'
Beispielantwort
{
"team_alias": "my-new-team_4",
"team_id": "13e83b19-f851-43fe-8e93-f96e21033100",
"admins": [],
"members": [],
"members_with_roles": [
{
"role": "admin",
"user_id": "5c4a0aa3-a1e1-43dc-bd87-3c2da8382a3a"
}
],
"metadata": {},
"tpm_limit": null,
"rpm_limit": 99,
"max_budget": null,
"models": [],
"spend": 0.0,
"max_parallel_requests": null,
"budget_duration": null,
"budget_reset_at": null
}
Budgetdauer zu Teams hinzufügen
budget_duration: Das Budget wird am Ende der angegebenen Dauer zurückgesetzt. Wenn nicht gesetzt, wird das Budget nie zurückgesetzt. Sie können die Dauer als Sekunden ("30s"), Minuten ("30m"), Stunden ("30h"), Tage ("30d") festlegen.
curl 'http://0.0.0.0:4000/team/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_alias": "my-new-team_4",
"members_with_roles": [{"role": "admin", "user_id": "5c4a0aa3-a1e1-43dc-bd87-3c2da8382a3a"}],
"budget_duration": 10s,
}'
Teammitglieder
Verwenden Sie dies, wenn Sie das Ausgabenvolumen eines Benutzers innerhalb eines Teams budgetieren möchten
Schritt 1. Benutzer erstellen
Erstellen Sie einen Benutzer mit user_id=ishaan
curl --location 'http://0.0.0.0:4000/user/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "ishaan"
}'
Schritt 2. Benutzer zu einem bestehenden Team hinzufügen – max_budget_in_team festlegen
Legen Sie max_budget_in_team fest, wenn Sie einen Benutzer zu einem Team hinzufügen. Wir verwenden dieselbe user_id, die wir in Schritt 1 gesetzt haben
curl -X POST 'http://0.0.0.0:4000/team/member_add' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"team_id": "e8d1460f-846c-45d7-9b43-55f3cc52ac32", "max_budget_in_team": 0.000000000001, "member": {"role": "user", "user_id": "ishaan"}}'
Schritt 3. Schlüssel für Teammitglied aus Schritt 1 erstellen
Legen Sie user_id=ishaan aus Schritt 1 fest
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"user_id": "ishaan",
"team_id": "e8d1460f-846c-45d7-9b43-55f3cc52ac32"
}'
Antwort von /key/generate
Wir verwenden den key aus dieser Antwort in Schritt 4
{"key":"sk-RV-l2BJEZ_LYNChSx2EueQ", "models":[],"spend":0.0,"max_budget":null,"user_id":"ishaan","team_id":"e8d1460f-846c-45d7-9b43-55f3cc52ac32","max_parallel_requests":null,"metadata":{},"tpm_limit":null,"rpm_limit":null,"budget_duration":null,"allowed_cache_controls":[],"soft_budget":null,"key_alias":null,"duration":null,"aliases":{},"config":{},"permissions":{},"model_max_budget":{},"key_name":null,"expires":null,"token_id":null}%
Schritt 4. /chat/completions-Anfragen für Teammitglied senden
Verwenden Sie den Schlüssel aus Schritt 3 für diese Anfrage. Nach 2-3 Anfragen sollten Sie den folgenden Fehler erhalten: ExceededBudget: Crossed spend within team
curl --location 'https://:4000/chat/completions' \
--header 'Authorization: Bearer sk-RV-l2BJEZ_LYNChSx2EueQ' \
--header 'Content-Type: application/json' \
--data '{
"model": "llama3",
"messages": [
{
"role": "user",
"content": "tes4"
}
]
}'
Interner Benutzer
Wenden Sie ein Budget auf alle Aufrufe an, die ein interner Benutzer (Schlüsselbesitzer) auf dem Proxy tätigen kann.
Für die meisten Anwendungsfälle empfehlen wir, Budgets für Teammitglieder festzulegen
LiteLLM stellt einen /user/new-Endpunkt bereit, um dafür Budgets zu erstellen.
Sie können
- Budgets für Benutzer hinzufügen Springen
- Budgetdauern hinzufügen, um Ausgaben zurückzusetzen Springen
Standardmäßig ist max_budget auf null gesetzt und wird für Schlüssel nicht geprüft
Budgets für Benutzer hinzufügen
curl --location 'https://:4000/user/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["azure-models"], "max_budget": 0, "user_id": "krrish3@berri.ai"}'
Beispielantwort
{
"key": "sk-YF2OxDbrgd1y2KgwxmEA2w",
"expires": "2023-12-22T09:53:13.861000Z",
"user_id": "krrish3@berri.ai",
"max_budget": 0.0
}
Budgetdauer für Benutzer hinzufügen
budget_duration: Das Budget wird am Ende der angegebenen Dauer zurückgesetzt. Wenn nicht gesetzt, wird das Budget nie zurückgesetzt. Sie können die Dauer als Sekunden ("30s"), Minuten ("30m"), Stunden ("30h"), Tage ("30d") festlegen.
curl 'http://0.0.0.0:4000/user/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_id": "core-infra", # [OPTIONAL]
"max_budget": 10,
"budget_duration": 10s,
}'
Neue Schlüssel für bestehenden Benutzer erstellen
Rufen Sie einfach /key/generate mit dieser user_id auf (z.B. krrish3@berri.ai) und
- Budgetprüfung: Das Budget von krrish3@berri.ai (z.B. 10 $) wird für diesen Schlüssel geprüft
- Ausgabenverfolgung: Die Ausgaben für diesen Schlüssel aktualisieren auch die Ausgaben von krrish3@berri.ai
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data '{"models": ["azure-models"], "user_id": "krrish3@berri.ai"}'
Virtueller Schlüssel
Wenden Sie ein Budget auf einen Schlüssel an.
Sie können
- Budgets zu Schlüsseln hinzufügen Springen
- Budgetdauern hinzufügen, um Ausgaben zurückzusetzen Springen
Erwartetes Verhalten
- Kosten pro Schlüssel werden automatisch in die Tabelle
LiteLLM_VerificationTokeneingetragen - Nachdem der Schlüssel sein
max_budgetüberschritten hat, schlagen Anfragen fehl - Wenn eine Dauer festgelegt ist, werden die Ausgaben am Ende der Dauer zurückgesetzt
Standardmäßig ist max_budget auf null gesetzt und wird für Schlüssel nicht geprüft
Budgets zu Schlüsseln hinzufügen
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_id": "core-infra", # [OPTIONAL]
"max_budget": 10,
}'
Beispielanfrage an /chat/completions, wenn der Schlüssel das Budget überschritten hat
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <generated-key>' \
--data ' {
"model": "azure-gpt-3.5",
"user": "e09b4da8-ed80-4b05-ac93-e16d9eb56fca",
"messages": [
{
"role": "user",
"content": "respond in 50 lines"
}
],
}'
Erwartete Antwort von /chat/completions, wenn der Schlüssel das Budget überschritten hat
{
"detail":"Authentication Error, ExceededTokenBudget: Current spend for token: 7.2e-05; Max Budget for Token: 2e-07"
}
Budgetdauer für Schlüssel hinzufügen
budget_duration: Das Budget wird am Ende der angegebenen Dauer zurückgesetzt. Wenn nicht gesetzt, wird das Budget nie zurückgesetzt. Sie können die Dauer als Sekunden ("30s"), Minuten ("30m"), Stunden ("30h"), Tage ("30d") festlegen.
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_id": "core-infra", # [OPTIONAL]
"max_budget": 10,
"budget_duration": 10s,
}'
✨ Virtueller Schlüssel (Modellspezifisch)
Wenden Sie modellspezifische Budgets auf einen Schlüssel an. Beispiel
- Budget für
gpt-4obeträgt 0,0000001 $, für den Zeitraum1dfür denkey = "sk-12345" - Budget für
gpt-4o-minibeträgt 10 $, für den Zeitraum30dfür denkey = "sk-12345"
✨ Dies ist eine reine Enterprise-Funktion. Starten Sie hier mit Enterprise
Die Spezifikation für model_max_budget ist Dict[str, GenericBudgetInfo]
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"model_max_budget": {"gpt-4o": {"budget_limit": "0.0000001", "time_period": "1d"}}
}'
Eine Testanfrage stellen
Wir erwarten, dass die erste Anfrage erfolgreich ist und die zweite Anfrage fehlschlägt, da wir das Budget für gpt-4o auf dem virtuellen Schlüssel überschreiten
Langchain, OpenAI SDK Anwendungsbeispiele
- Erfolgreicher Aufruf
- Fehlgeschlagener Aufruf
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <sk-generated-key>' \
--data ' {
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "testing request"
}
]
}
'
Erwarten Sie, dass dies fehlschlägt, da wir das Budget model=gpt-4o auf dem virtuellen Schlüssel überschreiten
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <sk-generated-key>' \
--data ' {
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "testing request"
}
]
}
'
Erwartete Antwort bei Fehler
{
"error": {
"message": "LiteLLM Virtual Key: 9769f3f6768a199f76cc29xxxx, key_alias: None, exceeded budget for model=gpt-4o",
"type": "budget_exceeded",
"param": null,
"code": "400"
}
}
Kunden
Verwenden Sie dies, um das für /chat/completions übergebene user zu budgetieren, ohne für jeden Benutzer einen Schlüssel erstellen zu müssen
Schritt 1. config.yaml ändern litellm.max_end_user_budget definieren
general_settings:
master_key: sk-1234
litellm_settings:
max_end_user_budget: 0.0001 # budget for 'user' passed to /chat/completions
- Eine /chat/completions-Anfrage stellen, 'user' übergeben – Erste Anfrage funktioniert
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-zi5onDRdHGD24v0Zdn7VBA' \
--data ' {
"model": "azure-gpt-3.5",
"user": "ishaan3",
"messages": [
{
"role": "user",
"content": "what time is it"
}
]
}'
- Eine /chat/completions-Anfrage stellen, 'user' übergeben – Anfrage schlägt fehl, da 'ishaan3' über dem Budget liegt
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-zi5onDRdHGD24v0Zdn7VBA' \
--data ' {
"model": "azure-gpt-3.5",
"user": "ishaan3",
"messages": [
{
"role": "user",
"content": "what time is it"
}
]
}'
Fehler
{"error":{"message":"Budget has been exceeded: User ishaan3 has exceeded their budget. Current spend: 0.0008869999999999999; Max Budget: 0.0001","type":"auth_error","param":"None","code":401}}%
Budgets zurücksetzen
Budgets für Schlüssel/interne Benutzer/Teams/Kunden zurücksetzen
budget_duration: Das Budget wird am Ende der angegebenen Dauer zurückgesetzt. Wenn nicht gesetzt, wird das Budget nie zurückgesetzt. Sie können die Dauer als Sekunden ("30s"), Minuten ("30m"), Stunden ("30h"), Tage ("30d") festlegen.
- Interne Benutzer
- Schlüssel
- Teams
curl 'http://0.0.0.0:4000/user/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"max_budget": 10,
"budget_duration": 10s, # 👈 KEY CHANGE
}'
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"max_budget": 10,
"budget_duration": 10s, # 👈 KEY CHANGE
}'
curl 'http://0.0.0.0:4000/team/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"max_budget": 10,
"budget_duration": 10s, # 👈 KEY CHANGE
}'
Hinweis: Standardmäßig prüft der Server alle 10 Minuten auf Rücksetzungen, um DB-Aufrufe zu minimieren.
Um dies zu ändern, setzen Sie proxy_budget_rescheduler_min_time und proxy_budget_rescheduler_max_time
Z.B.: Alle 1 Sekunde prüfen
general_settings:
proxy_budget_rescheduler_min_time: 1
proxy_budget_rescheduler_max_time: 1
Ratenlimits festlegen
Sie können festlegen:
- tpm-Limits (Tokens pro Minute)
- rpm-Limits (Anfragen pro Minute)
- maximale gleichzeitige Anfragen
- rpm / tpm-Limits pro Modell für einen bestimmten Schlüssel
- Pro Team
- Pro internem Benutzer
- Pro Schlüssel
- Pro API-Schlüssel pro Modell
- Für Kunden
Verwenden Sie /team/new oder /team/update, um Ratenlimits für mehrere Schlüssel eines Teams zu speichern.
curl --location 'http://0.0.0.0:4000/team/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{"team_id": "my-prod-team", "max_parallel_requests": 10, "tpm_limit": 20, "rpm_limit": 4}'
Erwartete Antwort
{
"key": "sk-sA7VDkyhlQ7m8Gt77Mbt3Q",
"expires": "2024-01-19T01:21:12.816168",
"team_id": "my-prod-team",
}
Verwenden Sie /user/new oder /user/update, um Ratenlimits für mehrere Schlüssel interner Benutzer zu speichern.
curl --location 'http://0.0.0.0:4000/user/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{"user_id": "krrish@berri.ai", "max_parallel_requests": 10, "tpm_limit": 20, "rpm_limit": 4}'
Erwartete Antwort
{
"key": "sk-sA7VDkyhlQ7m8Gt77Mbt3Q",
"expires": "2024-01-19T01:21:12.816168",
"user_id": "krrish@berri.ai",
}
Verwenden Sie /key/generate, wenn Sie diese nur für diesen Schlüssel wünschen.
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{"max_parallel_requests": 10, "tpm_limit": 20, "rpm_limit": 4}'
Erwartete Antwort
{
"key": "sk-ulGNRXWtv7M0lFnnsQk0wQ",
"expires": "2024-01-18T20:48:44.297973",
"user_id": "78c2c8fc-c233-43b9-b0c3-eb931da27b84" // 👈 auto-generated
}
Ratenlimits pro Modell und API-Schlüssel festlegen
Setzen Sie model_rpm_limit und model_tpm_limit, um Ratenlimits pro Modell und API-Schlüssel festzulegen
Hier ist gpt-4 der model_name, der in der litellm config.yaml festgelegt ist
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{"model_rpm_limit": {"gpt-4": 2}, "model_tpm_limit": {"gpt-4":}}'
Erwartete Antwort
{
"key": "sk-ulGNRXWtv7M0lFnnsQk0wQ",
"expires": "2024-01-18T20:48:44.297973",
}
Modell-Ratenlimits für diesen Schlüssel korrekt überprüfen
Eine /chat/completions-Anfrage stellen und prüfen, ob x-litellm-key-remaining-requests-gpt-4 zurückgegeben wird
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-ulGNRXWtv7M0lFnnsQk0wQ" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Hello, Claude!ss eho ares"}
]
}'
Erwartete Header
x-litellm-key-remaining-requests-gpt-4: 1
x-litellm-key-remaining-tokens-gpt-4: 179
Diese Header zeigen an
- 1 Anfrage verbleibend für das GPT-4-Modell für den Schlüssel=
sk-ulGNRXWtv7M0lFnnsQk0wQ - 179 Tokens verbleibend für das GPT-4-Modell für den Schlüssel=
sk-ulGNRXWtv7M0lFnnsQk0wQ
Sie können auch eine Budget-ID für einen Kunden über die Benutzeroberfläche unter der Registerkarte "Rate Limits" erstellen.
Verwenden Sie dies, um Ratenlimits für den für /chat/completions übergebenen user festzulegen, ohne für jeden Benutzer einen Schlüssel erstellen zu müssen
Schritt 1. Budget erstellen
Setzen Sie einen tpm_limit für das Budget (Sie können bei Bedarf auch rpm_limit übergeben)
curl --location 'http://0.0.0.0:4000/budget/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"budget_id" : "free-tier",
"tpm_limit": 5
}'
Schritt 2. Customer mit Budget erstellen
Wir verwenden budget_id="free-tier" aus Schritt 1 bei der Erstellung dieses neuen Kunden
curl --location 'http://0.0.0.0:4000/customer/new' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"user_id" : "palantir",
"budget_id": "free-tier"
}'
Schritt 3. user_id-ID in /chat/completions-Anfragen übergeben
Übergeben Sie die user_id aus Schritt 2 als user="palantir"
curl --location 'https://:4000/chat/completions' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"model": "llama3",
"user": "palantir",
"messages": [
{
"role": "user",
"content": "gm"
}
]
}'
Standardbudget für ALLE internen Benutzer festlegen
Verwenden Sie dies, um ein Standardbudget für Benutzer festzulegen, denen Sie Schlüssel geben.
Dies gilt, wenn ein Benutzer user_role="internal_user" hat (legen Sie dies über /user/new oder /user/update fest).
Dies gilt NICHT, wenn ein Schlüssel eine team_id hat (dann gelten Team-Budgets). Teilen Sie uns mit, wie wir dies verbessern können!
- Maximales Budget in Ihrer config.yaml definieren
model_list:
- model_name: "gpt-3.5-turbo"
litellm_params:
model: gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY
litellm_settings:
max_internal_user_budget: 0 # amount in USD
internal_user_budget_duration: "1mo" # reset every month
- Schlüssel für Benutzer erstellen
curl -L -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{}'
Erwartete Antwort
{
...
"key": "sk-X53RdxnDhzamRwjKXR4IHg"
}
- Testen Sie es!
curl -L -X POST 'http://0.0.0.0:4000/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-X53RdxnDhzamRwjKXR4IHg' \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hey, how's it going?"}]
}'
Erwartete Antwort
{
"error": {
"message": "ExceededBudget: User=<user_id> over budget. Spend=3.7e-05, Budget=0.0",
"type": "budget_exceeded",
"param": null,
"code": "400"
}
}
[BETA]Multi-Instanz-Ratenbegrenzung
Aktivieren Sie die Multi-Instanz-Ratenbegrenzung mit der Umgebungsvariable EXPERIMENTAL_MULTI_INSTANCE_RATE_LIMITING="True"
Änderungen
- Dies verschiebt die Verwendung von async_increment anstelle von async_set_cache beim Aktualisieren von aktuellen Anfragen/Tokens.
- Der In-Memory-Cache wird alle 0,01 Sekunden mit Redis synchronisiert, um zu vermeiden, dass Redis für jede Anfrage aufgerufen wird.
- In Tests wurde festgestellt, dass dies 2x schneller als die vorherige Implementierung ist und den Unterschied zwischen erwarteten und tatsächlichen Fehlern bei hohem Datenverkehr (100 RPS über 3 Instanzen) auf maximal 10 Anfragen reduziert.
Zugriff auf neues Modell gewähren
Verwenden Sie Modellzugriffsgruppen, um Benutzern den Zugriff auf ausgewählte Modelle zu gewähren und im Laufe der Zeit neue hinzuzufügen (z.B. mistral, llama-2, etc.).
Unterschied zwischen der Durchführung mit /key/generate und /user/new? Wenn Sie es bei /user/new tun, bleibt es für mehrere für diesen Benutzer generierte Schlüssel bestehen.
Schritt 1. Modell, Zugriffsgruppe in config.yaml zuweisen
model_list:
- model_name: text-embedding-ada-002
litellm_params:
model: azure/azure-embedding-model
api_base: "os.environ/AZURE_API_BASE"
api_key: "os.environ/AZURE_API_KEY"
api_version: "2023-07-01-preview"
model_info:
access_groups: ["beta-models"] # 👈 Model Access Group
Schritt 2. Schlüssel mit Zugriffsgruppe erstellen
curl --location 'https://:4000/user/new' \
-H 'Authorization: Bearer <your-master-key>' \
-H 'Content-Type: application/json' \
-d '{"models": ["beta-models"], # 👈 Model Access Group
"max_budget": 0}'
Neue Schlüssel für bestehende interne Benutzer erstellen
Fügen Sie einfach user_id in die /key/generate-Anfrage ein.
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data '{"models": ["azure-models"], "user_id": "krrish@berri.ai"}'
API-Spezifikation
GenericBudgetInfo
Ein Pydantic-Modell, das Budgetinformationen mit einem Zeitraum und einem Limit definiert.
class GenericBudgetInfo(BaseModel):
budget_limit: float # The maximum budget amount in USD
time_period: str # Duration string like "1d", "30d", etc.
Felder:
budget_limit(float): Der maximale Budgetbetrag in USDtime_period(str): Zeichenkette, die den Zeitraum für das Budget angibt. Unterstützte Formate- Sekunden: "30s"
- Minuten: "30m"
- Stunden: "30h"
- Tage: "30d"
Beispiel:
{
"budget_limit": "0.0001",
"time_period": "1d"
}