Team-/Schlüsselbasierte Protokollierung
Ermöglicht jedem Schlüssel/Team, ein eigenes Langfuse-Projekt / eigene benutzerdefinierte Rückruffunktionen zu verwenden
Dies ermöglicht Ihnen Folgendes
Team 1 -> Logs to Langfuse Project 1
Team 2 -> Logs to Langfuse Project 2
Team 3 -> Disabled Logging (for GDPR compliance)
Team-basiertes Logging
Team-Logging über config.yaml einstellen
Logging und Caching für eine bestimmte Team-ID aktivieren/deaktivieren.
Beispiel
Diese Konfiguration würde Langfuse-Logs basierend auf der Team-ID an 2 verschiedene Langfuse-Projekte senden.
litellm_settings:
default_team_settings:
- team_id: "dbe2f686-a686-4896-864a-4c3924458709"
success_callback: ["langfuse"]
langfuse_public_key: os.environ/LANGFUSE_PUB_KEY_1 # Project 1
langfuse_secret: os.environ/LANGFUSE_PRIVATE_KEY_1 # Project 1
- team_id: "06ed1e01-3fa7-4b9e-95bc-f2e59b74f3a8"
success_callback: ["langfuse"]
langfuse_public_key: os.environ/LANGFUSE_PUB_KEY_2 # Project 2
langfuse_secret: os.environ/LANGFUSE_SECRET_2 # Project 2
Wenn Sie nun Schlüssel generieren für diese Team-ID
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{"team_id": "06ed1e01-3fa7-4b9e-95bc-f2e59b74f3a8"}'
Alle Anfragen mit diesen Schlüsseln protokollieren Daten in ihr team-spezifisches Logging. -->
[BETA]Team-Logging per API
✨ Dies ist eine reine Enterprise-Funktion Starten Sie hier mit Enterprise
Rückruffunktionen pro Team festlegen
1. Rückruffunktion für Team festlegen
Wir machen eine Anfrage an POST /team/{team_id}/callback, um eine Rückruffunktion für hinzuzufügen
curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-d '{
"callback_name": "langfuse",
"callback_type": "success",
"callback_vars": {
"langfuse_public_key": "pk",
"langfuse_secret_key": "sk_",
"langfuse_host": "https://cloud.langfuse.com"
}
}'
Unterstützte Werte
| Feld | Unterstützte Werte | Notizen |
|---|---|---|
callback_name | "langfuse", "gcs_bucket" | Aktuell werden nur "langfuse" und "gcs_bucket" unterstützt. |
callback_type | "success", "failure", "success_and_failure" | |
callback_vars | dict von Callback-Einstellungen | |
langfuse_public_key | string | Erforderlich für Langfuse |
langfuse_secret_key | string | Erforderlich für Langfuse |
langfuse_host | string | Optional für Langfuse (Standard ist https://cloud.langfuse.com) |
gcs_bucket_name | string | Erforderlich für GCS Bucket. Name Ihres GCS Buckets |
gcs_path_service_account | string | Erforderlich für GCS Bucket. Pfad zu Ihrem Service-Konto-JSON |
2. Schlüssel für Team erstellen
Alle für Team dbe2f686-a686-4896-864a-4c3924458709 erstellten Schlüssel werden im Langfuse-Projekt protokolliert, das in Schritt 1. Rückruffunktion für Team festlegen angegeben ist.
curl --location 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{
"team_id": "dbe2f686-a686-4896-864a-4c3924458709"
}'
3. /chat/completion-Anfrage für Team stellen
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-KbUuE0WNptC0jXapyMmLBA" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Hello, Claude gm!"}
]
}'
Erwarten Sie, dass dies im Langfuse-Projekt protokolliert wird, das in Schritt 1. Rückruffunktion für Team festlegen angegeben ist.
Logging für ein Team deaktivieren
Um das Logging für ein bestimmtes Team zu deaktivieren, können Sie den folgenden Endpunkt verwenden
POST /team/{team_id}/disable_logging
Dieser Endpunkt entfernt alle Erfolgs- und Fehlerrückruffunktionen für das angegebene Team und deaktiviert effektiv das Logging.
Schritt 1. Logging für Team deaktivieren
curl -X POST 'https://:4000/team/YOUR_TEAM_ID/disable_logging' \
-H 'Authorization: Bearer YOUR_API_KEY'
Ersetzen Sie YOUR_TEAM_ID durch die tatsächliche Team-ID.
Antwort Eine erfolgreiche Anfrage gibt eine ähnliche Antwort zurück wie diese
{
"status": "success",
"message": "Logging disabled for team YOUR_TEAM_ID",
"data": {
"team_id": "YOUR_TEAM_ID",
"success_callbacks": [],
"failure_callbacks": []
}
}
Schritt 2. Testen - /chat/completions
Verwenden Sie einen für das Team generierten Schlüssel = team_id. Sie sollten keine Logs in Ihrer konfigurierten Erfolgsrückruffunktion (z.B. Langfuse) sehen.
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-KbUuE0WNptC0jXapyMmLBA" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Hello, Claude gm!"}
]
}'
Fehlerbehebung / Troubleshooting
- Überprüfen Sie aktive Rückruffunktionen für das Team mit
GET /team/{team_id}/callback
Verwenden Sie dies, um zu überprüfen, welche Erfolgs-/Fehlerrückruffunktionen für Team=team_id aktiv sind.
curl -X GET 'https://:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' \
-H 'Authorization: Bearer sk-1234'
Team-Logging-Endpunkte
POST /team/{team_id}/callbackFügt einem Team eine Erfolgs-/Fehlerrückruffunktion hinzuGET /team/{team_id}/callback- Ruft die Erfolgs-/Fehlerrückruffunktionen und Variablen für ein Team ab
[BETA]Schlüsselbasiertes Logging
Verwenden Sie die Endpunkte /key/generate oder /key/update, um Logging-Rückruffunktionen zu einem bestimmten Schlüssel hinzuzufügen.
✨ Dies ist eine reine Enterprise-Funktion Starten Sie hier mit Enterprise
So funktioniert schlüsselbasiertes Logging:
- Wenn **für den Schlüssel keine Rückruffunktionen** konfiguriert sind, werden die in der Datei config.yaml angegebenen Standardrückruffunktionen verwendet.
- Wenn **für den Schlüssel Rückruffunktionen** konfiguriert sind, werden die im Schlüssel angegebenen Rückruffunktionen verwendet.
- Langfuse
- GCS Bucket
- Langsmith
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "langfuse", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"langfuse_public_key": "os.environ/LANGFUSE_PUBLIC_KEY", # [RECOMMENDED] reference key in proxy environment
"langfuse_secret_key": "os.environ/LANGFUSE_SECRET_KEY", # [RECOMMENDED] reference key in proxy environment
"langfuse_host": "https://cloud.langfuse.com"
}
}]
}
}'
Virtuellen Schlüssel zum Protokollieren in einen bestimmten GCS Bucket erstellen
Setzen Sie
GCS_SERVICE_ACCOUNTin Ihrer Umgebung auf den Pfad der Service-Konto-JSON.export GCS_SERVICE_ACCOUNT=/path/to/service-account.json # GCS_SERVICE_ACCOUNT=/Users/ishaanjaffer/Downloads/adroit-crow-413218-a956eef1a2a8.jsoncurl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "gcs_bucket", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"gcs_bucket_name": "my-gcs-bucket", # Name of your GCS Bucket to log to
"gcs_path_service_account": "os.environ/GCS_SERVICE_ACCOUNT" # environ variable for this service account
}
}]
}
}'Testen -
/chat/completionsAnfrageVerwenden Sie den virtuellen Schlüssel aus Schritt 3, um eine
/chat/completions-Anfrage zu stellen.Bei einer erfolgreichen Anfrage sollten Sie Ihre Logs im GCS Bucket sehen.
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-Fxq5XSyWKeXDKfPdqXZhPg" \
-d '{
"model": "fake-openai-endpoint",
"messages": [
{"role": "user", "content": "Hello, Claude"}
],
"user": "hello",
}'
Virtuellen Schlüssel zum Protokollieren in ein bestimmtes Langsmith-Projekt erstellen
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "langsmith", # "otel", "gcs_bucket"
"callback_type": "success", # "success", "failure", "success_and_failure"
"callback_vars": {
"langsmith_api_key": "os.environ/LANGSMITH_API_KEY", # API Key for Langsmith logging
"langsmith_project": "pr-brief-resemblance-72", # project name on langsmith
"langsmith_base_url": "https://api.smith.langchain.com"
}
}]
}
}'Testen -
/chat/completionsAnfrageVerwenden Sie den virtuellen Schlüssel aus Schritt 3, um eine
/chat/completions-Anfrage zu stellen.Bei einer erfolgreichen Anfrage sollten Sie Ihre Logs in Ihrem Langsmith-Projekt sehen.
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-Fxq5XSyWKeXDKfPdqXZhPg" \
-d '{
"model": "fake-openai-endpoint",
"messages": [
{"role": "user", "content": "Hello, Claude"}
],
"user": "hello",
}'
Helfen Sie uns, dieses Feature zu verbessern, indem Sie hier ein Ticket einreichen
Überprüfen, ob Schlüsselrückruffunktionen korrekt konfiguriert sind /key/health
Rufen Sie /key/health mit dem Schlüssel auf, um zu überprüfen, ob die Rückruffunktionseinstellungen korrekt konfiguriert sind.
Übergeben Sie den Schlüssel im Anfrage-Header.
curl -X POST "https://:4000/key/health" \
-H "Authorization: Bearer <your-key>" \
-H "Content-Type: application/json"
- Antwort bei korrekt konfigurierter Schlüssel
- Antwort bei falsch konfigurierter Schlüssel
Antwort bei korrekt eingerichteten Logging-Rückruffunktionen
Ein Schlüssel ist **gesund**, wenn die Logging-Rückruffunktionen korrekt eingerichtet sind.
{
"key": "healthy",
"logging_callbacks": {
"callbacks": [
"gcs_bucket"
],
"status": "healthy",
"details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']"
}
}
Antwort bei nicht korrekt eingerichteten Logging-Rückruffunktionen
Ein Schlüssel ist **ungesund**, wenn die Logging-Rückruffunktionen nicht korrekt eingerichtet sind.
{
"key": "unhealthy",
"logging_callbacks": {
"callbacks": [
"gcs_bucket"
],
"status": "unhealthy",
"details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information."
}
}
Nachrichtenverschleierung deaktivieren/aktivieren
Verwenden Sie dies, um die Prompt-Protokollierung für bestimmte Schlüssel zu aktivieren, wenn Sie sie global deaktiviert haben.
Beispiel config.yaml mit global deaktivierter Prompt-Protokollierung (Nachrichtenverschleierung)
model_list:
- model_name: gpt-4o
litellm_params:
model: gpt-4o
litellm_settings:
callbacks: ["datadog"]
turn_off_message_logging: True # 👈 Globally logging prompt / response is disabled
Prompt-Protokollierung für Schlüssel aktivieren
Setzen Sie turn_off_message_logging auf false für den Schlüssel, für den Sie die Prompt-Protokollierung aktivieren möchten. Dies überschreibt die globale Einstellung turn_off_message_logging.
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"metadata": {
"logging": [{
"callback_name": "datadog",
"callback_vars": {
"turn_off_message_logging": false # 👈 Enable prompt logging
}
}]
}
}'
Antwort von /key/generate
{
"key_alias": null,
"key": "sk-9v6I-jf9-eYtg_PwM8OKgQ",
"metadata": {
"logging": [
{
"callback_name": "datadog",
"callback_vars": {
"turn_off_message_logging": false
}
}
]
},
"token_id": "a53a33db8c3cf832ceb28565dbb034f19f0acd69ee7f03b7bf6752f9f804081e"
}
Schlüssel für /chat/completions-Anfrage verwenden
Dieser Schlüssel wird den Prompt an die in der Anfrage angegebene Rückruffunktion protokollieren.
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-9v6I-jf9-eYtg_PwM8OKgQ" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "hi my name is ishaan what key alias is this"}
]
}'