DeepSeek Vision: Screenshot-Daten prüfbar extrahieren
MidassAI Team · 12. Oktober 2026 · 7 min read

Eine Screenshot-Extraktion ist erst abgeschlossen, wenn jemand die zurückgegebenen Felder zum Bild zurückverfolgen kann. Eine sauber formatierte Antwort zu erhalten ist nur der erste Teil. Die schwierigen Fälle sind eine unleserliche Ziffer, ein Wert, der der falschen Zeile zugeordnet wurde, oder eine fehlende Einheit, die das Modell aus dem Kontext ergänzt. Bauen Sie den Workflow um genau diese Fälle herum, bevor Sie eine große Sammlung von Bildern senden.
Der Vision-Leitfaden von DeepSeek, geprüft am 12. Oktober 2026, dokumentiert die Bild-und-Text-Eingabe für deepseek-flash. Das Änderungsprotokoll vom 10. September ordnet diesen Namen V4.1 Flash zu. Dies ist eine praktische Oktober-Anleitung zur dokumentierten API, keine Ankündigung eines neuen Oktober-Modells. Das folgende Beispiel ist eine Implementierungsvorlage; es ist weder ein aufgezeichneter Inferenzlauf noch ein OCR-Genauigkeits-Benchmark.
Bereiten Sie einen Screenshot mit klarer Abgrenzung vor
Wählen Sie eine Aufgabe mit einer kleinen, expliziten Ausgabe. Extrahieren Sie zum Beispiel aus einem einzigen Bestandsbereich den sichtbaren Status, den Artikelnamen und die angezeigte Menge. Beginnen Sie nicht mit „verstehe dieses Dashboard“, denn damit überlassen Sie dem Modell die Entscheidung, welche Teile wichtig sind und welche Schlussfolgerungen zu ziehen sind.
Erfassen Sie genügend Kontext, um Spaltenüberschriften und Einheiten zu erhalten. Ein enger Ausschnitt, der nur Zahlen zeigt, kann genau die Informationen entfernen, die zu ihrer Interpretation nötig sind. Wenn das Original sehr hoch oder dicht ist, teilen Sie es in benannte Bereiche auf und behalten Sie eine Kopie des Gesamtbilds zur Orientierung. Geben Sie jedem Bereich vor den Anfragen eine stabile Kennung wie panel-A oder panel-B.
Prüfen Sie die Eingabe in normaler Lesegröße. Wenn Sie eine Ziffer im Screenshot nicht unterscheiden können, wird die Bitte um eine sicherere Antwort die fehlenden Pixel nicht wiederherstellen. Erfassen Sie die Quelle nach Möglichkeit in einem brauchbaren Maßstab neu. Vermeiden Sie wiederholtes Skalieren und Komprimieren, das kleinen Text schwerer lesbar macht.
Verwenden Sie für das folgende Beispiel eine PNG-Datei. Der offizielle Leitfaden unterstützt außerdem JPEG, GIF und WebP und erkennt die Formate am Dateiinhalt. Das Umbenennen einer Datei konvertiert sie nicht. Prüfen Sie die Datei, die Sie tatsächlich senden, statt sich nur auf ihre Endung zu verlassen.
Definieren Sie, was das Modell offenlassen darf
Legen Sie die Felder fest, bevor Sie die Anfrage formulieren. Für einen Bestandsbereich könnte ein sinnvoller Datensatz die Bereichskennung, den sichtbaren Artikelnamen, die angezeigte Menge, die angezeigte Einheit, den Status und einen Hinweis auf Unklarheiten enthalten. Behalten Sie die Originalformulierung bei, wenn es darauf ankommt; normalisieren Sie sie in einem späteren Schritt.
Machen Sie unbekannte Werte explizit. Eine leere Zelle, ein durch ein Overlay verdeckter Text und ein unleserliches Zeichen sind unterschiedliche Beobachtungen. Sie sollten nicht alle als Zahl 0 behandelt werden. Wenn Ihr nachgelagertes System eine Zahl benötigt, halten Sie den Datensatz zur Überprüfung zurück, statt eine Zahl zu erfinden, um sein Schema zu erfüllen.
Eine eigene Beispielanweisung für einen Screenshot, den Sie bereitstellen:
Lesen Sie nur die Bestandstabelle in panel-A. Geben Sie für jede sichtbare Zeile den Artikelnamen, den Mengentext, die Einheit und den Status genau wie angezeigt zurück. Verwenden Sie null für ein Feld, das Sie nicht lesen können, und erklären Sie in einer Anmerkung, warum. Leiten Sie keine verdeckten Zeilen ab, vervollständigen Sie keine abgeschnittenen Namen und berechnen Sie keine Summen. Fügen Sie eine kurze Ortsbeschreibung hinzu, damit ich jede Zeile im Bild wiederfinde.
Die Ortsbeschreibung ist eine Hilfe für die Überprüfung, kein präziser Begrenzungsrahmen. Wenn Ihre Anwendung Koordinaten benötigt, definieren und validieren Sie diese Anforderung separat. Betrachten Sie eine plausible Ortsangabe nicht als Beweis dafür, dass der extrahierte Wert korrekt ist.
Senden Sie das Bild im richtigen Inhaltsblock
Die dokumentierte Chat-Completions-Schnittstelle platziert Text- und Bildblöcke im Content-Array der User-Nachricht. Ein lokales Bild kann als Data-URL kodiert werden. Installieren Sie für die folgende Python-Vorlage den OpenAI-kompatiblen Python-Client, setzen Sie DEEPSEEK_API_KEY in Ihrer lokalen Umgebung und legen Sie eine echte PNG-Datei unter screenshot.png ab. Halten Sie den Schlüssel aus Quelldateien und Browsercode fern.
import base64
import os
from pathlib import Path
from openai import OpenAI
image = Path("screenshot.png").read_bytes()
if not image.startswith(b"\x89PNG\r\n\x1a\n"):
raise ValueError("Use a PNG image for this example")
encoded = base64.b64encode(image).decode("ascii")
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
result = client.chat.completions.create(
model="deepseek-flash",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": (
"Read the inventory table in panel-A. Return each visible "
"row's item name, quantity text, unit, status, and location. "
"Use null for unreadable fields and add a note explaining "
"the ambiguity. Do not infer hidden rows or calculate totals."
)},
{"type": "image_url", "image_url": {
"url": "data:image/png;base64," + encoded,
"detail": "original",
}},
],
}],
)
print(result.choices[0].message.content)Diese Vorlage gibt den zurückgegebenen Inhalt zur Kontrolle aus; sie erzwingt weder ein maschinenlesbares Schema noch validiert sie das Ergebnis. Ergänzen Sie diese Schritte, bevor Sie sie an einen automatisierten Import anschließen. Die API-Anfrage verursacht Nutzungskosten entsprechend Ihrem Konto und den aktuellen Preisen des Anbieters.
Der Leitfaden beschreibt öffentliche Bild-URLs und Files-API-Referenzen als weitere Eingabeoptionen. Wählen Sie den Transportweg passend zu Ihrer Arbeitslast: Ein lokales Beispiel ist inline praktisch, während sich bei wiederholter Verwendung desselben Bildes eine Dateireferenz anbieten kann. Prüfen Sie die aktuell dokumentierten Größenlimits, bevor Sie hochskalieren, da die Base64-Kodierung den Request-Body ebenfalls vergrößert.
Das Beispiel verwendet die dokumentierte Detail-Einstellung original. Das garantiert keine pixelgenaue Lesung: Der Leitfaden beschreibt separat eine Bildvorverarbeitung. Die Einstellung low skaliert auf 512 × 512 herunter – ein dichter Screenshot verdient daher besondere Sorgfalt, bevor Sie Details zugunsten der Effizienz reduzieren.
Prüfen Sie die Extraktion, bevor Sie etwas berechnen
Öffnen Sie die Eingabe neben der Antwort und prüfen Sie eine zurückgegebene Zeile nach der anderen. Vergleichen Sie Text, Zeilenzuordnung und Einheit. Eine Menge kann korrekt transkribiert, aber dem Nachbarprodukt zugeordnet sein; eine reine Rechtschreibprüfung wird das nicht erkennen.
Beginnen Sie mit einer kleinen Stichprobe, der gewöhnliche Zeilen, fehlende Werte, einen abgeschnittenen Namen und ein mehrdeutiges Zeichen enthält. Dies sind vorgeschlagene Testfälle. Halten Sie Ihre eigenen verifizierten Antworten fest und notieren Sie, ob jeder Fehler aus dem Eingabebild, aus der Extraktion oder aus der Art stammte, wie Ihre Anwendung die Antwort interpretiert hat.
Berechnen Sie Summen erst, nachdem Sie die Einzelwerte akzeptiert haben. Wenn das Bild sowohl eine Zwischensumme als auch eine Gesamtsumme enthält, bewahren Sie deren Bezeichnungen, statt anhand der Position zu wählen. Halten Sie Einheiten und Dezimalkonventionen explizit fest, wenn Sie Text in Zahlen umwandeln. Ein Komma kann in verschiedenen Quelldokumenten unterschiedliche Bedeutungen haben.
Bewahren Sie für eine wiederholbare Verarbeitung die Eingabekennung, den Bereichsnamen, die Prompt-Version, das angefragte Modell und die Rohantwort zu jedem geprüften Datensatz auf. So bleibt eine spätere Korrektur möglich, ohne raten zu müssen, welcher Screenshot den Wert erzeugt hat.
Trennen Sie Transportfehler von Lesefehlern
Wenn die Anfrage fehlschlägt, prüfen Sie Authentifizierung, Eingabeformat, Nachrichtenstruktur und die aktuellen Größenlimits, bevor Sie die Extraktionsanweisung ändern. In diesem Chat-Completions-Beispiel gehört das Bild in eine User-Nachricht und verwendet einen image_url-Block. Setzen Sie dafür nicht die input_image-Form der Responses API ein.
Wenn die Anfrage erfolgreich ist, aber ein Wert falsch ist, untersuchen Sie den Ausschnitt und die Aufgabendefinition. Versuchen Sie es mit einem klareren Bereich, dessen Überschriften erhalten bleiben. Bleibt ein Feld unleserlich, lassen Sie es unbekannt und leiten Sie es zur Überprüfung weiter. Wiederholtes Anfragen einer eindeutigen Antwort für dasselbe Bild kann eine andere Vermutung liefern, ohne bessere Belege zu liefern.
Für Projekte, die ältere Modellnamen migrieren, nutzen Sie den separaten Leitfaden zur DeepSeek-API-Migration. Der hier beschriebene Extraktionsworkflow setzt den dokumentierten aktuellen Namen voraus und konzentriert sich darauf, die Daten zu validieren – nicht nur eine erfolgreiche Antwort zu erhalten. Veröffentlichen oder importieren Sie das Ergebnis erst, wenn die erforderlichen Felder anhand ihrer Quelle geprüft werden können.