Claude Modelle
| Modell | ID | Use Case | Context |
| Opus 4.6 | claude-opus-4-6 | Komplexe Tasks, Extended Reasoning | 200k |
| Sonnet 4.6 | claude-sonnet-4-6 | Balance Speed/Qualität, Agent Loops | 200k |
| Haiku 4.5 | claude-haiku-4-5 | Schnelle, kostengünstige Operationen | 200k |
SDK Installation
# Python
pip install anthropic
# TypeScript / Node.js
npm install @anthropic-ai/sdk
# Weitere: Go, Java, C#, Ruby, PHP verfügbar
Messages API Basics
from anthropic import Anthropic
client = Anthropic(api_key="sk-...")
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
system="You are a helpful assistant",
messages=[
{"role": "user", "content": "Explain quantum computing"}
]
)
print(message.content[0].text)
Streaming
with client.messages.stream(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a poem"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
Tool Use (Function Calling)
tools = [
{
"name": "get_weather",
"description": "Get weather for a location",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"},
"unit": {"enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
]
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "Weather in Paris?"}]
)
# Tool Loop: Check for tool_use blocks
if response.stop_reason == "tool_use":
# Extract tool_use block, execute, send result back
pass
Extended Thinking
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000
},
messages=[{"role": "user", "content": "Solve complex problem..."}]
)
# Thinking + Antwort extrahieren
for block in message.content:
if block.type == "thinking":
print(f"Reasoning: {block.thinking}")
elif block.type == "text":
print(f"Answer: {block.text}")
Prompt Caching
Für wiederholte Requests mit großem Kontext — spart Kosten und Latenz:
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
system=[
{"type": "text", "text": "You are a helpful assistant"},
{
"type": "text",
"text": large_document_content,
"cache_control": {"type": "ephemeral"} # 5 min gültig
}
],
messages=[{"role": "user", "content": "Summarize the document"}]
)
Vision (Bilder analysieren)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": base64_image_data
}
}
]
}]
)
Token Counting & Batch
# Token zählen vor Abfrage
token_count = client.messages.count_tokens(
model="claude-opus-4-6",
messages=[{"role": "user", "content": "How many tokens?"}]
)
print(f"Input tokens: {token_count.input_tokens}")
# Batch Processing (für große Mengen)
batch = client.messages.create_batch(
requests=[
{"custom_id": "q-1", "params": {"model": "claude-opus-4-6", ...}},
{"custom_id": "q-2", "params": {"model": "claude-opus-4-6", ...}},
]
)