Text
DeepSeek V4.1 Flash
Appelez DeepSeek V4.1 Flash avec l'API officielle Chat Completions, Responses ou Anthropic Messages : un contexte de 1M tokens, la réflexion activable ou non et l'entrée d'images.
DeepSeek V4.1 Flash est le modèle rapide et économique de DeepSeek (l'API de DeepSeek l'appelle deepseek-flash). Par défaut, il réfléchit avant de répondre, et vous pouvez désactiver la réflexion ou régler son niveau à chaque requête. Envoyez la requête DeepSeek officielle à SeedRouter : changez l'URL de base et la clé API, conservez le corps.
ID de modèle
| ID de modèle | Fenêtre de contexte | Sortie maximale | Niveau de raisonnement | Par défaut |
|---|---|---|---|---|
deepseek-v4.1-flash | 1M tokens | 384K tokens (393,216) | none, low, high, max | Réflexion activée, high |
Entrée : texte et images. Sortie : texte. Consultez la page du modèle pour les tarifs actuels.
Exemple rapide
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."}]
}'Points de terminaison
| Format | Méthode et chemin | Authentification |
|---|---|---|
| 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> ou Authorization: Bearer <key>, plus anthropic-version |
Les trois renvoient le format de réponse officiel de DeepSeek, en streaming ou non. Conservez la clé API dans le code côté serveur.
Paramètres
Champs Chat Completions :
| Nom | Type | Requis | Par défaut | Remarques |
|---|---|---|---|---|
model | string | Oui | — | deepseek-v4.1-flash. |
messages | object[] | Oui | — | Messages texte ; images sous forme de parties image_url (voir Entrée image). |
thinking.type | enum | Non | enabled | enabled ou disabled. |
reasoning_effort | enum | Non | high | none (réflexion désactivée), low, high ou max. minimal s'exécute comme low, medium et xhigh comme high. |
max_tokens | integer | Non | 8K, ou 64K avec la réflexion (128K au niveau max) | 1–393216. Inclut le raisonnement. |
stop | string or string[] | Non | — | Séquences d'arrêt. |
response_format | object | Non | {"type": "text"} | text ou json_object. json_schema renvoie 400. |
tools | object[] | Non | — | Outils de type fonction ; strict est accepté. |
tool_choice | string or object | Non | none sans outils, auto avec outils | auto et none sont appliqués. required et une fonction nommée sont acceptés mais ne forcent pas d'appel. |
stream | boolean | Non | false | Envoie des événements côté serveur (server-sent events). |
stream_options.include_usage | boolean | Non | false | Chaque chunk contient usage, à null sauf sur le dernier. |
temperature | number | Non | 1 | 0–2. Aucun effet en mode réflexion. |
top_p | number | Non | 1 | 0–1. En mode réflexion, les valeurs inférieures à 0.95 s'exécutent comme 0.95 ; sans réflexion, la valeur reste 1. |
user_id | string | Non | — | Identifiant de votre utilisateur final. |
logprobs, top_logprobs | — | Non | — | Acceptés (top_logprobs de 0 à 20), mais aucune probabilité logarithmique n'est renvoyée. |
frequency_penalty, presence_penalty | — | Non | — | Obsolètes chez DeepSeek : acceptés, sans effet. |
Réflexion et niveau de raisonnement
La réflexion est activée par défaut au niveau high. Désactivez-la avec "thinking": {"type": "disabled"} ou "reasoning_effort": "none" ; la réponse arrive alors immédiatement et coûte moins de tokens de sortie. max consacre le plus de raisonnement aux problèmes difficiles. Le raisonnement est renvoyé dans reasoning_content, à côté de content, et facturé comme des tokens de sortie.
Lorsqu'une requête contient tools, renvoyez chaque message assistant précédent avec son reasoning_content, comme DeepSeek l'exige dans les conversations avec appels d'outils.
Entrée image
Les images vont dans le content d'un message utilisateur, en tant que parties image_url, soit une URL http(s) publique, soit une data URI base64 :
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "https://example.com/chart.png"}},
{"type": "text", "text": "What does this chart show?"}
]}Une URL peut compter au plus 8192 caractères et pointer vers une image de 32 MiB au maximum. Remplacez l'URL d'exemple par une image publiquement accessible de votre choix.
Dimensions de facturation
Consultez les tarifs actuels sur la page du modèle. Une requête est facturée en fonction des tokens qu'elle utilise :
- tokens d'entrée absents du cache (
prompt_cache_miss_tokens), - tokens d'entrée trouvés dans le cache (
prompt_cache_hit_tokens), - tokens de sortie, y compris le raisonnement.
Les tarifs dépendent du moment où la requête s'exécute. Les heures pleines vont de 01:00 à 04:00 et de 06:00 à 10:00 UTC, du lundi au vendredi ; toutes les autres heures, week-ends compris, sont des heures creuses, à la moitié des tarifs des heures pleines. Le montant est calculé à partir de l'usage renvoyé avec la réponse terminée. Une requête qui échoue n'est pas facturée. Les enregistrements d'usage de votre compte indiquent le montant exact de chaque requête.
Sortie
Une requête Chat Completions non-streaming renvoie :
{
"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}
}
}Avec "stream": true, chaque chunk contient un delta avec reasoning_content ou content, et le dernier chunk avant data: [DONE] porte l'usage.
API Responses et Codex
POST /v1/responses accepte le corps Responses : input, instructions, max_output_tokens, reasoning.effort (comme reasoning_effort ci-dessus), text.format (text ou json_object ; json_schema est accepté mais non appliqué), tools (function et l'outil personnalisé apply_patch), tool_choice, temperature, top_p, top_logprobs, user et stream. Le raisonnement est renvoyé sous forme d'élément reasoning avec un contenu reasoning_text, et un flux transporte des événements numérotés de response.created à response.completed, avec le raisonnement dans des événements response.reasoning_text.delta. L'API est sans état : previous_response_id, conversation et les outils intégrés comme web_search sont ignorés, envoyez donc toute la conversation dans input.
Pour utiliser DeepSeek V4.1 Flash dans Codex, ajoutez un provider à ~/.codex/config.toml et définissez 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"Format Anthropic Messages
Le code écrit pour l'API Anthropic Messages peut aussi appeler DeepSeek V4.1 Flash : envoyez le corps Messages à /v1/messages avec "model": "deepseek-v4.1-flash". system, max_tokens, tools, tool_choice (auto, none), thinking (enabled, disabled) et temperature (0–2) sont appliqués ; output_config.effort et metadata.user_id sont acceptés ; top_k, stop_sequences et tool_choice any n'ont aucun effet. Le raisonnement est renvoyé sous forme de blocs thinking. Les images sont transmises comme sources base64 ou url.
Erreurs
Les erreurs utilisent {"error": {"code": ..., "message": "..."}} (le point de terminaison Messages utilise le format d'erreur d'Anthropic). Le code est un code du catalogue d'erreurs commun. Les requêtes échouées ne sont pas facturées.
Conseils
- Désactivez la réflexion pour les étapes simples et rapides comme la classification ou l'extraction ; gardez-la pour le raisonnement, les mathématiques et le code.
- Placez le contexte long et réutilisé au début du prompt : l'entrée en cache est facturée à une fraction du tarif d'entrée.
- Exécutez les gros traitements par lots en heures creuses, quand tous les tarifs sont divisés par deux.
Ressources associées
Groupe LLM facultatif
Connectez-vous au Playground de ce modèle pour consulter les groupes disponibles. Les options dépendent des autorisations de votre compte et du modèle sélectionné. Playground utilise votre session de connexion ; vous n’avez pas besoin de fournir de clé API.
Les appels API conservent votre clé API et l’identifiant du modèle. Pour sélectionner un groupe, indiquez son nom exact dans l’en-tête de requête facultatif X-SeedRouter-Group. Remplacez GROUP_NAME ci-dessous par un nom affiché dans Playground. Omettez cet en-tête ou utilisez auto pour conserver le comportement par défaut de la clé.
X-SeedRouter-Group: GROUP_NAMEUne clé API soumise à des restrictions peut donner accès à moins de groupes que Playground. Les requêtes sont facturées selon les tarifs du groupe sélectionné et ne basculent pas vers un autre groupe si celui-ci est indisponible. Cette option prend en charge les appels LLM via HTTP, y compris SSE ; elle ne s’applique pas aux appels WebSocket ni aux appels de génération d’images ou de vidéos.
Pour consulter les groupes disponibles pour une clé API donnée sans générer de réponse du modèle, utilisez cet endpoint en lecture seule. data[].id est la valeur à indiquer dans l’en-tête ; ratio est le multiplicateur de prix du compte pour ce groupe. L’entrée auto correspond à l’estimation actuelle pour la sélection par défaut ; son multiplicateur vaut null lorsqu’aucun groupe par défaut n’est disponible. La disponibilité du groupe est vérifiée à nouveau lors de l’appel au modèle.
curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=deepseek-v4.1-flash" \
-H "Authorization: Bearer YOUR_SEEDROUTER_KEY"