DeepSeek-V4-Pro-0813 ist seit dem 12. August 2026 allgemein verfügbar und wird über die immergrüne Modell-ID deepseek-v4-pro auf https://api.deepseek.com bereitgestellt. Daneben gibt es das günstigere deepseek-v4-flash (Unite.AI berichtete über die GA-Ankündigung). Zu den Spezifikationen gehören ein Kontextfenster mit 1M Tokens, maximal 384K Ausgabetokens, Tool-Aufrufe, strukturierte Ausgaben und drei Denkmodi mit einem separaten Feld reasoning_content.
Apidog noch heute ausprobieren
Das Besondere ist die API-Kompatibilität: Dasselbe Modell akzeptiert drei Wire-Formate:
- OpenAI ChatCompletions
- Anthropic Messages
- DeepSeeks Responses API
Sie können daher bestehenden OpenAI-SDK-Code umstellen, Claude-native Agenten weiterverwenden oder zustandsbehaftete Agentenschleifen im Codex-Stil implementieren — ohne das Modell zu wechseln.
Dieser Leitfaden zeigt für jedes Format eine lauffähige Anfrage, die praktischen Unterschiede bei Prompts, Tools und Streaming sowie eine Teststrategie in einem gemeinsamen Apidog-Projekt. Für Kontoeinrichtung und den ersten API-Aufruf lesen Sie zuerst DeepSeek V4 API verwenden.
TL;DR
-
deepseek-v4-proist aufhttps://api.deepseek.comallgemein verfügbar;deepseek-v4-flashunterstützt dieselben Schnittstellen zu einem niedrigeren Preis. - Sie können zwischen OpenAI ChatCompletions, Anthropic Messages und der DeepSeek Responses API wählen.
- Das Modell unterstützt 1M Kontexttokens, maximal 384K Ausgabetokens, Tool-Aufrufe, strukturierte Ausgaben und
reasoning_content. - Preise: $0.435/M Eingabetokens bei Cache-Fehler, $0.003625/M bei Cache-Treffer und $0.87/M Ausgabetokens.
- Die Formate unterscheiden sich bei System-Prompt,
max_tokens, Tool-Schemas und SSE-Streaming. - Mit gemeinsamen Umgebungsvariablen können Sie alle drei Formate in einem Apidog-Projekt vergleichen.
Warum ein Modell drei API-Dialekte unterstützt
Die drei Formate bieten vor allem Ökosystem-Kompatibilität:
- ChatCompletions ist kompatibel mit vielen bestehenden SDKs, Frameworks und internen Bibliotheken.
- Anthropic Messages erlaubt die Weiterverwendung Claude-nativer Tools, Agenten und Evaluierungs-Harnesses.
- Responses API ist für mehrstufige, agentische Workflows mit typisierten Ausgaben und optionalem serverseitigem Zustand ausgelegt.
V4 Pro ist auch über Aggregatoren verfügbar, etwa auf der OpenRouter-Seite für deepseek-v4-pro-0813. Dieser Artikel bezieht sich jedoch auf DeepSeeks First-Party-API. Einen Überblick über die Modellfamilie finden Sie unter DeepSeek V4 verwenden.
Format 1: OpenAI ChatCompletions
Wählen Sie ChatCompletions, wenn Ihr Code bereits das OpenAI-SDK oder OpenAI-kompatible Frameworks verwendet.
Minimalbeispiel mit Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_DEEPSEEK_API_KEY",
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{
"role": "system",
"content": "You are a precise technical writer."
},
{
"role": "user",
"content": "Explain idempotency keys in two sentences."
}
],
)
print(response.choices[0].message.content)
Implementierungsdetails
- Der System-Prompt ist die erste Nachricht mit
role: "system". -
max_tokensist optional. - Tools folgen dem bekannten verschachtelten
function-Schema. - Streaming verwendet
chat.completion.chunk-Deltas und endet mitdata: [DONE]. - Bei aktiviertem Denkmodus kann die Antwort zusätzlich
reasoning_contententhalten.
Ihre Response-Verarbeitung sollte daher nicht nur content lesen:
message = response.choices[0].message
print("Antwort:", message.content)
if getattr(message, "reasoning_content", None):
print("Reasoning:", message.reasoning_content)
Wann dieses Format passt
Verwenden Sie ChatCompletions für:
- bestehende OpenAI-SDK-Integrationen
- LangChain-ähnliche Frameworks
- einfache Chat- oder Completion-Workloads
- Teams, die möglichst wenig Migrationsaufwand möchten
Die Request-Struktur entspricht dem Muster aus ChatGPT API mit Apidog testen: Host und Modell ändern, der Rest bleibt weitgehend gleich.
Format 2: Anthropic Messages
Das Anthropic-Messages-Format ähnelt ChatCompletions, unterscheidet sich aber in drei wichtigen Punkten.
- Der System-Prompt steht als
systemauf oberster Ebene. -
max_tokensist verpflichtend. - Tools werden als flache Objekte mit
input_schemadefiniert.
Minimalbeispiel mit Python
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/anthropic",
)
message = client.messages.create(
model="deepseek-v4-pro",
max_tokens=8192,
system="You are a precise technical writer.",
messages=[
{
"role": "user",
"content": "Explain idempotency keys in two sentences."
}
],
)
print(message.content[0].text)
Prüfen Sie den aktuellen kompatiblen Pfad immer in der DeepSeek API-Dokumentation.
Tool-Schema im Messages-Format
Im Gegensatz zum OpenAI-Format gibt es keinen function-Wrapper:
{
"name": "get_deployment_status",
"description": "Returns the deployment status for an environment.",
"input_schema": {
"type": "object",
"properties": {
"environment": {
"type": "string"
}
},
"required": ["environment"]
}
}
Tool-Aufrufe kommen als tool_use-Content-Block zurück. Tool-Ergebnisse senden Sie als tool_result innerhalb einer User-Nachricht zurück.
Claude-native Agenten umleiten
Wenn ein Agent seine Konfiguration aus Umgebungsvariablen liest, reicht typischerweise diese Anpassung:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=$DEEPSEEK_API_KEY
export ANTHROPIC_MODEL=deepseek-v4-pro
Wann dieses Format passt
Verwenden Sie Messages, wenn Sie bereits mit Claude-kompatiblen Tools arbeiten:
- Claude-native Agenten
- Claude Code
- bestehende Messages-Clients
- Evaluierungs-Harnesses, die Anthropic-Requests erwarten
Wenn Ihr Team bereits Claude-Anfragen verwendet, können Sie DeepSeek im selben Harness testen. Die grundlegende Request-Anatomie entspricht dem Claude Opus 5 API-Leitfaden.
Format 3: DeepSeeks Responses API
Die Responses API richtet sich an Agenten und mehrstufige Workflows. Statt eines klassischen messages-Arrays verwenden Sie instructions und input.
Minimalbeispiel mit cURL
curl https://api.deepseek.com/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-v4-pro",
"instructions": "You are an API review agent. Be terse.",
"input": "Review this OpenAPI diff and list any breaking changes: [diff here]",
"stream": false
}'
Was dieses Format anders macht
1. Optionaler serverseitiger Zustand
Folgeanfragen können eine vorherige Antwort per ID referenzieren, etwa über previous_response_id. Dadurch müssen Sie den gesamten Konversationsverlauf nicht zwingend bei jeder Runde erneut senden.
2. Typisierte Ausgabeelemente
Die Ausgabe ist keine einzelne Nachricht. Sie kann verschiedene Elemente enthalten, beispielsweise:
- Argumentationselemente
- Textausgaben
- Tool-Aufrufe
- Tool-Ergebnisse
Das ist nützlich, wenn Ihr Orchestrator unterschiedliche Elementtypen gezielt verarbeitet.
3. Semantische Streaming-Ereignisse
Statt nur Textdeltas zu senden, nutzt die API benannte Ereignisse wie:
response.output_text.delta
response.completed
Damit kann Ihr Agent auf Status- und Lebenszyklusereignisse reagieren, ohne rohe Chunks selbst interpretieren zu müssen.
Tool-Aufrufe verwenden function_call- und function_call_output-Elemente. Prüfen Sie Details, die über die allgemeine Responses-Spezifikation hinausgehen, in der offiziellen DeepSeek API-Dokumentation.
Wann dieses Format passt
Verwenden Sie die Responses API für:
- mehrstufige Agentenschleifen
- Codex-artige Agenten
- Workflows mit serverseitig referenzierbarem Zustand
- Orchestratoren, die typisierte Antwortobjekte verarbeiten
Für einen einfachen Chat-Endpoint ist ChatCompletions meist die einfachere Wahl.
Die drei Formate im Vergleich
| OpenAI ChatCompletions | Anthropic Messages | DeepSeek Responses API | |
|---|---|---|---|
| Endpunkt |
POST /chat/completions auf api.deepseek.com
|
POST /v1/messages auf der Anthropic-kompatiblen Basis (/anthropic) |
POST /responses auf api.deepseek.com
|
| Anfrageform |
messages-Array, System-Prompt als erste Nachricht |
system auf oberster Ebene plus user-/assistant-Nachrichten |
instructions plus input als String oder Item-Liste |
| Ausgabebegrenzung | Optional |
max_tokens erforderlich |
Optional gemäß Responses-Spezifikation |
| Tool-Definitionen | Verschachteltes function-Objekt mit parameters
|
Flaches Tool mit input_schema
|
Flache Einträge gemäß Responses-Spezifikation |
| Tool-Ergebnisse | role: "tool" |
tool_result-Content-Block |
function_call_output-Element |
| Streaming |
chat.completion.chunk, endet mit [DONE]
|
message_start → content_block_delta → message_stop
|
Semantische Ereignisse wie response.output_text.delta
|
| Konversationszustand | Client-verwaltet | Client-verwaltet | Optional serverseitig über vorherige Antwort-ID |
| Geeignet für | OpenAI-Tools und Frameworks | Claude-native Tools und Agenten | Agentenschleifen und zustandsbehaftete Workflows |
Gleiches Modell und gleiche Preise bedeuten nicht gleiche Request- und Response-Objekte. Testen Sie deshalb die Felder, die Ihre Anwendung tatsächlich verarbeitet.
Alle drei Formate in einem Apidog-Projekt testen
Richten Sie ein Apidog-Projekt ein, um denselben Prompt gegen alle drei Schnittstellen auszuführen.
1. Drei Ordner anlegen
Erstellen Sie jeweils einen Ordner für:
chat-completions/
anthropic-messages/
responses/
Legen Sie pro Ordner gespeicherte Requests für diese Szenarien an:
- einfache Completion
- Tool-Aufruf
- Streaming
2. Gemeinsame Umgebungsvariablen definieren
Verwenden Sie eine gemeinsame Umgebung:
{{DEEPSEEK_API_KEY}}
{{BASE_URL}}
{{ANTHROPIC_BASE}}
{{MODEL}}
Beispielwerte:
BASE_URL=https://api.deepseek.com
ANTHROPIC_BASE=https://api.deepseek.com/anthropic
MODEL=deepseek-v4-pro
Zum Vergleich mit dem günstigeren Modell ändern Sie nur:
MODEL=deepseek-v4-flash
3. Identische Prompts vergleichen
Senden Sie denselben Prompt in allen drei Formaten. Vergleichen Sie anschließend die Rohantworten:
ChatCompletions: choices[0].message.content
Messages: content[0].text oder Content-Block-Liste
Responses: typisierte Output-Elemente
4. Streaming testen
Aktivieren Sie pro Request:
{
"stream": true
}
Vergleichen Sie in der SSE-Ansicht:
- anonyme ChatCompletions-Chunks mit
[DONE] - typisierte Messages-Ereignisse
- Responses-Lebenszyklusereignisse
Falls Sie SSE bisher nicht debuggt haben, lesen Sie API-Antworten mit SSE streamen.
5. Assertions für Ihre Integrationslogik hinzufügen
Prüfen Sie nicht nur HTTP 200. Validieren Sie die Felder, die Ihr Code benötigt:
- Pfad zum Antwortinhalt
- Position und ID eines Tool-Aufrufs
- Abbruchgrund
- Vorhandensein von
reasoning_content - erwartete Streaming-Ereignisse
Führen Sie die Sammlung erneut aus, wenn DeepSeek ein Snapshot-Update veröffentlicht. So wird Ihr API-Projekt gleichzeitig zu einer ausführbaren Dokumentation.
Migrationshinweise
Migration von OpenAI
Ändern Sie zunächst nur diese Werte:
base_url = "https://api.deepseek.com"
api_key = "YOUR_DEEPSEEK_API_KEY"
model = "deepseek-v4-pro"
Ihre Nachrichtenstruktur, Tool-Definitionen und Streaming-Handler können grundsätzlich erhalten bleiben.
Prüfen Sie vor dem Release:
- Werden zusätzliche Parameter wie erwartet verarbeitet?
- Toleriert Ihr Parser
reasoning_contentnebencontent? - Funktionieren Tool-Aufrufe mit Ihren konkreten JSON-Schemas?
- Bestehen Ihre bestehenden Regressionstests?
Migration von Anthropic
Wechseln Sie Basis-URL, Schlüssel und Modell:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=$DEEPSEEK_API_KEY
export ANTHROPIC_MODEL=deepseek-v4-pro
Bei einem spezifikationskonformen Messages-Client sind normalerweise keine größeren Logikänderungen nötig. Prüfen Sie dennoch:
- verpflichtendes
max_tokens - Verarbeitung von Content-Blöcken
- Streaming-Events
- Tool-Schemas mit
input_schema
Migration zur Responses API
Die Responses API ist keine reine Konfigurationsänderung. Sie müssen Ihre Request- und Response-Schicht auf instructions, input und typisierte Ausgabeelemente umstellen.
Setzen Sie sie ein, wenn Sie ihre spezifischen Vorteile benötigen:
- serverseitig referenzierbarer Zustand
- mehrstufige Agenten
- strukturierte Lebenszyklusereignisse
- Verarbeitung unterschiedlicher Output-Typen
FAQ
Welches Format sollte ein neues Projekt verwenden?
Starten Sie mit ChatCompletions, wenn Sie breite Tool-Unterstützung benötigen. Wählen Sie Messages für Claude-native Stacks. Nutzen Sie die Responses API für mehrstufige Agenten mit serverseitig verwaltetem Zustand.
Kann ich Claude Code auf DeepSeek V4 Pro ausrichten?
Ja. Setzen Sie ANTHROPIC_BASE_URL auf den Anthropic-kompatiblen DeepSeek-Endpunkt, verwenden Sie den DeepSeek-Schlüssel als Authentifizierungs-Token und setzen Sie ANTHROPIC_MODEL auf deepseek-v4-pro.
Funktionieren Tool-Aufrufe und strukturierte Ausgaben in allen Formaten?
Das Modell unterstützt beides. Jedes Format verwendet jedoch sein eigenes Schema:
- ChatCompletions: verschachtelte
function-Objekte - Messages: Tools mit
input_schema - Responses API:
function_call- undfunction_call_output-Elemente
Testen Sie Ihre konkreten Schemata und Kantenfälle vor dem Release in einer gemeinsamen Testsammlung.
Top comments (0)