Health Checks
Verwenden Sie dies, um alle in Ihrer config.yaml definierten LLMs auf ihre Gesundheit zu überprüfen.
Zusammenfassung
Der Proxy stellt die folgenden Endpunkte bereit:
- einen `/health`-Endpunkt, der den Gesundheitszustand der LLM-APIs zurückgibt.
- einen `/health/readiness`-Endpunkt, der zurückgibt, ob der Proxy bereit ist, Anfragen zu akzeptieren.
- einen `/health/liveliness`-Endpunkt, der zurückgibt, ob der Proxy aktiv ist.
/health
Anfrage
Stellen Sie eine GET-Anfrage an `/health` auf dem Proxy.
Dieser Endpunkt macht einen LLM-API-Aufruf an jedes Modell, um zu prüfen, ob es fehlerfrei funktioniert.
curl --location 'http://0.0.0.0:4000/health' -H "Authorization: Bearer sk-1234"
Sie können auch `litellm -health` ausführen. Dies sendet eine `GET`-Anfrage an `http://0.0.0.0:4000/health` für Sie.
litellm --health
Antwort
{
"healthy_endpoints": [
{
"model": "azure/gpt-35-turbo",
"api_base": "https://my-endpoint-canada-berri992.openai.azure.com/"
},
{
"model": "azure/gpt-35-turbo",
"api_base": "https://my-endpoint-europe-berri-992.openai.azure.com/"
}
],
"unhealthy_endpoints": [
{
"model": "azure/gpt-35-turbo",
"api_base": "https://openai-france-1234.openai.azure.com/"
}
]
}
Embedding Modelle
Um Gesundheitsprüfungen für Einbettungsmodelle durchzuführen, setzen Sie den Modus in Ihrer Konfiguration für das entsprechende Modell auf "embedding".
model_list:
- model_name: azure-embedding-model
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:
mode: embedding # 👈 ADD THIS
Modelle zur Bildgenerierung
Um Gesundheitsprüfungen für Bildgenerierungsmodelle durchzuführen, setzen Sie den Modus in Ihrer Konfiguration für das entsprechende Modell auf "image_generation".
model_list:
- model_name: dall-e-3
litellm_params:
model: azure/dall-e-3
api_base: os.environ/AZURE_API_BASE
api_key: os.environ/AZURE_API_KEY
api_version: "2023-07-01-preview"
model_info:
mode: image_generation # 👈 ADD THIS
Modelle für Textvervollständigung
Um Gesundheitsprüfungen für `/completions` durchzuführen, setzen Sie den Modus in Ihrer Konfiguration für das entsprechende Modell auf "completion".
model_list:
- model_name: azure-text-completion
litellm_params:
model: azure/text-davinci-003
api_base: os.environ/AZURE_API_BASE
api_key: os.environ/AZURE_API_KEY
api_version: "2023-07-01-preview"
model_info:
mode: completion # 👈 ADD THIS
Sprache-zu-Text-Modelle
model_list:
- model_name: whisper
litellm_params:
model: whisper-1
api_key: os.environ/OPENAI_API_KEY
model_info:
mode: audio_transcription
Text-zu-Sprache-Modelle
# OpenAI Text to Speech Models
- model_name: tts
litellm_params:
model: openai/tts-1
api_key: "os.environ/OPENAI_API_KEY"
model_info:
mode: audio_speech
Rerank-Modelle
Um Gesundheitsprüfungen für Reranking durchzuführen, setzen Sie den Modus in Ihrer Konfiguration für das entsprechende Modell auf "rerank".
model_list:
- model_name: rerank-english-v3.0
litellm_params:
model: cohere/rerank-english-v3.0
api_key: os.environ/COHERE_API_KEY
model_info:
mode: rerank
Batch-Modelle (nur Azure)
Für Azure-Modelle, die als 'batch'-Modelle bereitgestellt werden, setzen Sie mode: batch.
model_list:
- model_name: "batch-gpt-4o-mini"
litellm_params:
model: "azure/batch-gpt-4o-mini"
api_key: os.environ/AZURE_API_KEY
api_base: os.environ/AZURE_API_BASE
model_info:
mode: batch
Erwartete Antwort
{
"healthy_endpoints": [
{
"api_base": "https://...",
"model": "azure/gpt-4o-mini",
"x-ms-region": "East US"
}
],
"unhealthy_endpoints": [],
"healthy_count": 1,
"unhealthy_count": 0
}
Echtzeitmodelle
Um Echtzeit-Gesundheitsprüfungen durchzuführen, setzen Sie den Modus in Ihrer Konfiguration für das entsprechende Modell auf "realtime".
model_list:
- model_name: openai/gpt-4o-realtime-audio
litellm_params:
model: openai/gpt-4o-realtime-audio
api_key: os.environ/OPENAI_API_KEY
model_info:
mode: realtime
Wildcard-Routen
Für Wildcard-Routen können Sie in Ihrer config.yaml ein health_check_model angeben. Dieses Modell wird für Gesundheitsprüfungen für diese Wildcard-Route verwendet.
In diesem Beispiel wird bei einer Gesundheitsprüfung für openai/* ein /chat/completions-Aufruf an openai/gpt-4o-mini durchgeführt.
model_list:
- model_name: openai/*
litellm_params:
model: openai/*
api_key: os.environ/OPENAI_API_KEY
model_info:
health_check_model: openai/gpt-4o-mini
- model_name: anthropic/*
litellm_params:
model: anthropic/*
api_key: os.environ/ANTHROPIC_API_KEY
model_info:
health_check_model: anthropic/claude-3-5-sonnet-20240620
Hintergrund-Gesundheitsprüfungen
Sie können Modell-Gesundheitsprüfungen im Hintergrund aktivieren, um zu verhindern, dass jedes Modell zu häufig über `/health` abgefragt wird.
Dies führt einen LLM-API-Aufruf an jedes Modell durch, um zu prüfen, ob es fehlerfrei funktioniert.
Hier erfahren Sie, wie Sie es verwenden:
- Fügen Sie in der config.yaml Folgendes hinzu:
general_settings:
background_health_checks: True # enable background health checks
health_check_interval: 300 # frequency of background health checks
- Server starten
$ litellm /path/to/config.yaml
- Gesundheitsendpunkt abfragen
curl --location 'http://0.0.0.0:4000/health'
Details ausblenden
Die Antwort der Gesundheitsprüfung enthält Details wie Endpunkt-URLs, Fehlermeldungen und andere LiteLLM-Parameter. Dies ist zwar für das Debugging nützlich, kann aber problematisch sein, wenn der Proxy-Server einem breiten Publikum zugänglich gemacht wird.
Sie können diese Details ausblenden, indem Sie die Einstellung health_check_details auf False setzen.
general_settings:
health_check_details: False
Timeout für Gesundheitsprüfung
Das Timeout für Gesundheitsprüfungen ist in litellm/constants.py festgelegt und beträgt standardmäßig 60 Sekunden.
Dies kann in der config.yaml überschrieben werden, indem health_check_timeout im Abschnitt model_info gesetzt wird.
model_list:
- model_name: openai/gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
model_info:
health_check_timeout: 10 # 👈 OVERRIDE HEALTH CHECK TIMEOUT
/health/readiness
Unprotected Endpoint zur Überprüfung, ob der Proxy bereit ist, Anfragen zu akzeptieren.
Beispielanfrage
curl http://0.0.0.0:4000/health/readiness
Beispielantwort
{
"status": "connected",
"db": "connected",
"cache": null,
"litellm_version": "1.40.21",
"success_callbacks": [
"langfuse",
"_PROXY_track_cost_callback",
"response_taking_too_long_callback",
"_PROXY_MaxParallelRequestsHandler",
"_PROXY_MaxBudgetLimiter",
"_PROXY_CacheControlCheck",
"ServiceLogging"
],
"last_updated": "2024-07-10T18:59:10.616968"
}
Wenn der Proxy nicht mit einer Datenbank verbunden ist, wird im Feld `"db"` `"Not connected"` anstelle von `"connected"` angezeigt und das Feld `"last_updated"` fehlt.
/health/liveliness
Unprotected Endpoint zur Überprüfung, ob der Proxy aktiv ist.
Beispielanfrage
curl -X 'GET' \
'http://0.0.0.0:4000/health/liveliness' \
-H 'accept: application/json'
Beispielantwort
"I'm alive!"
/health/services
Verwenden Sie diesen Admin-only Endpunkt, um zu prüfen, ob ein verbundener Dienst (Datadog/Slack/Langfuse/etc.) fehlerfrei funktioniert.
curl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234'
Erweitert - Spezifische Modelle aufrufen
So rufen Sie die Gesundheitsprüfung spezifischer Modelle auf:
1. Modell-ID über /model/info abrufen
curl -X GET 'http://0.0.0.0:4000/v1/model/info' \
--header 'Authorization: Bearer sk-1234' \
Erwartete Antwort
{
"model_name": "bedrock-anthropic-claude-3",
"litellm_params": {
"model": "anthropic.claude-3-sonnet-20240229-v1:0"
},
"model_info": {
"id": "634b87c444..", # 👈 UNIQUE MODEL ID
}
2. Spezifisches Modell über /chat/completions aufrufen
curl -X POST 'https://:4000/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk-1234' \
-D '{
"model": "634b87c444.." # 👈 UNIQUE MODEL ID
"messages": [
{
"role": "user",
"content": "ping"
}
],
}
'