Claude Opus 5 vs DeepSeek V4 Pro
Cuál usar y cuándo
Ambos comparten un contexto de 1000000 tokens y pueden desactivar el pensamiento, así que la diferencia está en la modalidad y el tarifario: claude-opus-5 acepta entrada de imagen además de texto y lleva una capacidad de pensamiento explícita, mientras que deepseek-v4-pro es solo texto pero resulta unas 3.8x más barato en entrada ($1.32 frente a $5), unas 6.3x más barato en salida ($3.96 frente a $25) y unas 3.8x más barato en lecturas de caché ($0.132 frente a $0.5). Elige claude-opus-5 cuando haya capturas o diagramas en el prompt; elige deepseek-v4-pro para texto y código en volumen, donde su salida máxima de 393216 tokens también supera el tope de 128000.
Benchmarks
Publicado por los proveedores: Alibaba (Qwen) Anthropic ByteDance DeepSeek Google MiniMax Moonshot OpenAI Tencent Z.ai
Precios
| Claude Opus 5 | DeepSeek V4 Pro | Δ | |
|---|---|---|---|
| Entrada / 1M tokens | $5 | $1.32 | 3.8× |
| Salida / 1M tokens | $25 | $3.96 | 6.3× |
| Lectura de caché / 1M tokens | $0.5 | $0.132 | 3.8× |
| Escritura en caché | 1.25x (5m) / 2x (1h) | sin cargo aparte | - |
Tarifas tomadas del catálogo en vivo al generar el sitio; la página de cada modelo tiene la ficha de precios actualizada.
Dónde queda cada uno: precio de entrada por 1M de tokens entre los 76 modelos de chat que se facturan en esta unidad (escala logarítmica)
Capacidades
| Claude Opus 5 | DeepSeek V4 Pro | |
|---|---|---|
| Uso de herramientas | sí | sí |
| Control del razonamiento | configurable | configurable |
| Salida estructurada | sí | sí |
| Caché de prompts | explícito (tú marcas el prefijo) | implícito (automático) |
| Duración de la caché | 5m default, 1h option | no fixed TTL (evicted when unused) |
| Prefijo mínimo en caché | 1024 tokens | no publicado |
Especificaciones
| Claude Opus 5 | DeepSeek V4 Pro | |
|---|---|---|
| Modalidades de entrada | texto imagen | texto |
| Modalidades de salida | texto | texto |
| Lanzamiento | 2026-07-24 | 2026-04-24 |
| Corte de conocimiento | 2026-05 | - |
| Ventana de contexto | 1M | 1M |
| Salida máxima | 128K | 393K |
| Parámetro de razonamiento |
|
|
| Valores aceptados | thinking.type
effort
| thinking.type
reasoning_effort
|
| Valor por defecto | thinking on effort
| enabled, with reasoning_effort high some complex agent requests are automatically set to max |
Las especificaciones se transcriben de la documentación de cada proveedor; si un proveedor no publica un dato, la fila se omite en vez de deducirlo. Fuentes completas: Claude Opus 5 · DeepSeek V4 Pro
Un mismo prompt en los dos modelos, medido a través de la pasarela
Claude Opus 5 superado · 3 sentences
When reasoning is enabled, the model generates a hidden chain of "thinking" tokens before it writes the visible answer, and those internal tokens are billed at the output rate even though no one ever sees them — commonly 3–10x more tokens than the response itself. Because output tokens are priced several times higher than input tokens, that added volume hits us at our most expensive rate, which is why the bill roughly doubled while our request count stayed flat. The spend is controllable: we can cap the reasoning budget per call, route only genuinely hard requests to reasoning mode and cheaper models for the rest, and track cost per successfully completed task rather than cost per token, since a single correct answer usually beats three cheap retries plus human cleanup.
salida 529 tok latencia 9.0 s
DeepSeek V4 Pro superado · 3 sentences
Enabling reasoning causes the model to generate a lengthy internal chain‑of‑thought before it delivers a visible answer, and we are billed for every one of those hidden reasoning tokens just as we are for the final output. In most interactions, the volume of these unseen tokens at least equals the visible response, effectively doubling the total tokens consumed per query. That doubled token consumption translates directly into a doubled per‑query cost, which is why our overall LLM bill doubled.
salida 641 tok (+545 razonamiento) latencia 11.5 s
Cumplimiento de la instrucción (exactamente tres frases, se pueden contar), adaptación al público (registro de CFO) y la diferencia de facturación por razonamiento oculto que dejan ver los contadores de tokens de abajo.
Claude Opus 5 superado · 8/8 cases
## Fixed version ```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 else: cur = 1 if cur > best: best = cur return best ``` ## The bug The counters were tracking the wrong quantity: `cur` counted *matching adjacent pairs* rather than *elements in the current run*, and both counters started at `0` instead of `1`. Since a run of length *n* contains only *n − 1* adjacent equal pairs, every result came back one too small — `[1, 1]` returned 1, `[3, 3, 3]` returned 2 — and a single-element list returned 0 because the loop body never executed and `best` kept its initial value of `0`. […]
salida 1094 tok latencia 16.1 s
DeepSeek V4 Pro superado · 8/8 cases
```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` **Explanation:** The bug stems from initializing `cur = 0` and only incrementing it when two adjacent elements match, which counts the number of *additional* equal elements rather than the actual run length (which is `cur + 1`). As a result, the returned `best` is always one less than the true longest run—most obviously returning 0 for a single-element list instead of 1. […]
salida 2418 tok (+2131 razonamiento) latencia 35.6 s
Si la corrección funciona de verdad (se puede ejecutar), lo densa que es la explicación y la eficiencia en tokens en una tarea acotada.
Claude Opus 5 superado · 5/5 fields, guidance "Withheld pending Q4 close"
```json { "company": "Meridian Robotics", "quarter": "Q3", "revenue_usd_m": 412, "growth_pct": 11, "guidance": "Withheld pending Q4 close" } ``` Notes on judgment calls: - **quarter**: "September quarter" is labeled Q3 because the text refers to an upcoming "Q4 close," implying a calendar-aligned fiscal year. No fiscal year is given. - **revenue_usd_m**: 412 is stated as constant-currency and hedged ("call it"), so it's approximate; the currency is not explicitly stated as USD. - **growth_pct**: "up eleven and change" means slightly more than 11, so 11 is a floor rather than an exact figure.
salida 539 tok latencia 7.6 s
DeepSeek V4 Pro superado · 5/5 fields, guidance null
{ "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": "eleven and change", "guidance": null }
salida 1204 tok (+1153 razonamiento) latencia 19.9 s
Respeto del esquema (sin campos inventados), tentación de alucinar (la guidance se omite a propósito) y diferencias entre las vías de salida estructurada.
Claude Opus 5 superado · 123 words, 0 banned, 1 question
**Cross-Provider Prompt Caching** We're introducing Cross-Provider Prompt Caching in the API Gateway. Repeated system prompts, long documents, and few-shot examples are stored once at the gateway layer and reused across OpenAI, Anthropic, Google, and self-hosted models. Instead of paying full input token costs on every request, your application sends a cache reference, and the gateway rehydrates the context before forwarding it downstream. Why does that matter? Teams running high-volume agents and retrieval pipelines typically see input token spend fall 40 to 70 percent, with median latency dropping by several hundred milliseconds. Caches are scoped per project, encrypted at rest, and invalidated automatically when a prompt template changes. Enable it with a single header, and see the docs for TTL tuning and per-route controls.
salida 1593 tok latencia 19.1 s
DeepSeek V4 Pro sin respuesta que evaluar · no answer text within 16,384 tokens (all of it went to thinking)
El modelo no devolvió ningún texto de respuesta: todo el presupuesto de tokens se fue en razonamiento oculto.
salida 8193 tok (+8192 razonamiento) latencia 106.2 s
Respeto de las restricciones (límite de palabras, lista de palabras prohibidas, una única pregunta), sello de estilo y control de la longitud.
Cambia de uno a otro con una sola línea
Los dos ids aparecen en todas las pestañas de abajo; lo único que cambia es el par de líneas resaltadas. El endpoint, la clave y la estructura de la solicitud son los mismos.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="claude-opus-5",
# model="deepseek-v4-pro", # descomenta esta línea, comenta la de arriba
messages=[{"role": "user", "content": "Summarize this diff"}],
reasoning_effort="medium",
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "claude-opus-5",
// model: "deepseek-v4-pro", // descomenta esta línea, comenta la de arriba
messages: [{ role: "user", content: "Summarize this diff" }],
reasoning_effort: "medium",
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-5",
# "model": "deepseek-v4-pro", # descomenta esta línea, comenta la de arriba
"messages": [{"role": "user", "content": "Hello"}],
"reasoning_effort": "medium"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "claude-opus-5",
// Model: "deepseek-v4-pro", // descomenta esta línea, comenta la de arriba
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
ReasoningEffort: openai.ReasoningEffortMedium,
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
import com.openai.models.ReasoningEffort;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("claude-opus-5")
// .model("deepseek-v4-pro") // descomenta esta línea, comenta la de arriba
.addUserMessage("Summarize this diff")
.reasoningEffort(ReasoningEffort.MEDIUM)
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));Preguntas frecuentes
¿Cuál es más barato, Claude Opus 5 o DeepSeek V4 Pro?
DeepSeek V4 Pro es más barato en Entrada / 1M tokens ($1.32 frente a $5, una diferencia de 3.8×). En otras filas puede ser al revés: la tabla de arriba recoge todas las tarifas, y el coste real depende de tu combinación de uso.
¿Puedo hacer pruebas A/B de Claude Opus 5 frente a DeepSeek V4 Pro sin dos integraciones?
Sí. Los dos se sirven desde el mismo endpoint compatible con OpenAI y con una sola clave API. Para cambiar de uno a otro basta con tocar una línea, el nombre del modelo, así que puedes mandar una parte del tráfico a cada uno y comparar directamente las facturas.
¿Admiten Claude Opus 5 y DeepSeek V4 Pro caché de prompts?
Sí. Los dos cobran las lecturas de caché por debajo de su tarifa de entrada, así que las cargas de trabajo que reutilizan un prefijo ya cacheado cuestan menos de lo que sugieren los precios de lista. Las tarifas exactas de lectura de caché están en la tabla de precios de arriba.