Die vollständige Dokumentation zu den verfügbaren Parametern findest du in der API-Referenz.

Einfache Anfrage und Antwort

JSON
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hallo!"
    }
  ],
  "model": "claude-3-5-sonnet-20240620",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 12,
    "output_tokens": 6
  }
}

Mehrere Gesprächsrunden

Die Messages API ist zustandslos, was bedeutet, dass du immer den vollständigen Gesprächsverlauf an die API sendest. Du kannst dieses Muster verwenden, um ein Gespräch im Laufe der Zeit aufzubauen. Frühere Gesprächsrunden müssen nicht unbedingt von Claude stammen - du kannst auch synthetische assistant-Nachrichten verwenden.

Shell
#!/bin/sh
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-20240620",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Hallo, Claude"},
        {"role": "assistant", "content": "Hallo!"},
        {"role": "user", "content": "Kannst du mir LLMs beschreiben?"}
        
    ]
}'
Python
import anthropic

message = anthropic.Anthropic().messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hallo, Claude"},
        {"role": "assistant", "content": "Hallo!"},
        {"role": "user", "content": "Kannst du mir LLMs beschreiben?"}
    ],
)
print(message)

TypeScript
import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic();

await anthropic.messages.create({
  model: 'claude-3-5-sonnet-20240620',
  max_tokens: 1024,
  messages: [
    {"role": "user", "content": "Hallo, Claude"},
    {"role": "assistant", "content": "Hallo!"},
    {"role": "user", "content": "Kannst du mir LLMs beschreiben?"}
  ]
});
JSON
{
    "id": "msg_018gCsTGsXkYJVqYPxTgDHBU",
    "type": "message",
    "role": "assistant",
    "content": [
        {
            "type": "text",
            "text": "Klar, ich erkläre dir gerne..."
        }
    ],
    "stop_reason": "end_turn",
    "stop_sequence": null,
    "usage": {
      "input_tokens": 30,
      "output_tokens": 309
    }
}

Claude Worte in den Mund legen

Du kannst einen Teil von Claudes Antwort an der letzten Position der Eingabenachrichtenliste vorfüllen. Dies kann verwendet werden, um Claudes Antwort zu formen. Das folgende Beispiel verwendet "max_tokens": 1, um eine einzelne Multiple-Choice-Antwort von Claude zu erhalten.

JSON
{
  "id": "msg_01Q8Faay6S7QPTvEUUQARt7h",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "C"
    }
  ],
  "model": "claude-3-5-sonnet-20240620",
  "stop_reason": "max_tokens",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 42,
    "output_tokens": 1
  }
}

Vision

Claude kann sowohl Text als auch Bilder in Anfragen lesen. Derzeit unterstützen wir den Quelltyp base64 für Bilder und die Medientypen image/jpeg, image/png, image/gif und image/webp. Weitere Details findest du in unserem Vision-Leitfaden.

JSON
{
  "id": "msg_01EcyWo6m4hyW8KHs2y2pei5",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Dieses Bild zeigt eine Ameise, genauer gesagt eine Nahaufnahme einer Ameise. Die Ameise ist detailliert zu sehen, mit ihrem markanten Kopf, den Fühlern und den Beinen. Das Bild konzentriert sich darauf, die komplexen Details und Merkmale der Ameise einzufangen, wahrscheinlich mit einem Makroobjektiv aufgenommen, um eine extreme Nahaufnahme zu erhalten."
    }
  ],
  "model": "claude-3-5-sonnet-20240620",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 1551,
    "output_tokens": 71
  }
}

Werkzeugnutzung und JSON-Modus

Beispiele für die Verwendung von Werkzeugen mit der Messages API findest du in unserem Leitfaden.