ChinaModelAPI

Guides / DeepSeek Files API

Guide · vérifié le 2026-08-21 sur api-docs.deepseek.com

DeepSeek Files API (2026) : limites, téléversements et file_id en pratique

DeepSeek a discrètement lancé son premier endpoint de fichiers le 21 août 2026, en parallèle de son modèle de vision — ce qui rend de nombreux anciens guides obsolètes (plusieurs affirment encore que l'API de DeepSeek n'a « aucun endpoint de téléversement de fichiers »). Ce guide détaille les limites vérifiées, des exemples de téléversement et de référence en curl et Python, et quand utiliser des fichiers plutôt que du base64.

Réponse directe

L'API DeepSeek Files téléverse une image une seule fois et renvoie un file_id à référencer dans le chat. Téléversez avec purpose="user_data" ; un fichier peut atteindre 64 MiB (fenêtre de téléversement de 10 minutes) ; le stockage est de 25 GiB / 10 000 fichiers par utilisateur ; rétention de 1 heure à 30 jours, ou permanente sans expires_after. Référencez les fichiers dans les conversations deepseek-v4-flash-vision-exp via un bloc {"type":"file","file_id":...} — les images par file_id peuvent atteindre 64 MiB par requête, contre 32 MiB en inline. Depuis l'endpoint compatible Anthropic, ajoutez l'en-tête anthropic-beta: files-api-2025-04-14.

Aperçu des limites

LimiteValeur (documentation officielle, 2026-08-21)
FormatsJPEG, PNG, GIF, WebP — détectés par le contenu du fichier, non par l'extension
Par fichierMax. 64 MiB ; le téléversement doit se terminer dans les 10 minutes
Par utilisateur25 GiB de stockage ; 10 000 fichiers stockés
RétentionDe 1 heure à 30 jours, ou permanent (omettre expires_after)
UsageDoit être user_data (seul purpose pris en charge, également pour le filtrage de liste)
Taille dans la requêteImage par file_id jusqu'à 64 MiB par requête ; images inline base64/URL limitées à 32 MiB
Compatibilité APICompatible OpenAI et compatible Anthropic ; Anthropic /messages nécessite l'en-tête bêta files-api

Source : guide officiel de la Files API, consulté le 2026-08-21.

Téléversez une fois, référencez indéfiniment (enfin, jusqu'à 30 jours)

Téléversez une capture d'écran et obtenez un file_id :

curl https://api.deepseek.com/files \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -F "purpose=user_data" \
  -F "file=@dashboard.png"

Référencez-le ensuite dans un chat vision-exp — aucun blob base64, aucun re-téléversement lors des tours suivants :

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -d '{
    "model": "deepseek-v4-flash-vision-exp",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Which metric regressed in this dashboard?"},
        {"type": "file", "file_id": "file-api-xxxx"}
      ]
    }]
  }'

Python avec le SDK OpenAI — téléversement, puis chat :

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.deepseek.com")

f = client.files.create(file=open("dashboard.png", "rb"), purpose="user_data")

resp = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Which metric regressed?"},
            {"type": "file", "file_id": f.id},
        ],
    }],
)
print(resp.choices[0].message.content)
  • Alternative inline : un bloc de fichier peut contenir file_data (base64) au lieu de file_id — champs mutuellement exclusifs ; filename ne peut accompagner que file_data.
  • Stack de type Anthropic : les mêmes blocs de fichiers fonctionnent sur /messages avec l'en-tête anthropic-beta: files-api-2025-04-14.

Quand utiliser les fichiers, base64 ou URL

MéthodeTaille max.Idéal pour
base64 en ligne32 MiBImages ponctuelles générées à la volée ; le plus simple à coder
URL externe32 MiB, URL de 8 192 caractères, récupération en 60sImages hébergées publiquement ; aucune étape de téléversement
Files API64 MiBBoucles de captures d'écran d'agents, images de référence répétées, tout élément réutilisé au fil des échanges

FAQ

J'ai lu que DeepSeek n'avait pas d'endpoint de fichiers — est-ce nouveau ?

Exact jusqu'au 21 août 2026 — les anciens guides indiquant « pas de route /v1/files, extrayez le texte vous-même » étaient corrects à l'époque et sont désormais obsolètes. La Files API a été lancée avec le modèle de vision.

Puis-je téléverser des PDF ou des documents ?

Non — la Files API n'accepte actuellement que les formats d'image (JPEG/PNG/GIF/WebP). Pour les PDF, convertissez les pages en images côté appelant, puis téléversez-les ou intégrez-les en inline.

Combien de temps les fichiers sont-ils conservés ?

Entre 1 heure et 30 jours via expires_after, ou de manière permanente si vous l'omettez — dans la limite de votre quota de 25 GiB / 10 000 fichiers.

Les fichiers fonctionnent-ils avec les modèles non-vision ?

Les blocs de fichiers sont exploités par deepseek-v4-flash-vision-exp ; les modèles V4-Flash/V4-Pro standards restent exclusivement textuels. N'envoyez pas de références de fichiers à des modèles de texte.

Sur le même sujet