AIREITER

DeepSeek V4 Flash Vision Exp APIガイド:制限・料金・実装例

最終更新日: 2026-08-21 11:49:24

deepseek-v4-flash-vision-exp endpointは、V4 Flashシリーズに画像入力を追加するエンドポイントです。ただし、名前にあるexperimentalは見過ごせません。公開されているリリース情報だけでは本番環境での信頼性までは判断できないため、まずはログを残せるパイロット運用とフォールバックを用意し、本番の標準モデルとして採用するかを検証するのが妥当です。

DeepSeekの画像入力に関する公式ドキュメントを示すVision APIガイド

30秒で判断する:どんな用途に向くか

既存のV4 Flashワークフローから、スクリーンショット、グラフ、文書などの画像をAPI経由で読み取らせたいなら、DeepSeek V4 Flash Vision Expは有力な選択肢です。一方で、本人確認や重大な判断に関わる視覚タスクでは、別系統のフォールバックを残したうえで、用途ごとに精度を検証してください。

状況適した入力方法理由
一度だけ使う小さなローカル画像Base64データURL画像を公開ホスティングする必要がない
すでに公開ホストされている画像外部URLリクエスト本文を小さく保てる
大きな画像、または繰り返し使う画像Files APIのfile_idアップロード済みファイルを再利用でき、参照画像は1枚あたり最大64 MiBまで扱える
大まかなタスク向けに情報量を抑えたいdetail: "low"推論前に画像を512 x 512へ縮小する

指定するモデル文字列はdeepseek-v4-flash-vision-expです。DeepSeekは公式変更履歴で、このモデルを実験的なものとして扱っており、2026年8月21日からAPIプラットフォームで利用可能だと案内しています。リリースノートでは、テキストのみの能力はV4 Flashと同等であり、視覚理解を必要とするエージェント系ベンチマークでは大幅な改善があったとしています。

Chat Completionsで画像を1枚送る

OpenAI互換のChat Completionsでは、userメッセージ内のcontent配列にテキストと画像を入れます。モデル固有の挙動は公式Visionガイドに記載されています。通常のdeepseek-v4-flashへ画像を送ると400エラーになります。

import base64
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

with open("chart.png", "rb") as image_file:
    encoded = base64.b64encode(image_file.read()).decode("utf-8")

response = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Extract the three trends from this chart."},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{encoded}",
                        "detail": "original",
                    },
                },
            ],
        }
    ],
)

print(response.choices[0].message.content)

Chat Completionsで画像を利用できるのはuserメッセージです。画像と指示文を同じcontent配列に置けば、モデルは視覚的な文脈とタスクをまとめて受け取れます。

画像の渡し方は用途で選ぶ

小さなローカルファイルならBase64

ローカルにある画像を一度だけ送るなら、Base64がもっとも手軽です。公開ホスティングは不要ですが、エンコード済みデータは48 MiBのリクエスト本文上限に含まれ、元画像自体も32 MiBまでに制限されます。

ユーザーやワーカーからの単発アップロードには向いていますが、バッチ処理で何度も使う画像には適しません。

公開済みアセットならURL

公開されたhttpまたはhttps URLを使えば、リクエストは小さく済みます。ただしURLは到達可能で、8,192文字以内、60秒以内にダウンロードでき、画像サイズは32 MiB以下でなければなりません。非公開URL、期限切れURL、内部ネットワーク向けURLでは、DeepSeekが画像を取得する前に失敗する可能性があります。

再利用や大きな画像にはFiles API

画像をFiles APIでアップロードし、返されたIDをVisionリクエストから参照します。

{
  "type": "file",
  "file_id": "file-api-xxxxxxxxxxxxxxxx"
}

参照するファイルは画像1枚あたり最大64 MiBまで利用でき、同じバイト列をリクエストごとに送り直さずに済みます。その代わり、アップロードとファイルライフサイクルの管理が増えます。返されたIDは公開共有リンクとして扱わず、作成に使用したキーと紐付けて管理してください。

ファイルが32 MiBを超える場合、リクエストが48 MiBを超えそうな場合、あるいは複数のエージェントステップで同じ画像を確認する場合は、Files APIが実用的です。

課金前に画像の詳細度を決める

detailフィールドは、image_url入力およびResponses APIの画像パートで使えます。以下の挙動はDeepSeekの公式Visionガイドに基づきます。

値仕様上の挙動向いているケース
low512 x 512へ縮小レイアウト把握、全体的な場面理解、粗い分類で十分な場合
high元画像を維持小さな文字や細部が重要な場合
original元画像を維持フル詳細で扱うことを明示したい場合
auto現在はoriginalと同等現行のデフォルト挙動を受け入れる場合

DeepSeekは推論前に画像をリサイズします。Visionガイドによると、画像トークンは1枚あたり最大384で、画像ごとに個別計算されます。元ファイルが非常に大きくても、リサイズ後の画像トークンが比例して増えるとは限りません。ただし大容量ファイルは、アップロードサイズやリクエストサイズの上限に引っかかることがあります。

公式のModels & Pricingページでは、deepseek-v4-flash-vision-expのトークン単価はV4 Flashと同じです。オフピーク時はキャッシュ済み入力トークンが100万あたり$0.007、キャッシュミス入力トークンが$0.22で、ピーク時はそれぞれ$0.014と$0.44です。出力はオフピーク時$0.66、ピーク時$1.32です。画像トークンは入力トークンとして課金されるため、画像数とdetail設定もコスト見積もりに含める必要があります。

実際にAPIエラーにつながる制限

制約上限または挙動
対応形式JPEG、PNG、GIF、WebP
リクエスト本文の最大サイズ48 MiB
Base64またはURL画像の最大サイズ32 MiB
Files APIのfile_id画像の最大サイズ64 MiB
1リクエストあたりの最大画像数600
file_id画像を除く画像合計サイズ64 MiB
file_id画像を含む画像合計サイズ200 MiB
最大解像度一辺あたり8,192ピクセル
画像が15枚以上の場合の解像度上限一辺あたり4,096ピクセル
外部URLの長さ8,192文字
外部画像のダウンロード60秒以内に完了する必要がある

見落としやすい制約が2つあります。画像を受け付けるのはdeepseek-v4-flash-vision-expのみであり、Chat Completionsではsystemまたはassistantメッセージに置いた画像ブロックは失敗します。Vision非対応モデルに画像を送った場合、DeepSeekが案内している400エラーはThis model does not support imageです。

同じモデルを使える3つのAPI形式

DeepSeekはVisionガイドで、このモデルを3つのインターフェースに対応させています。

インターフェース画像ブロック結果の取得方法
Chat Completionsuser content配列内のimage_urlresponse.choices[0].message.content
Responses APIinput_textと組み合わせるinput_imageresponse.output_text
Anthropic互換APIhttps://api.deepseek.com/anthropicで使うimageAnthropicのmessage content

いずれもBase64、公開URL、Files API参照をサポートしますが、content typeは異なります。Chat Completions用のブロックを、そのままResponses APIへ流用してはいけません。

リリース時の根拠から分かること、分からないこと

DeepSeekの8月21日の変更履歴では、Terminal Bench 2.1が83.9、Chartographyがp0.95で64.3など、リリース時のベンチマーク結果が示されています。ただし、これらはベンダー自身が報告した数値であり、第三者による再現結果ではありません。またリリースノートでは、テキスト専用のV4 Flashは2つの視覚評価でマルチモーダル要素を無視すると説明されています。

リリースベンチマークはベンダー報告値です。本番トラフィックを振り分ける前に、アプリケーションで重要となる視覚タスクを必ず検証してください。

本番環境で使うべきか

スクリーンショット解析、グラフからの情報抽出、文書のトリアージ、視覚的な状態確認が必要なエージェントであれば、DeepSeek V4 Flash Vision Expは管理されたパイロット運用に適しています。Flashと同等の料金体系、3種類の入力経路、画像1枚あたり384トークンという上限があるため、比較的低コストで評価を始められ、コストモデルの出発点も明確です。

ただし、モデルが実験的なままであり、公開されたリリース情報もそうしたケースでの信頼性を裏付けていない以上、本人確認、安全判断、医療画像の解釈など、結果の影響が大きい視覚判断で唯一のバックエンドにするべきではありません。同じインターフェースの背後にフォールバックを用意し、画像ソース、detail設定、入出力使用量、レイテンシー、リトライ、タスク成否を記録してください。

本番トラフィックを流す前に、少なくとも次をテストします。

  1. lowおよびoriginalのdetail設定で、小さな文字を含むスクリーンショットを検証する。
  2. ラベル、凡例、密集した軸を含むグラフを検証する。
  3. 複数画像を1リクエストに含めるケースを検証する。
  4. 非公開URLやダウンロードが遅い画像URLを検証する。
  5. 視覚的な確認後のツール呼び出しを検証する。
  6. 誤った、または曖昧な本人識別プロンプトを検証する。
  7. 400エラー、タイムアウト、不正な画像レスポンス後のフォールバック動作を検証する。

DeepSeek V4 Flash Vision Exp API FAQ

正確なモデル名は?

deepseek-v4-flash-vision-expを指定します。DeepSeekの2026年8月21日の変更履歴では、APIプラットフォーム上の実験的なマルチモーダルモデルとして案内されています。

料金はV4 Flashと同じ?

はい。DeepSeekの料金ページでは、Vision ExpとV4 Flashに同じキャッシュヒット、キャッシュミス、出力トークンの単価が掲載されています。画像トークンは入力トークンとして課金され、リサイズ後は画像1枚あたり最大384トークンです。

画像生成はできる?

公式Visionガイドで案内されているのは画像理解であり、画像生成ではありません。DeepSeekが別途生成対応を公開しない限り、このエンドポイントは理解専用として扱うべきです。

なぜリクエストが400エラーになる?

モデル文字列、メッセージロール、contentブロックのtype、ファイルサイズ、画像形式を確認してください。Vision非対応モデルへの画像送信や、未対応のメッセージロールへの画像配置では、This model does not support imageという案内済みのエラーが発生することがあります。