DeepSeek-V4.1-Flash Vision API: Wie man Bilder an DeepSeeks natives multimodales Modell sendet

Senden Sie Bilder an DeepSeek-V4.1-Flash über die deepseek-flash ID, die Formate Base64, URL und Datei-ID, das Detailfeld, Bildpreise und eine Apidog-Testschleife.

Ashley Innocent

Ashley Innocent

10 September 2026

DeepSeek-V4.1-Flash Vision API: Wie man Bilder an DeepSeeks natives multimodales Modell sendet

Apidog für Unternehmen

On-Premises Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Die Visionsunterstützung von DeepSeek hörte am 10. September 2026 auf, ein Nebenprojekt zu sein. Mit der GA-Veröffentlichung von DeepSeek-V4.1-Flash ist die Bildeingabe im Hauptmodell hinter einer ID, deepseek-flash, untergebracht. Es gibt keinen separaten Vision-Build und kein „Exp“-Suffix. Die Versionshinweise setzen sowohl deepseek-v4-flash als auch deepseek-v4-flash-vision-exp außer Betrieb; Anfragen an einen der Namen landen nun auf V4.1-Flash.

Das ist wichtig, wenn Sie vor drei Wochen auf dem experimentellen Endpunkt aufgebaut haben. Das Anfrageformat, das Sie für V4-Flash-Vision-Exp geschrieben haben, funktioniert weiterhin, aber das Modell, das Ihre Bilder liest, ist neu: 763B Parameter, mit einem Vision-Encoder, der von Grund auf zusammen mit dem Text-Backbone trainiert wurde. Dieser Leitfaden behandelt, was „native multimodal“ in der Praxis bedeutet, die drei Arten, ein Bild zu liefern, den detail-Parameter, was Bilder kosten und wie man einen wiederholbaren Vision-Test in Apidog erstellt, der beweist, dass der alte und der neue Name sich auf die gleiche Weise verhalten.

TL;DR

Was „native multimodal“ hier bedeutet

Vision-Exp fügte einem fertigen Textmodell einen Bild-Encoder hinzu. V4.1-Flash macht es umgekehrt. Laut der Modellkarte waren Bilder von Anfang an Teil des 45T-Token-Vortrainingskorpus, und der Encoder ist ein neues DeepSeek-ViT, das von Grund auf neu trainiert wurde, anstatt von einem bestehenden Vision-Modell übernommen zu werden. Das Rückgrat ist eine 552B-Parameter-Mischung aus Experten; mit dem angeschlossenen Encoder erreicht die Summe 763B. Nur 8B Parameter sind während des Prefill und 16B während des Decodes aktiv, wodurch ein so großes Modell immer noch mit Flash-Geschwindigkeit und Flash-Preisen läuft. V4-Flash, das reine Textmodell im V4-Flash API-Leitfaden, war die Basis, die Vision-Exp erweiterte.

DeepSeek berichtet diese vier Vision-Scores in der Modellkarte. Es handelt sich um die eigenen Messungen des Anbieters, behandeln Sie sie also als Behauptungen, bis Sie Ihre eigenen Dokumente durch die API geschickt haben.

Benchmark Was es misst V4.1-Flash
MMMU-Pro Fragen auf College-Niveau, die sowohl das Bild als auch den Text zur Beantwortung benötigen 56.5
CVBench Zählen, Tiefensortierung und räumliche Beziehungen in natürlichen Fotos 77.9
DocVQA Fragebeantwortung über gescannte Dokumente und Formulare 95.6
RefCOCO Auffinden des Objekts, auf das sich eine Phrase in einem Bild bezieht 86.0

Für API-Benutzer sind DocVQA und RefCOCO die Zeilen, die man beachten sollte. Dokumenten-QA ist der Wert hinter der Rechnungs- und Formularerkennung. RefCOCO ist die Verankerung (Grounding): Wenn man „den Senden-Button unter dem E-Mail-Feld“ angibt, kann das Modell ihn finden? Diese Fähigkeit verwandelt Screenshots in Agentenaktionen. Die Architekturübersicht behandelt die Textseite und den technischen Bericht ausführlicher.

Das Anfrageformat: drei Wege zur Bildübermittlung

Am Wire-Format hat sich nichts geändert. Rufen Sie den Chat Completions-Endpunkt unter https://api.deepseek.com mit dem OpenAI SDK auf, legen Sie Text- und Bildteile in dasselbe content-Array und setzen Sie das Modell auf deepseek-flash. Hier ist ein vollständiger Aufruf, der eine Rechnung in JSON umwandelt:

import base64, json
from openai import OpenAI

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

with open("invoice-2026-0912.png", "rb") as f:
    image_b64 = base64.b64encode(f.read()).decode()

schema_hint = (
    "Return only JSON with keys: invoice_number (string), issue_date (YYYY-MM-DD), "
    "vendor (string), currency (string), line_items (array of {description, quantity, "
    "unit_price, amount}), subtotal, tax, total (numbers)."
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": schema_hint},
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/png;base64,{image_b64}",
                    "detail": "high",
                },
            },
        ],
    }],
    temperature=1.0,
    max_tokens=2048,
)

invoice = json.loads(response.choices[0].message.content)
print(invoice["invoice_number"], invoice["total"])
print(response.usage.prompt_tokens, "prompt tokens")

Das ist Option eins, base64 inline: eigenständig, auf 32 MiB pro Bild begrenzt und richtig für einmalige Aufrufe oder Dateien, die Ihr Netzwerk nie verlassen.

Option zwei ist eine externe URL. Wenn das Bild bereits einen öffentlichen Link auf einem CDN oder in einem Objektspeicher hat, überspringen Sie die Kodierung und übergeben Sie den Link (bis zu 8.192 Zeichen). Diese Curl-Anfrage liest ein gehostetes Preisdiagramm:

curl https://api.deepseek.com/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-flash",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "List every plan name and its monthly price from this chart as a JSON array."},
        {"type": "image_url", "image_url": {"url": "https://assets.example-saas.com/pricing/plans-q3.png", "detail": "auto"}}
      ]
    }]
  }'

Option drei ist eine Datei-ID. Laden Sie das Bild einmal über die DeepSeek Files API hoch und verweisen Sie dann mit einem file-Teil darauf, anstatt die Bytes erneut zu senden:

{"type": "file", "file": {"file_id": "file-api-xxxxxxxxxxxxxxxx"}}

Wählen Sie Datei-IDs, wann immer dasselbe Bild in mehr als einer Anfrage erscheint, z. B. ein Referenz-Screenshot, mit dem jeder Test in einer Suite verglichen wird. Die vollständige Parameterbeschreibung finden Sie im V4.1-Flash API-Leitfaden.

Der Detail-Parameter und Anfragelimits

detail ist optional und befindet sich im image_url-Objekt. Die drei von Vision-Exp übernommenen Werte:

Die Grenzen, auf die Sie zuerst stoßen werden:

Einschränkung Wert
Inline base64 Bild bis zu 32 MiB
Länge der externen URL bis zu 8.192 Zeichen
Dateireferenz unterstützt durch die Files API
Kontextfenster 1 Million Tokens
Maximale Ausgabe 384K Tokens
detail-Werte low, high/original, auto

Der Vision-Exp-Leitfaden listete weitere Obergrenzen für die Bildanzahl, die Body-Größe und die Pixelabmessungen auf. Diese wurden für das experimentelle Modell veröffentlicht; überprüfen Sie den API-Änderungsprotokoll, bevor Sie sich für V4.1-Flash auf sie verlassen. Eine Regel hat sich nicht geändert: Bilder gehören in Benutzernachrichten. Legen Sie eines in eine System- oder Assistentennachricht, und Sie erhalten einen 400er-Fehler.

Was Bilder auf deepseek-flash kosten

Es gibt keinen separaten Vision-Preis. Bilder werden als Eingabe-Tokens zum Flash-Tarif von der Preisseite abgerechnet, gültig ab dem 10. September 2026 um 04:00 UTC:

deepseek-flash, pro 1 Million Tokens Außerhalb der Spitzenzeiten Spitzenzeiten
Eingabe, Cache-Treffer 0,003 $ 0,006 $
Eingabe, Cache-Fehlzugriff 0,15 $ 0,30 $
Ausgabe 0,60 $ 1,20 $

Spitzenzeiten sind Montag bis Freitag, 01:00 bis 04:00 und 06:00 bis 10:00 UTC; außerhalb der Spitzenzeiten ist der Preis halbiert. Bei Vision-Exp wurde jedes Bild mit nicht mehr als 384 Eingabe-Tokens abgerechnet. Ob diese Obergrenze unverändert auf V4.1-Flash übertragen wird, ist [ÜBERPRÜFEN] anhand der Dokumentation. usage.prompt_tokens jeder Antwort meldet die tatsächliche Anzahl, weshalb das Python-Beispiel sie ausgibt.

Wenn die 384-Token-Obergrenze Bestand hat, kostet ein Bild bei Spitzen-Cache-Fehlzugriffsraten etwa 0,000115 $ und die Hälfte davon außerhalb der Spitzenzeiten, sodass tausend Rechnungen ungefähr 0,12 $ an Bildeingaben kosten. Die Ausgabe dominiert jede echte Pipeline: 400 Tokens JSON pro Rechnung kosten in Spitzenzeiten etwa viermal mehr als das Bild selbst. Der Hebel ist ein straffes Antwortschema, nicht die Bildverkleinerung. Die Berechnung für Spitzen-, Nebenzeiten- und Cache-Treffer wird in DeepSeek-V4.1-Flash Preisgestaltung erklärt durchgearbeitet; die Kurzversion ist, dass Cache-Fehlzugriff-Eingaben 32 % billiger sind als das, was Vision-Exp im August berechnet hat.

Drei Anwendungsfälle, die einen Piloten wert sind

Testen des Vision-Endpunkts in Apidog

Vision-Anfragen sind mühsam manuell zu iterieren: Ein base64-Blob macht den JSON-Body unlesbar, und der Vergleich von detail-Einstellungen bedeutet, nahezu identische Payloads jonglieren zu müssen. Hier ist eine Schleife, die lesbar bleibt und mit einem Klick neu ausgeführt wird.

  1. Eine Umgebung einrichten. Erstellen Sie Variablen für base_url, api_key, model (deepseek-flash) und detail (high). Das spätere Ändern des Detailgrads ist eine Änderung in einem Dropdown-Menü, keine Bearbeitung der Payload.
  2. Das Bild in einem Pre-Request-Skript kodieren. Anstatt base64 in den Body einzufügen, lassen Sie ein Pre-Request-Skript die Beispieldatei kodieren und das Ergebnis in eine image_b64-Variable schreiben. Der sichtbare Body bleibt wenige Zeilen lang, und das Austauschen des Testbildes bedeutet, nur einen Pfad zu ändern.
  3. Den Request-Body mit Variablen speichern. Verwenden Sie "model": "{{model}}", "detail": "{{detail}}" und "url": "data:image/png;base64,{{image_b64}}". Speichern Sie es als Testfall, damit es wiederverwendbar ist.
  4. Die JSON-Struktur überprüfen (Assert). Überprüfen Sie, dass die Antwort als JSON geparst wird, invoice_number ein nicht-leerer String ist, line_items ein nicht-leeres Array ist, total eine Zahl ist und usage.prompt_tokens unter einem von Ihnen gewählten Schwellenwert liegt. Das verwandelt „sieht gut aus“ in ein Bestanden/Nicht bestanden.
  5. Bestätigen, dass der alte Name auf dasselbe Modell weiterleitet. Duplizieren Sie die gespeicherte Anfrage, setzen Sie model auf deepseek-v4-flash-vision-exp und führen Sie beide in einem Testszenario mit demselben Bild aus. Vergleichen Sie die extrahierten Felder und die Anzahl der usage.prompt_tokens. Übereinstimmende Ergebnisse bestätigen die Aussage in den Versionshinweisen: Beide Namen landen auf V4.1-Flash, sodass Sie Ihre Konfiguration mit Zuversicht umbenennen können.
  6. Führen Sie es in CI aus. Führen Sie das Szenario mit apidog-cli bei jeder Prompt-Änderung aus, damit eine Schema-Regression vor der Produktion erkannt wird.

Laden Sie Apidog herunter, und die Einrichtung dauert etwa fünfzehn Minuten. Apidog testet die API-Schicht, nicht den Modell-Host, sodass dasselbe Szenario für jeden OpenAI-kompatiblen Endpunkt funktioniert, den Sie später verwenden.

Was das für Sie bedeutet

Der experimentelle Endpunkt hat das Anfrageformat und den Preispunkt bewiesen. V4.1-Flash behält beides bei und tauscht ein Modell ein, das Bilder von seinem ersten Trainings-Token an gesehen hat. Richten Sie Ihren Client auf deepseek-flash aus, halten Sie detail in einer Variablen, überprüfen Sie das zurückgegebene JSON und führen Sie den alten Namen einmal durch dasselbe Apidog-Szenario aus, um die Weiterleitung zu bestätigen. Danach bleibt nur noch die Frage der Genauigkeit bei Ihren eigenen Dokumenten, und Sie haben nun einen Test, der diese beantwortet.

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen