Zum Hauptinhalt springen

/v1/messages[BETA]

Verwenden Sie LiteLLM, um alle Ihre LLM-APIs im Anthropic v1/messages Format aufzurufen.

Übersicht​

FeatureUnterstĂĽtztNotizen
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​

Beispiel mit LiteLLM Python SDK
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​

Beispiel mit LiteLLM Python SDK
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​

  1. Konfigurieren Sie config.yaml
model_list:
- model_name: anthropic-claude
litellm_params:
model: claude-3-7-sonnet-latest
  1. Proxy starten
litellm --config /path/to/config.yaml
  1. Testen Sie es!
Beispiel mit LiteLLM Proxy Server
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,
)

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.
      Äquivalenzbeispiel
      {"role": "user", "content": "Hello, Claude"}
      entspricht
      {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}

Optionale Felder​

  • metadata (object)
    Enthält zusätzliche Metadaten zur Anfrage (z. B. user_id als 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 als max_tokens).
    • type (enum)
      z.B. "enabled".
  • 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.
  • 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".
  • 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 es null.

  • 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.