MidassAI

DeepSeek Vision : données de captures d'écran vérifiables

MidassAI Team · 12 octobre 2026 · 7 min read

Start Creating
Illustration conceptuelle : un panneau de champs, une loupe et trois fiches de données sur un bureau bleu.

Une tâche d'extraction à partir d'une capture d'écran est terminée lorsqu'on peut relier chaque champ renvoyé à l'image. Obtenir une réponse bien mise en forme n'est que la première étape. Les cas difficiles sont un chiffre illisible, une valeur rattachée à la mauvaise ligne ou une unité manquante que le modèle déduit du contexte. Construisez le flux de travail autour de ces cas avant d'envoyer un grand lot d'images.

Le guide Vision de DeepSeek, consulté le 12 octobre 2026, documente la saisie d'images et de texte pour deepseek-flash. Le journal des modifications du 10 septembre fait correspondre ce nom à V4.1 Flash. Il s'agit d'un guide pratique d'octobre sur l'API documentée, et non de l'annonce d'un nouveau modèle en octobre. L'exemple ci-dessous est un gabarit d'implémentation ; ce n'est ni une exécution d'inférence enregistrée ni un banc d'essai de précision OCR.

Préparer une capture d'écran avec un périmètre clair

Choisissez une tâche au résultat restreint et explicite. Par exemple, extrayez le statut visible, le nom de l'article et la quantité affichée d'un seul panneau d'inventaire. Ne commencez pas par « comprends ce tableau de bord », ce qui laisserait le modèle décider quelles parties comptent et quelles conclusions tirer.

Capturez suffisamment de contexte pour conserver les en-têtes de colonnes et les unités. Un recadrage serré sur les seuls chiffres peut supprimer les informations nécessaires à leur interprétation. Si l'original est haut ou dense, divisez-le en régions nommées et conservez une copie de l'image complète pour vous repérer. Attribuez à chaque région un identifiant stable comme panel-A ou panel-B avant de faire vos requêtes.

Examinez l'entrée à taille de lecture normale. Si vous ne parvenez pas à distinguer un chiffre sur la capture, demander une réponse plus assurée ne restaurera pas les pixels manquants. Refaites la capture à une échelle utile lorsque c'est possible. Évitez les redimensionnements et compressions répétés qui rendent le petit texte plus difficile à lire.

Utilisez un PNG pour l'exemple ci-dessous. Le guide officiel prend aussi en charge JPEG, GIF et WebP, et identifie les formats d'après le contenu du fichier. Renommer un fichier ne le convertit pas. Vérifiez le fichier que vous envoyez réellement au lieu de vous fier à sa seule extension.

Définir ce que le modèle peut laisser inconnu

Spécifiez les champs avant de rédiger la requête. Pour un panneau d'inventaire, un enregistrement utile peut contenir l'identifiant de région, le nom visible de l'article, la quantité affichée, l'unité affichée, le statut et une note sur les ambiguïtés. Conservez le libellé d'origine lorsqu'il compte ; normalisez-le dans une étape ultérieure.

Rendez les valeurs inconnues explicites. Une cellule vide, un texte masqué par une superposition et un caractère illisible sont des observations différentes. Elles ne doivent pas toutes devenir zéro. Si votre système en aval exige un nombre, mettez l'enregistrement en attente de vérification au lieu d'en inventer un pour satisfaire son schéma.

Voici un exemple d'instruction original pour une capture que vous fournissez :

Lis uniquement le tableau d'inventaire du panel-A. Pour chaque ligne visible, renvoie le nom de l'article, le texte de la quantité, l'unité et le statut exactement tels qu'affichés. Utilise null pour tout champ illisible et explique pourquoi dans une note. Ne déduis pas de lignes masquées, ne complète pas les noms tronqués et ne calcule pas de totaux. Ajoute une brève description de l'emplacement pour que je puisse retrouver chaque ligne dans l'image.

La description d'emplacement est une aide à la révision, pas un cadre de délimitation précis. Si votre application a besoin de coordonnées, définissez et validez cette exigence séparément. Ne considérez pas une formulation d'emplacement plausible comme une preuve que la valeur extraite est correcte.

Start Creating

Envoyer l'image dans le bon bloc de contenu

L'interface Chat Completions documentée place les blocs de texte et d'image dans le tableau content du message utilisateur. Une image locale peut être encodée en data URL. Pour le gabarit Python suivant, installez le client Python compatible OpenAI, définissez DEEPSEEK_API_KEY dans votre environnement local et placez un véritable fichier PNG à l'emplacement screenshot.png. Gardez la clé hors des fichiers sources et du code navigateur.

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)

Ce gabarit affiche le contenu renvoyé pour examen ; il n'impose pas de schéma lisible par machine et ne valide pas le résultat. Ajoutez ces étapes avant de le connecter à un import automatisé. La requête API entraîne des frais d'utilisation selon votre compte et la tarification actuelle du fournisseur.

Le guide décrit les URL d'images publiques et les références à l'API Files comme autres options d'entrée. Choisissez le mode de transport adapté à votre charge de travail : une image locale peut être intégrée directement à la requête, tandis qu'une utilisation répétée de la même image peut justifier une référence de fichier. Vérifiez les limites de taille documentées actuelles avant de passer à l'échelle, car l'encodage base64 alourdit aussi le corps de la requête.

L'exemple utilise le réglage de détail original documenté. Cela ne garantit pas une lecture pixel par pixel : le guide décrit séparément un prétraitement des images. Son réglage low sous-échantillonne à 512 × 512, donc une capture dense mérite une attention particulière avant de sacrifier le détail à l'efficacité.

Vérifier l'extraction avant tout calcul

Ouvrez l'entrée à côté de la réponse et vérifiez une ligne renvoyée à la fois. Comparez le texte, l'association à la ligne et l'unité. Une quantité peut être transcrite correctement mais rattachée au produit voisin ; un simple contrôle orthographique ne le détectera pas.

Commencez par un petit ensemble comprenant des lignes ordinaires, des valeurs manquantes, un nom tronqué et un caractère ambigu. Ce sont des cas d'évaluation proposés. Conservez vos propres réponses vérifiées et notez si chaque échec vient de l'image d'entrée, de l'extraction ou de la façon dont votre application a interprété la réponse.

Ne calculez les totaux qu'après avoir vérifié les valeurs individuelles. Si l'image comporte à la fois un sous-total et un total, conservez leurs libellés plutôt que d'en choisir un selon sa position. Gardez les unités et les conventions décimales explicites lors de la conversion du texte en nombres. Une virgule peut avoir des sens différents selon les documents sources.

Pour un traitement reproductible, conservez l'identifiant d'entrée, le nom de région, la version du prompt, le modèle demandé et la réponse brute avec chaque enregistrement révisé. Une correction ultérieure sera ainsi possible sans deviner quelle capture a produit la valeur.

Distinguer les erreurs de transport des erreurs de lecture

Si la requête échoue, vérifiez l'authentification, le format d'entrée, la structure du message et les limites de taille actuelles avant de modifier l'instruction d'extraction. Dans cet exemple Chat Completions, l'image se place dans un message utilisateur et utilise un bloc image_url. N'y substituez pas la forme input_image de l'API Responses.

Si la requête réussit mais qu'une valeur est fausse, examinez le recadrage et la définition de la tâche. Essayez une région plus claire en conservant ses en-têtes. Si un champ reste illisible, laissez-le inconnu et acheminez-le vers une vérification. Demander sans cesse à la même image une réponse définitive peut produire une hypothèse différente sans produire de meilleure preuve.

Pour les projets migrant d'anciens noms de modèles, consultez le guide de migration de l'API DeepSeek dédié. Le flux d'extraction présenté ici suppose le nom actuel documenté et se concentre sur la validation des données, pas seulement sur la réception d'une réponse réussie. Ne publiez ou n'importez le résultat qu'une fois les champs requis vérifiables par rapport à leur source.

Articles associés

Start Creating