友人を招待して無料トークンを獲得!詳細を見る

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はいStringapplication/jsonリクエストボディのフォーマット
AcceptはいStringapplication/jsonレスポンスボディのフォーマット
AuthorizationはいStringBearer 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 レスポンスボディ構造

フィールドデータ型説明
idStringこのリクエストの一意の識別子(ID)。
objectStringオブジェクトタイプ。通常は chat.completion です。
createdIntegerUnixタイムスタンプ(秒)。
choicesArray生成された複数の選択肢(結果)を含みます。
└─ messageObjectモデルが返したメッセージ内容。role と content を含みます。
└─ finish_reasonString停止理由(stop や length など)。
usageObjectトークン使用量の統計。プロンプト、補完、および合計トークン数を含みます。

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 に設定すると、モデルは認識したテキストの断片をリアルタイムで返します。最初の文字が表示されるまでの遅延を減らす必要があるリアルタイムのインタラクティブなユースケースに適しています。