Zum Hauptinhalt springen

Anthropic SDK

Pass-through Endpunkte für Anthropic – rufen Sie einen anbieterspezifischen Endpunkt im nativen Format auf (keine Übersetzung).

FeatureUnterstĂĽtztNotizen
Kostenverfolgungâś…unterstĂĽtzt alle Modelle auf dem /messages Endpunkt
Protokollierungâś…funktioniert ĂĽber alle Integrationen hinweg
Endbenutzerverfolgungâś…Deaktivieren Sie die Prometheus-Verfolgung ĂĽber litellm.disable_end_user_cost_tracking_prometheus_only
Streamingâś…

Ersetzen Sie einfach https://api.anthropic.com durch LITELLM_PROXY_BASE_URL/anthropic

Beispielverwendung​

curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer sk-anything" \
--data '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

UnterstĂĽtzt **ALLE** Anthropic Endpunkte (einschlieĂźlich Streaming).

Alle Anthropic Endpunkte anzeigen

Schnellstart​

Rufen wir den Anthropic /messages Endpunkt auf

  1. FĂĽgen Sie Ihren Anthropic API-SchlĂĽssel zu Ihrer Umgebung hinzu
export ANTHROPIC_API_KEY=""
  1. LiteLLM Proxy starten
litellm

# RUNNING on http://0.0.0.0:4000
  1. Testen Sie es!

Rufen wir den Anthropic /messages Endpunkt auf

curl http://0.0.0.0:4000/anthropic/v1/messages \
--header "x-api-key: $LITELLM_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Beispiele​

Alles nach http://0.0.0.0:4000/anthropic wird als anbieterspezifische Route behandelt und entsprechend verarbeitet.

Wesentliche Änderungen

UrsprĂĽnglicher EndpunktErsetzen Sie durch
https://api.anthropic.comhttp://0.0.0.0:4000/anthropic (LITELLM_PROXY_BASE_URL="http://0.0.0.0:4000")
bearer $ANTHROPIC_API_KEYbearer anything (verwenden Sie bearer LITELLM_VIRTUAL_KEY, wenn virtuelle SchlĂĽssel auf dem Proxy eingerichtet sind)

Beispiel 1: Nachrichten Endpunkt​

LiteLLM Proxy Aufruf​

curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages \
--header "x-api-key: $LITELLM_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Direkter Anthropic API-Aufruf​

curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Beispiel 2: Token-Zählungs-API​

LiteLLM Proxy Aufruf​

curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages/count_tokens \
--header "x-api-key: $LITELLM_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: token-counting-2024-11-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-5-sonnet-20241022",
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Direkter Anthropic API-Aufruf​

curl https://api.anthropic.com/v1/messages/count_tokens \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: token-counting-2024-11-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-5-sonnet-20241022",
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Beispiel 3: Batch-Nachrichten​

LiteLLM Proxy Aufruf​

curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages/batches \
--header "x-api-key: $LITELLM_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: message-batches-2024-09-24" \
--header "content-type: application/json" \
--data \
'{
"requests": [
{
"custom_id": "my-first-request",
"params": {
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}
},
{
"custom_id": "my-second-request",
"params": {
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hi again, friend"}
]
}
}
]
}'

Direkter Anthropic API-Aufruf​

curl https://api.anthropic.com/v1/messages/batches \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: message-batches-2024-09-24" \
--header "content-type: application/json" \
--data \
'{
"requests": [
{
"custom_id": "my-first-request",
"params": {
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}
},
{
"custom_id": "my-second-request",
"params": {
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hi again, friend"}
]
}
}
]
}'

Erweitert​

Voraussetzungen

Verwenden Sie dies, um zu vermeiden, dass Entwickler den rohen Anthropic API-Schlüssel erhalten, ihnen aber trotzdem die Nutzung von Anthropic Endpunkten ermöglichen.

Verwendung mit virtuellen Schlüsseln​

  1. Umgebung einrichten
export DATABASE_URL=""
export LITELLM_MASTER_KEY=""
export COHERE_API_KEY=""
litellm

# RUNNING on http://0.0.0.0:4000
  1. Virtuellen SchlĂĽssel generieren
curl -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-1234ewknldferwedojwojw"
}
  1. Testen Sie es!
curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer sk-1234ewknldferwedojwojw" \
--data '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'

Senden Sie litellm_metadata (Tags, Kostenverfolgung für Endbenutzer)​

curl --request POST \
--url http://0.0.0.0:4000/anthropic/v1/messages \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer sk-anything" \
--data '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
],
"litellm_metadata": {
"tags": ["test-tag-1", "test-tag-2"],
"user": "test-user" # track end-user/customer cost
}
}'