DeepSeek V4.1 Flash
Usa DeepSeek V4.1 Flash con la API oficial de Chat Completions, Responses o Anthropic Messages: contexto de 1M tokens, razonamiento activable o desactivable e imágenes.
DeepSeek V4.1 Flash es el modelo rápido y de bajo costo de DeepSeek (la API de DeepSeek lo llama deepseek-flash). De forma predeterminada piensa antes de responder, y puedes desactivar el razonamiento o fijar su nivel en cada solicitud. Envía la solicitud oficial de DeepSeek a SeedRouter: cambia la URL base y la clave API, mantén el cuerpo.
ID de modelo
| ID de modelo | Ventana de contexto | Salida máxima | Nivel de razonamiento | Predeterminado |
|---|---|---|---|---|
deepseek-v4.1-flash | 1M tokens | 384K tokens (393,216) | none, low, high, max | Razonamiento activado, high |
Entrada: texto e imágenes. Salida: texto. Consulta la página del modelo para ver los precios actuales.
Ejemplo rápido
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Give me three names for a coffee shop."}]
}'Endpoints
| Formato | Método y ruta | Autenticación |
|---|---|---|
| Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> o Authorization: Bearer <key>, más anthropic-version |
Los tres devuelven el formato de respuesta oficial de DeepSeek, con o sin streaming. Mantén la clave API en el código del lado del servidor.
Parámetros
Campos de Chat Completions:
| Nombre | Tipo | Obligatorio | Predeterminado | Notas |
|---|---|---|---|---|
model | string | Sí | — | deepseek-v4.1-flash. |
messages | object[] | Sí | — | Mensajes de texto; imágenes como partes image_url (consulta Entrada de imágenes). |
thinking.type | enum | No | enabled | enabled o disabled. |
reasoning_effort | enum | No | high | none (razonamiento desactivado), low, high o max. minimal se ejecuta como low, y medium y xhigh como high. |
max_tokens | integer | No | 8K, o 64K con razonamiento (128K con el nivel max) | 1–393216. Incluye el razonamiento. |
stop | string or string[] | No | — | Secuencias de parada. |
response_format | object | No | {"type": "text"} | text o json_object. json_schema devuelve 400. |
tools | object[] | No | — | Herramientas de función; se acepta strict. |
tool_choice | string or object | No | none sin herramientas, auto con herramientas | Se aplican auto y none. required y una función con nombre se aceptan, pero no fuerzan una llamada. |
stream | boolean | No | false | Transmite server-sent events. |
stream_options.include_usage | boolean | No | false | Cada chunk lleva usage, con valor null salvo en el último. |
temperature | number | No | 1 | 0–2. Sin efecto en modo de razonamiento. |
top_p | number | No | 1 | 0–1. En modo de razonamiento, los valores inferiores a 0.95 se ejecutan como 0.95; sin razonamiento se mantiene en 1. |
user_id | string | No | — | Identificador de tu usuario final. |
logprobs, top_logprobs | — | No | — | Se aceptan (top_logprobs de 0 a 20), pero no se devuelven probabilidades logarítmicas. |
frequency_penalty, presence_penalty | — | No | — | Obsoletos en DeepSeek: se aceptan, sin efecto. |
Razonamiento y nivel de razonamiento
El razonamiento está activado de forma predeterminada con el nivel high. Desactívalo con "thinking": {"type": "disabled"} o "reasoning_effort": "none"; así la respuesta llega de inmediato y consume menos tokens de salida. max dedica el máximo razonamiento a los problemas difíciles. El razonamiento se devuelve en reasoning_content, junto a content, y se factura como tokens de salida.
Cuando una solicitud incluye tools, devuelve cada mensaje anterior del asistente con su reasoning_content, como exige DeepSeek en las conversaciones con llamadas a herramientas.
Entrada de imágenes
Las imágenes van en el content de un mensaje de usuario como partes image_url, ya sea una URL http(s) pública o una data URI en base64:
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://example.com/chart.png"}},
{"type": "text", "text": "What does this chart show?"}
]}Una URL puede tener como máximo 8192 caracteres y apuntar a una imagen de 32 MiB como máximo. Sustituye la URL de ejemplo por una imagen propia accesible públicamente.
Dimensiones de facturación
Consulta las tarifas actuales en la página del modelo. Una solicitud se factura por los tokens que utiliza:
- tokens de entrada que no están en la caché (
prompt_cache_miss_tokens), - tokens de entrada que están en la caché (
prompt_cache_hit_tokens), - tokens de salida, incluido el razonamiento.
Las tarifas dependen de cuándo se ejecuta la solicitud. Las horas pico son de 01:00 a 04:00 y de 06:00 a 10:00 UTC, de lunes a viernes; todas las demás horas, fines de semana incluidos, son horas valle, a la mitad de las tarifas de horas pico. El cargo se calcula a partir del usage que acompaña a la respuesta finalizada. Una solicitud fallida no se cobra. Los registros de uso de tu cuenta muestran el cargo exacto de cada solicitud.
Salida
Una solicitud de Chat Completions sin streaming devuelve:
{
"id": "bc86988e-...",
"object": "chat.completion",
"created": 1790585983,
"model": "deepseek-v4.1-flash",
"choices": [{
"index": 0,
"finish_reason": "stop",
"logprobs": null,
"message": {"role": "assistant", "reasoning_content": "...", "content": "..."}
}],
"usage": {
"prompt_tokens": 36,
"completion_tokens": 39,
"total_tokens": 75,
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 36,
"prompt_tokens_details": {"cached_tokens": 0},
"completion_tokens_details": {"reasoning_tokens": 0}
}
}Con "stream": true cada chunk lleva un delta con reasoning_content o content, y el último chunk antes de data: [DONE] lleva el uso.
Responses API y Codex
POST /v1/responses acepta el cuerpo de Responses: input, instructions, max_output_tokens, reasoning.effort (como reasoning_effort arriba), text.format (text o json_object; json_schema se acepta, pero no se aplica), tools (function y la herramienta personalizada apply_patch), tool_choice, temperature, top_p, top_logprobs, user y stream. El razonamiento se devuelve como un elemento reasoning con contenido reasoning_text, y un flujo lleva eventos numerados desde response.created hasta response.completed, con el razonamiento en eventos response.reasoning_text.delta. La API no guarda estado: previous_response_id, conversation y las herramientas integradas como web_search se ignoran, así que envía toda la conversación en input.
Para usar DeepSeek V4.1 Flash en Codex, añade un provider a ~/.codex/config.toml y define SEEDROUTER_API_KEY:
model = "deepseek-v4.1-flash"
model_provider = "seedrouter"
show_raw_agent_reasoning = true
[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://api.seedrouter.ai/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"Formato Anthropic Messages
El código escrito para la API de Anthropic Messages también puede llamar a DeepSeek V4.1 Flash: envía el cuerpo de Messages a /v1/messages con "model": "deepseek-v4.1-flash". Se aplican system, max_tokens, tools, tool_choice (auto, none), thinking (enabled, disabled) y temperature (0–2); se aceptan output_config.effort y metadata.user_id; top_k, stop_sequences y tool_choice any no tienen efecto. El razonamiento se devuelve como bloques thinking. Las imágenes se envían como fuentes base64 o url.
Errores
Los errores usan {"error": {"code": ..., "message": "..."}} (el endpoint de Messages usa el formato de error de Anthropic). El code es un código del catálogo de errores común. Las solicitudes fallidas no se facturan.
Consejos
- Desactiva el razonamiento en pasos sencillos y rápidos como clasificación o extracción; mantenlo activado para razonamiento, matemáticas y código.
- Coloca el contexto largo y reutilizado al inicio del prompt: la entrada en caché se factura a una fracción de la tarifa de entrada.
- Ejecuta los trabajos por lotes grandes en horas valle, cuando todas las tarifas cuestan la mitad.
