DeepSeek-OCR Bilderkennung API-Dokumentation
Dieser Endpunkt bietet Funktionen zur optischen Zeichenerkennung (Texterkennung/OCR) basierend auf dem DeepSeek-OCR-Modell. Die API verwendet das mit OpenAI kompatible „Chat Completions“-Format und unterstützt das Hochladen von Bildern per URL oder Base64-Codierung, um diese in Text oder das Markdown-Format umzuwandeln.
- Service-Domain:
https://api.codingplanx.ai - Endpunkt-Pfad:
/v1/chat/completions - HTTP-Methode:
POST - Status: Veröffentlicht (Released)
1. Anfrageparameter (Request)
1.1 Request-Header
| Parametername | Erforderlich | Typ | Beispielwert | Beschreibung |
|---|---|---|---|---|
| Content-Type | Ja | String | application/json | Format des Request-Bodys |
| Accept | Ja | String | application/json | Format des Response-Bodys |
| Authorization | Ja | String | Bearer YOUR_API_KEY | API-Key zur Authentifizierung |
1.2 Request-Body
| Parametername | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| model | Ja | String | Die verwendete Modell-ID. Für OCR-Erkennung bitte deepseek-ocr angeben. |
| messages | Ja | Array | Liste der Nachrichten im Dialog. Für OCR müssen Bildinformationen in den Nachrichten enthalten sein. |
| stream | Nein | Boolean | Standardwert ist false. Wenn true, wird die Antwort als Stream zurückgegeben. |
| temperature | Nein | Number | Sampling-Temperatur (0-2). Niedrigere Werte sind fokussierter und stabiler, höhere Werte sind zufälliger. |
| top_p | Nein | Number | Wahrscheinlichkeitsschwellenwert für das Nucleus-Sampling. |
| max_tokens | Nein | Integer | Maximale Anzahl der zu generierenden Tokens. |
| response_format | Nein | Object | Legt das Rückgabeformat fest, z. B. {"type": "json_object"}, um den JSON-Modus zu aktivieren. |
| tools | Nein | Array | Liste der vom Modell aufrufbaren Tools (unterstützt derzeit hauptsächlich Function Calling). |
2. Anfragebeispiel
2.1 OCR-Bilderkennung Request (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"
}
}
]
}
]
}
Hinweis: Das Feld
image_url.urlunterstützt die direkte Übergabe einer öffentlichen URL des Bildes oder eines Base64-codierten Datenstrings (Format z. B.:data:image/jpeg;base64,...).
3. Antwortdetails (Response)
3.1 Struktur des Response-Bodys
| Feld | Typ | Beschreibung |
|---|---|---|
| id | String | Eindeutiger Identifikator dieser Anfrage. |
| object | String | Objekttyp, normalerweise chat.completion. |
| created | Integer | Unix-Zeitstempel (in Sekunden). |
| choices | Array | Enthält die generierten Antwortoptionen. |
| └─ message | Object | Der vom Modell zurückgegebene Nachrichteninhalt, enthält role und content. |
| └─ finish_reason | String | Grund für den Abbruch (z. B. stop oder length). |
| usage | Object | Statistik zur Token-Nutzung, enthält Prompt-, Completion- und Gesamt-Tokens. |
3.2 Antwortbeispiel
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hier ist der von der OCR erkannte Text, der normalerweise Formatierungsinformationen aus dem Bild im Markdown-Format zurückgibt."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 512,
"completion_tokens": 128,
"total_tokens": 640
}
}
4. FAQs (Häufig gestellte Fragen)
Q1: Welche Bildformate unterstützt DeepSeek-OCR?
A: Derzeit werden gängige Formate wie JPEG, PNG, WebP und BMP unterstützt. Es wird empfohlen, klare Bilder mit angemessener Auflösung zu verwenden, um eine hohe Erkennungsgenauigkeit zu gewährleisten.
Q2: Wie lade ich Bilder per Base64 hoch?
A: Ersetzen Sie einfach den Wert von image_url.url durch den Base64-String. Formatbeispiel: "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...".
Q3: Warum wird das Erkennungsergebnis abgeschnitten?
A: Bitte überprüfen Sie das Feld finish_reason in der Antwort. Wenn dieser length lautet, bedeutet das, dass der generierte Inhalt das Limit von max_tokens überschritten hat. Es wird empfohlen, den Parameter max_tokens zu erhöhen.
Q4: Unterstützt diese Schnittstelle die Stapelverarbeitung (Batch) von Bildern?
A: Sie können versuchen, mehrere image_url-Objekte in den messages einer einzelnen Anfrage hinzuzufügen. Es wird jedoch empfohlen, für jedes Bild einen separaten API-Aufruf durchzuführen, um die beste Kontextverarbeitung und eine stabilere Antwort zu erzielen.
Q5: Wie erhalte ich ein präziseres Layout (z. B. für Tabellen oder Formeln)?
A: Sie können den system- oder user-Nachrichten entsprechende Prompt-Anweisungen hinzufügen, zum Beispiel: „Bitte verwenden Sie das Markdown-Format, um das Tabellenlayout im Bild beizubehalten und mathematische Formeln exakt zu erkennen.“
Q6: Wird Streaming-Ausgabe (Streaming) unterstützt?
A: Ja. Wenn Sie den Parameter stream in der Anfrage auf true setzen, gibt das Modell die erkannten Textfragmente in Echtzeit zurück. Dies eignet sich hervorragend für interaktive Szenarien, in denen die Latenz bis zum ersten Zeichen minimiert werden soll.