deepseek-v4-flash-vision-exp endpointは、V4 Flashシリーズに画像入力を追加するエンドポイントです。ただし、名前にあるexperimentalは見過ごせません。公開されているリリース情報だけでは本番環境での信頼性までは判断できないため、まずはログを残せるパイロット運用とフォールバックを用意し、本番の標準モデルとして採用するかを検証するのが妥当です。
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ガイドに基づきます。
| 値 | 仕様上の挙動 | 向いているケース |
|---|---|---|
low | 512 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 Completions | user content配列内のimage_url | response.choices[0].message.content |
| Responses API | input_textと組み合わせるinput_image | response.output_text |
| Anthropic互換API | https://api.deepseek.com/anthropicで使うimage | Anthropicの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設定、入出力使用量、レイテンシー、リトライ、タスク成否を記録してください。
本番トラフィックを流す前に、少なくとも次をテストします。
lowおよびoriginalのdetail設定で、小さな文字を含むスクリーンショットを検証する。- ラベル、凡例、密集した軸を含むグラフを検証する。
- 複数画像を1リクエストに含めるケースを検証する。
- 非公開URLやダウンロードが遅い画像URLを検証する。
- 視覚的な確認後のツール呼び出しを検証する。
- 誤った、または曖昧な本人識別プロンプトを検証する。
- 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という案内済みのエラーが発生することがあります。