Anleitungen / DeepSeek Files API
DeepSeek Files API (2026): Limits, Uploads und file_id in der Praxis
DeepSeek hat am 21. August 2026 klammheimlich seinen ersten Datei-Endpunkt zusammen mit dem Vision-Modell veröffentlicht – was viele ältere Anleitungen obsolet macht (einige behaupten immer noch, die DeepSeek API hätte „keine Route für Datei-Uploads“). Diese Anleitung enthält die verifizierten Limits, Upload- und Referenzierungsbeispiele in curl und Python sowie Hinweise dazu, wann man Dateien anstelle von base64 verwenden sollte.
Die DeepSeek Files API lädt ein Bild einmal hoch und gibt eine file_id zurück, die Sie im Chat referenzieren.
Upload mit purpose="user_data"; eine Datei darf bis zu 64 MiB groß sein (10-minütiges Upload-Zeitfenster); Speicherplatz beträgt 25 GiB / 10.000 Dateien pro Benutzer; Speicherdauer 1 Stunde–30 Tage oder dauerhaft ohne expires_after.
Referenzieren Sie Dateien in deepseek-v4-flash-vision-exp-Chats über einen {"type":"file","file_id":...}-Block – Bilder per file_id dürfen 64 MiB pro Anfrage groß sein, im Vergleich zu 32 MiB inline. Fügen Sie beim Anthropic-kompatiblen Endpunkt den Header anthropic-beta: files-api-2025-04-14 hinzu.
Limits auf einen Blick
| Limit | Wert (offizielle Dokumentation, 2026-08-21) |
|---|---|
| Formate | JPEG, PNG, GIF, WebP – Erkennung anhand des Dateiinhalts, nicht der Dateiendung |
| Pro Datei | Max. 64 MiB; Upload muss innerhalb von 10 Minuten abgeschlossen sein |
| Pro Benutzer | 25 GiB Speicherplatz; 10.000 gespeicherte Dateien |
| Speicherdauer | 1 Stunde bis 30 Tage oder dauerhaft (expires_after weglassen) |
| Verwendungszweck | Muss user_data sein (einziger unterstützter Zweck, auch für die Listenfilterung) |
| Größe in der Anfrage | file_id-Bild bis zu 64 MiB pro Anfrage; Inline-base64-/URL-Bilder auf 32 MiB begrenzt |
| API-Kompatibilität | OpenAI-kompatibel und Anthropic-kompatibel; Anthropic /messages erfordert den files-api-Beta-Header |
Quelle: offizielle Files API-Anleitung, Stand 2026-08-21.
Einmal hochladen, dauerhaft referenzieren (naja, bis zu 30 Tage)
Einen Screenshot hochladen und eine file_id erhalten:
curl https://api.deepseek.com/files \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-F "purpose=user_data" \
-F "file=@dashboard.png"
Anschließend in einem vision-exp-Chat referenzieren – kein base64-Blob, kein erneutes Hochladen in nachfolgenden Nachrichten:
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 mit dem OpenAI SDK – hochladen, dann chatten:
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)
- Inline-Alternative: Ein Datei-Block kann
file_data(base64) anstelle vonfile_identhalten – sich gegenseitig ausschließende Felder;filenamedarf nur zusammen mit file_data verwendet werden. - Anthropic-kompatibler Stack: Dieselben Datei-Blöcke funktionieren auf /messages mit dem Header
anthropic-beta: files-api-2025-04-14.
Wann man Dateien vs. base64 vs. URL verwendet
| Methode | Maximale Größe | Ideal für |
|---|---|---|
| base64 inline | 32 MiB | Einmalige, im Prozess generierte Bilder; am einfachsten zu implementieren |
| Externe URL | 32 MiB, URL mit 8.192 Zeichen, 60s Abruf | Öffentlich gehostete Bilder; überhaupt kein Upload-Schritt |
| Files API | 64 MiB | Agent-Screenshot-Schleifen, wiederholt referenzierte Bilder, alles zur Wiederverwendung über mehrere Turns |
FAQ
Ich habe gelesen, dass DeepSeek keinen Datei-Endpunkt hat – ist das neu?
Stimmte bis zum 21. August 2026 – ältere Anleitungen mit dem Hinweis „keine /v1/files-Route, Text selbst extrahieren“ waren zu ihrer Zeit zutreffend und sind jetzt veraltet. Die Files API wurde mit dem Vision-Launch veröffentlicht.
Kann ich PDFs oder Dokumente hochladen?
Nein – die Files API akzeptiert derzeit nur Bildformate (JPEG/PNG/GIF/WebP). Rendern Sie bei PDFs die Seiten clientseitig als Bilder und laden Sie diese hoch oder binden Sie sie inline ein.
Wie lange bleiben Dateien gespeichert?
Zwischen 1 Stunde und 30 Tagen über expires_after oder dauerhaft, wenn Sie es weglassen – innerhalb Ihres Kontingents von 25 GiB / 10.000 Dateien.
Funktionieren Dateien mit Modellen ohne Vision?
Datei-Blöcke werden von deepseek-v4-flash-vision-exp verarbeitet; reine V4-Flash/V4-Pro-Modelle bleiben rein textbasiert. Verweisen Sie mit Dateireferenzen nicht auf Textmodelle.