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ètre | Requis | Type | Valeur d'exemple | Description |
|---|---|---|---|---|
| Content-Type | Oui | String | application/json | Format du corps de la requête |
| Accept | Oui | String | application/json | Format du corps de la réponse |
| Authorization | Oui | String | Bearer VOTRE_CLE_API | Clé API utilisée pour l'authentification |
1.2 Corps de la requête (Request Body)
| Nom du paramètre | Requis | Type | Description |
|---|---|---|---|
| model | Oui | String | ID du modèle utilisé. Pour la reconnaissance OCR, veuillez spécifier deepseek-ocr. |
| messages | Oui | Array | Liste contenant les messages de la conversation. Pour l'OCR, les informations de l'image doivent être incluses dans le message. |
| stream | Non | Boolean | Par défaut false. Si true, la réponse sera retournée sous forme de flux en temps réel (streaming). |
| temperature | Non | Number | Température d'échantillonnage (0-2). Une valeur basse donne un résultat plus ciblé et stable, une valeur haute est plus aléatoire. |
| top_p | Non | Number | Seuil de probabilité d'échantillonnage (Nucleus sampling). |
| max_tokens | Non | Integer | Nombre maximum de jetons (Tokens) générés. |
| response_format | Non | Object | Spécifie le format de réponse, par exemple {"type": "json_object"} pour activer le mode JSON. |
| tools | Non | Array | Liste 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.urlpermet 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
| Champ | Type | Description |
|---|---|---|
| id | String | Identifiant unique de la requête. |
| object | String | Type d'objet, généralement chat.completion. |
| created | Integer | Horodatage Unix (en secondes). |
| choices | Array | Contient les différentes options (choix) générées. |
| └─ message | Object | Contenu du message retourné par le modèle, incluant role et content. |
| └─ finish_reason | String | Raison de l'arrêt (ex: stop ou length). |
| usage | Object | Statistiques 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.