Invitez des amis et gagnez des tokens gratuits !En savoir plus

Documentation de l'API de reconnaissance d'images DeepSeek-OCR

Cette API propose une fonctionnalité de reconnaissance optique de caractères (OCR) basée sur le modèle DeepSeek-OCR. L'API utilise le format de complétion de chat (Chat Completions) compatible avec OpenAI et prend en charge l'upload d'images via URL ou encodage Base64 pour les convertir en texte ou en format Markdown.

  • Domaine du service : https://api.codingplanx.ai
  • Chemin de l'API (Route) : /v1/chat/completions
  • Méthode de requête : POST
  • Statut de l'API : Publié (Released)

1. Paramètres de la requête

1.1 En-têtes de requête (Headers)

Nom du paramètreRequisTypeValeur d'exempleDescription
Content-TypeOuiStringapplication/jsonFormat du corps de la requête
AcceptOuiStringapplication/jsonFormat du corps de la réponse
AuthorizationOuiStringBearer VOTRE_CLE_APIClé API utilisée pour l'authentification

1.2 Corps de la requête (Request Body)

Nom du paramètreRequisTypeDescription
modelOuiStringID du modèle utilisé. Pour la reconnaissance OCR, veuillez spécifier deepseek-ocr.
messagesOuiArrayListe contenant les messages de la conversation. Pour l'OCR, les informations de l'image doivent être incluses dans le message.
streamNonBooleanPar défaut false. Si true, la réponse sera retournée sous forme de flux en temps réel (streaming).
temperatureNonNumberTempérature d'échantillonnage (0-2). Une valeur basse donne un résultat plus ciblé et stable, une valeur haute est plus aléatoire.
top_pNonNumberSeuil de probabilité d'échantillonnage (Nucleus sampling).
max_tokensNonIntegerNombre maximum de jetons (Tokens) générés.
response_formatNonObjectSpécifie le format de réponse, par exemple {"type": "json_object"} pour activer le mode JSON.
toolsNonArrayListe des outils que le modèle peut appeler (actuellement, prend principalement en charge l'appel de fonctions / function calling).

2. Exemple de requête

2.1 Requête de reconnaissance d'images OCR (JSON)

{
  "model": "deepseek-ocr",
  "stream": false,
  "messages": [
    {
      "role": "system",
      "content": "<image>\r
Free OCR."
    },
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "https://s3.ffire.cc/files/pdf_to_markdown.jpg" 
          }
        }
      ]
    }
  ]
}

Remarque : Le champ image_url.url permet de passer directement l'URL publique d'une image, ou de transmettre une chaîne de données encodée en Base64 (format : data:image/jpeg;base64,...).


3. Description de la réponse

3.1 Structure du corps de la réponse

ChampTypeDescription
idStringIdentifiant unique de la requête.
objectStringType d'objet, généralement chat.completion.
createdIntegerHorodatage Unix (en secondes).
choicesArrayContient les différentes options (choix) générées.
└─ messageObjectContenu du message retourné par le modèle, incluant role et content.
└─ finish_reasonStringRaison de l'arrêt (ex: stop ou length).
usageObjectStatistiques d'utilisation des Tokens, incluant les tokens du prompt, de la complétion et le total.

3.2 Exemple de réponse

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Voici le contenu textuel extrait par l'OCR, généralement retourné avec les informations de mise en page de l'image au format Markdown."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 512,
        "completion_tokens": 128,
        "total_tokens": 640
    }
}

4. FAQs (Foire aux questions)

Q1 : Quels sont les formats d'image pris en charge par DeepSeek-OCR ? R : Actuellement, les principaux formats tels que JPEG, PNG, WebP et BMP sont pris en charge. Il est recommandé d'utiliser des images claires avec une résolution modérée pour garantir la précision de la reconnaissance.

Q2 : Comment utiliser Base64 pour uploader une image ? R : Il suffit de remplacer la valeur de image_url.url par votre chaîne Base64. Exemple de format : "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...".

Q3 : Pourquoi le résultat de la reconnaissance est-il tronqué (coupé) ? R : Veuillez vérifier la valeur de finish_reason dans la réponse. Si elle est définie sur length, cela signifie que le contenu généré a dépassé la limite de max_tokens. Il est recommandé d'augmenter la valeur du paramètre max_tokens.

Q4 : Cette API prend-elle en charge la reconnaissance d'images par lots (batch) ? R : Dans le tableau messages d'une requête unique, vous pouvez essayer d'ajouter plusieurs objets image_url. Cependant, il est fortement recommandé de faire un appel séparé pour chaque image afin d'obtenir un meilleur traitement du contexte et une réponse plus stable.

Q5 : Comment obtenir une mise en page plus précise (comme des tableaux ou des formules mathématiques) ? R : Vous pouvez ajouter des instructions ciblées (prompts) dans les messages system ou user. Par exemple : "Veuillez utiliser le format Markdown pour conserver la disposition des tableaux présents dans l'image et reconnaître les formules mathématiques qui s'y trouvent".

Q6 : L'API prend-elle en charge la sortie en flux (Streaming) ? R : Oui. Définissez le paramètre stream sur true dans votre requête. Le modèle retournera les fragments de texte reconnus en temps réel, ce qui est idéal pour les scénarios interactifs nécessitant de réduire la latence d'affichage du premier caractère.