🙋♂️ Kunden-/Endbenutzer-Budgets
Verfolgen Sie Ausgaben, legen Sie Budgets für Ihre Kunden fest.
Ausgaben von Kunden verfolgen
1. LLM-API-Aufruf mit Kunden-ID machen
Machen Sie einen /chat/completions-Aufruf, übergeben Sie 'user' - Erster Aufruf funktioniert
curl -X POST 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-1234' \ # 👈 YOUR PROXY KEY
--data ' {
"model": "azure-gpt-3.5",
"user": "ishaan3", # 👈 CUSTOMER ID
"messages": [
{
"role": "user",
"content": "what time is it"
}
]
}'
Die customer_id wird in die DB mit den neuen Ausgaben eingefügt.
Wenn die customer_id bereits existiert, werden die Ausgaben erhöht.
2. Kundenausgaben abrufen
- Gesamtausgaben
- Event Webhook
Rufen Sie /customer/info auf, um die Gesamtausgaben eines Kunden zu erhalten
curl -X GET 'http://0.0.0.0:4000/customer/info?end_user_id=ishaan3' \ # 👈 CUSTOMER ID
-H 'Authorization: Bearer sk-1234' \ # 👈 YOUR PROXY KEY
Erwartete Antwort
{
"user_id": "ishaan3",
"blocked": false,
"alias": null,
"spend": 0.001413,
"allowed_model_region": null,
"default_model": null,
"litellm_budget_table": null
}
Um die Ausgaben in Ihrer clientseitigen Datenbank zu aktualisieren, leiten Sie den Proxy auf Ihren Webhook um.
Beispiel: Wenn Ihr Server https://webhook.site ist und Sie auf 6ab090e8-c55f-4a23-b075-3209f5c57906 lauschen
- Fügen Sie die Webhook-URL zu Ihrer Proxy-Umgebung hinzu
export WEBHOOK_URL="https://webhook.site/6ab090e8-c55f-4a23-b075-3209f5c57906"
- Fügen Sie 'webhook' zu config.yaml hinzu
general_settings:
alerting: ["webhook"] # 👈 KEY CHANGE
- Testen Sie es!
curl -X POST 'https://:4000/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "mistral",
"messages": [
{
"role": "user",
"content": "What's the weather like in Boston today?"
}
],
"user": "krrish12"
}
'
Erwartete Antwort
{
"spend": 0.0011120000000000001, # 👈 SPEND
"max_budget": null,
"token": "88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b",
"customer_id": "krrish12", # 👈 CUSTOMER ID
"user_id": null,
"team_id": null,
"user_email": null,
"key_alias": null,
"projected_exceeded_date": null,
"projected_spend": null,
"event": "spend_tracked",
"event_group": "customer",
"event_message": "Customer spend tracked. Customer=krrish12, spend=0.0011120000000000001"
}
Kundenausgaben festlegen
Legen Sie Kundenausgaben (z. B. monatliche Budgets, TPM/RPM-Limits) auf dem LiteLLM-Proxy fest
Schnellstart
Kunden mit Budget erstellen / aktualisieren
Neuen Kunden mit Budget erstellen
curl -X POST 'http://0.0.0.0:4000/customer/new'
-H 'Authorization: Bearer sk-1234'
-H 'Content-Type: application/json'
-D '{
"user_id" : "my-customer-id",
"max_budget": "0", # 👈 CAN BE FLOAT
}'
Testen Sie es!
curl -X POST 'https://:4000/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "mistral",
"messages": [
{
"role": "user",
"content": "What'\''s the weather like in Boston today?"
}
],
"user": "ishaan-jaff-48"
}
Preispakete zuweisen
Erstellen und weisen Sie Kunden Preispaketen zu.
1. Ein Budget erstellen
- Benutzeroberfläche
- API
- Gehen Sie auf der Benutzeroberfläche zum Tab 'Budgets'.
- Klicken Sie auf '+ Budget erstellen'.
- Erstellen Sie Ihr Preispaket (z. B. 'my-free-tier' mit einem Budget von 4 US-Dollar). Das bedeutet, dass jeder Benutzer auf diesem Preispaket ein maximales Budget von 4 US-Dollar hat.
Verwenden Sie den Endpunkt /budget/new, um ein neues Budget zu erstellen. API-Referenz
curl -X POST 'https://:4000/budget/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"budget_id": "my-free-tier",
"max_budget": 4
}
2. Budget einem Kunden zuweisen
Weisen Sie in Ihrem Anwendungscode das Budget zu, wenn Sie einen neuen Kunden erstellen.
Verwenden Sie einfach die budget_id, die bei der Erstellung des Budgets verwendet wurde. In unserem Beispiel ist dies my-free-tier.
curl -X POST 'https://:4000/customer/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"user_id": "my-customer-id",
"budget_id": "my-free-tier" # 👈 KEY CHANGE
}
3. Testen!
- curl
- OpenAI
curl -X POST 'https://:4000/customer/new' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"user_id": "my-customer-id",
"budget_id": "my-free-tier" # 👈 KEY CHANGE
}
from openai import OpenAI
client = OpenAI(
base_url="<your_proxy_base_url>",
api_key="<your_proxy_key>"
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
user="my-customer-id"
)
print(completion.choices[0].message)