/v1/messages[BETA]
Verwenden Sie LiteLLM, um alle Ihre LLM-APIs im Anthropic v1/messages Format aufzurufen.
Übersicht​
| Feature | UnterstĂĽtzt | Notizen |
|---|---|---|
| Kostenverfolgung | âś… | |
| Protokollierung | âś… | funktioniert ĂĽber alle Integrationen hinweg |
| Endbenutzerverfolgung | âś… | |
| Streaming | âś… | |
| Fallbacks | âś… | zwischen Anthropic-Modellen |
| Lastverteilung | âś… | zwischen Anthropic-Modellen |
| UnterstĂĽtzte LLM-Anbieter | - anthropic- bedrock (nur Anthropic-Modelle) |
Geplante Verbesserung
- Vertex AI Anthropic-UnterstĂĽtzung
Verwendung​
LiteLLM Python SDK​
Beispiel für Nicht-Streaming​
import litellm
response = await litellm.anthropic.messages.acreate(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
api_key=api_key,
model="anthropic/claude-3-haiku-20240307",
max_tokens=100,
)
Beispielantwort
{
"content": [
{
"text": "Hi! this is a very short joke",
"type": "text"
}
],
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"model": "claude-3-7-sonnet-20250219",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"input_tokens": 2095,
"output_tokens": 503,
"cache_creation_input_tokens": 2095,
"cache_read_input_tokens": 0
}
}
Streaming-Beispiel​
import litellm
response = await litellm.anthropic.messages.acreate(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
api_key=api_key,
model="anthropic/claude-3-haiku-20240307",
max_tokens=100,
stream=True,
)
async for chunk in response:
print(chunk)
LiteLLM Proxy Server​
- Konfigurieren Sie config.yaml
model_list:
- model_name: anthropic-claude
litellm_params:
model: claude-3-7-sonnet-latest
- Proxy starten
litellm --config /path/to/config.yaml
- Testen Sie es!
- Anthropic Python SDK
- curl
import anthropic
# point anthropic sdk to litellm proxy
client = anthropic.Anthropic(
base_url="http://0.0.0.0:4000",
api_key="sk-1234",
)
response = client.messages.create(
messages=[{"role": "user", "content": "Hello, can you tell me a short joke?"}],
model="anthropic-claude",
max_tokens=100,
)
curl -L -X POST 'http://0.0.0.0:4000/v1/messages' \
-H 'content-type: application/json' \
-H 'x-api-key: $LITELLM_API_KEY' \
-H 'anthropic-version: 2023-06-01' \
-d '{
"model": "anthropic-claude",
"messages": [
{
"role": "user",
"content": "Hello, can you tell me a short joke?"
}
],
"max_tokens": 100
}'
Anforderungsformat​
Der Anforderungskörper wird im Anthropic-Nachrichten-API-Format vorliegen. litellm folgt der Anthropic-Nachrichtenspezifikation für diesen Endpunkt.
Beispiel für einen Anforderungskörper​
{
"model": "claude-3-7-sonnet-20250219",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
Erforderliche Felder​
- model (string)
Die Modellkennung (z. B."claude-3-7-sonnet-20250219"). - max_tokens (integer)
Die maximale Anzahl von Tokens, die vor dem Stoppen generiert werden sollen.
Hinweis: Das Modell kann anhalten, bevor dieses Limit erreicht wird; der Wert muss größer als 1 sein. - messages (array of objects)
Eine geordnete Liste von Gesprächsrunden.
Jedes Nachrichtenobjekt muss enthalten- role (enum:
"user"oder"assistant")
Gibt den Sprecher der Nachricht an. - content (string oder array von Inhaltsblöcken)
Der Text oder die Inhaltsblöcke (z. B. ein Array mit Objekten vom Typ"text"), die die Nachricht bilden.
Äquivalenzbeispielentspricht{"role": "user", "content": "Hello, Claude"}{"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}
- role (enum:
Optionale Felder​
- metadata (object)
Enthält zusätzliche Metadaten zur Anfrage (z. B.user_idals undurchsichtige Kennung). - stop_sequences (array of strings)
Benutzerdefinierte Sequenzen, die, wenn sie im generierten Text vorkommen, das Modell zum Stoppen bringen. - stream (boolean)
Gibt an, ob die Antwort ĂĽber Server-Sent Events gestreamt werden soll. - system (string oder array)
Ein System-Prompt, der dem Modell Kontext oder spezifische Anweisungen gibt. - temperature (number)
Steuert die Zufälligkeit der Antworten des Modells. Gültiger Bereich:0 < temperature < 1. - thinking (object)
Konfiguration zur Aktivierung von erweitertem Denken. Wenn aktiviert, enthält es- budget_tokens (integer)
Mindestens 1024 Tokens (und weniger alsmax_tokens). - type (enum)
z.B."enabled".
- budget_tokens (integer)
- tool_choice (object)
Gibt an, wie das Modell die bereitgestellten Werkzeuge verwenden soll. - tools (array of objects)
Definitionen für Werkzeuge, die dem Modell zur Verfügung stehen. Jedes Werkzeug enthält- name (string)
Der Name des Werkzeugs. - description (string)
Eine detaillierte Beschreibung des Werkzeugs. - input_schema (object)
Ein JSON-Schema, das das erwartete Eingabeformat fĂĽr das Werkzeug beschreibt.
- name (string)
- top_k (integer)
Beschränkt die Stichprobenauswahl auf die Top-K-Optionen. - top_p (number)
Aktiviert die Nucleus-Sampling mit einem kumulativen Wahrscheinlichkeits-Cutoff. GĂĽltiger Bereich:0 < top_p < 1.
Antwortformat​
Antworten werden im Anthropic-Nachrichten-API-Format vorliegen.
Beispielantwort​
{
"content": [
{
"text": "Hi! My name is Claude.",
"type": "text"
}
],
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"model": "claude-3-7-sonnet-20250219",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"input_tokens": 2095,
"output_tokens": 503,
"cache_creation_input_tokens": 2095,
"cache_read_input_tokens": 0
}
}
Antwortfelder​
content (array of objects)
Enthält die vom Modell generierten Inhaltsblöcke. Jeder Block enthält- type (string)
Gibt den Typ des Inhalts an (z. B."text","tool_use","thinking"oder"redacted_thinking"). - text (string)
Der vom Modell generierte Text.
Hinweis: Die maximale Länge beträgt 5.000.000 Zeichen. - citations (array of objects oder
null)
Optionales Feld, das Zitatdetails liefert. Jedes Zitat enthält- cited_text (string)
Der zitierte Auszug. - document_index (integer)
Ein Index, der auf das zitierte Dokument verweist. - document_title (string oder
null)
Der Titel des zitierten Dokuments. - start_char_index (integer)
Der Startzeichenindex fĂĽr das Zitat. - end_char_index (integer)
Der Endzeichenindex fĂĽr das Zitat. - type (string)
Typischerweise"char_location".
- cited_text (string)
- type (string)
id (string)
Eine eindeutige Kennung fĂĽr die Antwortnachricht.
Hinweis: Das Format und die Länge von IDs können sich im Laufe der Zeit ändern.model (string)
Gibt das Modell an, das die Antwort generiert hat.role (string)
Gibt die Rolle der generierten Nachricht an. Bei Antworten ist dies immer"assistant".stop_reason (string)
Erklärt, warum das Modell mit der Textgenerierung aufgehört hat. Mögliche Werte sind:"end_turn": Das Modell hat einen natürlichen Stopppunkt erreicht."max_tokens": Die Generierung wurde beendet, da das maximale Token-Limit erreicht wurde."stop_sequence": Eine benutzerdefinierte Stoppsequenz wurde gefunden."tool_use": Das Modell hat ein oder mehrere Werkzeuge aufgerufen.
stop_sequence (string oder
null)
Enthält die spezifische Stoppsequenz, die den Abbruch der Generierung verursacht hat, falls zutreffend; andernfalls ist esnull.type (string)
Bezeichnet den Typ des Antwortobjekts, der immer"message"ist.usage (object)
Liefert Details zur Token-Nutzung fĂĽr Abrechnungs- und Ratenbegrenzungszwecke. Dies beinhaltet- input_tokens (integer)
Gesamtzahl der verarbeiteten Eingabe-Tokens. - output_tokens (integer)
Gesamtzahl der generierten Ausgabe-Tokens. - cache_creation_input_tokens (integer oder
null)
Anzahl der Tokens, die zur Erstellung eines Cache-Eintrags verwendet wurden. - cache_read_input_tokens (integer oder
null)
Anzahl der aus dem Cache gelesenen Tokens.
- input_tokens (integer)