DeepSeek-OCR 画像認識 API ドキュメント
本エンドポイントは、DeepSeek-OCRモデルに基づく画像文字認識(OCR)機能を提供します。このAPIはOpenAI互換のチャット補完(Chat Completions)フォーマットを採用しており、URLまたはBase64エンコードによる画像アップロードをサポートし、テキストまたはMarkdownフォーマットへの変換が可能です。
- サービスドメイン:
https://api.codingplanx.ai - エンドポイントパス:
/v1/chat/completions - HTTPメソッド:
POST - ステータス: リリース済み (Released)
1. リクエストパラメータ
1.1 リクエストヘッダー (Headers)
| パラメータ名 | 必須 | データ型 | 例 | 説明 |
|---|---|---|---|---|
| Content-Type | はい | String | application/json | リクエストボディのフォーマット |
| Accept | はい | String | application/json | レスポンスボディのフォーマット |
| Authorization | はい | String | Bearer YOUR_API_KEY | 認証用のAPIキー |
1.2 リクエストボディ (Request Body)
| パラメータ名 | 必須 | データ型 | 説明 |
|---|---|---|---|
| model | はい | String | 使用するモデルID。OCR認識の場合は deepseek-ocr を指定してください。 |
| messages | はい | Array | 対話メッセージを含むリスト。OCRの場合、メッセージ内に画像情報を含める必要があります。 |
| stream | いいえ | Boolean | デフォルトは false。true に設定すると、レスポンス内容をストリーミング(逐次)で返します。 |
| temperature | いいえ | Number | サンプリング温度 (0-2)。低い値は安定的で集中した結果になり、高い値はランダム性が増します。 |
| top_p | いいえ | Number | 核サンプリング(Nucleus sampling)の確率閾値。 |
| max_tokens | いいえ | Integer | 生成する最大トークン数。 |
| response_format | いいえ | Object | レスポンスのフォーマットを指定します。例:{"type": "json_object"} でJSONモードを有効化。 |
| tools | いいえ | Array | モデルが呼び出し可能なツールのリスト(現在は主に関数呼び出し/Function Callingをサポート)。 |
2. リクエスト例
2.1 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"
}
}
]
}
]
}
注意:
image_url.urlフィールドは、画像のパブリックURLを直接渡すか、Base64エンコードされたデータ文字列(フォーマット例:data:image/jpeg;base64,...)を渡すことができます。
3. レスポンス仕様
3.1 レスポンスボディ構造
| フィールド | データ型 | 説明 |
|---|---|---|
| id | String | このリクエストの一意の識別子(ID)。 |
| object | String | オブジェクトタイプ。通常は chat.completion です。 |
| created | Integer | Unixタイムスタンプ(秒)。 |
| choices | Array | 生成された複数の選択肢(結果)を含みます。 |
| └─ message | Object | モデルが返したメッセージ内容。role と content を含みます。 |
| └─ finish_reason | String | 停止理由(stop や length など)。 |
| usage | Object | トークン使用量の統計。プロンプト、補完、および合計トークン数を含みます。 |
3.2 レスポンス例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "ここはOCRによって認識されたテキスト内容です。通常、画像内のレイアウト情報がMarkdown形式で返されます。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 512,
"completion_tokens": 128,
"total_tokens": 640
}
}
4. よくある質問 (FAQ)
Q1: DeepSeek-OCRはどの画像フォーマットをサポートしていますか?
A: 現在、JPEG, PNG, WebP, BMP などの主要な画像フォーマットをサポートしています。認識精度を確保するため、鮮明で適切な解像度の画像を使用することをお勧めします。
Q2: Base64を使用して画像をアップロードするにはどうすればよいですか?
A: image_url.url の値をBase64文字列に置き換えるだけです。フォーマット例:"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."。
Q3: なぜ認識結果が途中で切断されるのですか?
A: レスポンス内の finish_reason を確認してください。もし length の場合、生成されたコンテンツが max_tokens の制限を超過したことを意味します。max_tokens パラメータの値を大きくすることをお勧めします。
Q4: このAPIは複数画像の一括認識(バッチ処理)をサポートしていますか?
A: 1回のリクエストの messages 内に複数の image_url オブジェクトを追加することは可能ですが、最適なコンテキスト処理と安定したレスポンスを得るためには、画像ごとに個別にAPIを呼び出すことをお勧めします。
Q5: より正確なレイアウト(表や数式など)を取得するにはどうすればよいですか?
A: system または user メッセージにプロンプト(指示)を追加することができます。例:「画像内の表のレイアウトを維持し、含まれる数式をMarkdown形式で認識してください」。
Q6: ストリーミング出力 (Streaming) はサポートされていますか?
A: はい、サポートされています。リクエストパラメータの stream を true に設定すると、モデルは認識したテキストの断片をリアルタイムで返します。最初の文字が表示されるまでの遅延を減らす必要があるリアルタイムのインタラクティブなユースケースに適しています。