皆さん、こんにちは。okamoです。
以前、過去の記事にて Microsoft Foundry で DeepSeek-V4-Flash-0731 を動かす方法を紹介しました。
2026年9月23日のマイクロソフト公式ブログにて、DeepSeekの最新モデルである DeepSeek-V4.1-Flash が Microsoft Foundry(Azure AI Foundry)に登場したことがアナウンスされました。
本記事では、Azure が「Direct from Azure」として提供する DeepSeek-V4.1-Flash を Azure CLI でデプロイし、curl で疎通確認を行うまでの手順 をコマンドで解説します。
後半では、「中国公式API」と「Azure直ホスト(経由API)」の違いについても、データプライバシーや仕様の違いを含めて比較表で解説します。
1. 事前準備と前提条件
前提条件
- Azure サブスクリプション(リソース作成権限があること。リソースプロバイダーの登録には Owner 権限が必要です)
- Azure CLI (
az)(az cognitiveservices系コマンドは core に同梱されているため、Azure CLI 2.60 以降であれば追加拡張は不要) az loginで対象サブスクリプションにログイン済みであること
使用するプレースホルダ一覧
手順中の <...> は環境に合わせて置き換えてください。
| プレースホルダ | 意味・指定する値の例 |
|---|---|
<SUBSCRIPTION_ID_OR_NAME> | 使用する Azure サブスクリプションの ID または名前 |
<RESOURCE_GROUP> | リソースグループ名(例: rg-deepseek) |
<LOCATION> | リージョン(例: eastus)。※モデルの提供リージョンは Azure ポータルで確認してください |
<ACCOUNT_NAME> | Azure AI Services アカウント名。全世界で一意にする必要があります(例: dsv41flash0928) |
<DEPLOYMENT_NAME> | デプロイ名(任意)。API 呼び出しの model に指定するのはこの値です(例: deepseek-v4-1-flash) |
<MODEL_VERSION> | モデルバージョン。STEP 3 で確認した実値を指定(例: 2026-09-10) |
<API_KEY> | Azure AI Services アカウントの API キー |
2. デプロイ&疎通確認の全ステップ(CLIコマンド完全版)
STEP 0 — Azure CLI の準備とリソースプロバイダー登録
初めにリソースプロバイダーを登録しておくと、後の手順で発生しやすい MissingSubscriptionRegistration エラーを未然に防げます。
# Azure CLI のバージョン確認(2.60 以降を推奨)
az version
# 未ログインならログイン
az login
# 使うサブスクリプションを選択
az account set --subscription "<SUBSCRIPTION_ID_OR_NAME>"
# リソースプロバイダーを登録(MissingSubscriptionRegistration 対策)
az provider register --namespace Microsoft.CognitiveServices
# 登録状態を確認(Registered になるまで数分かかることがあります)
az provider show --namespace Microsoft.CognitiveServices --query registrationState -o tsv
STEP 1 — リソースグループを作成
az group create \
--name "<RESOURCE_GROUP>" \
--location "<LOCATION>"
STEP 2 — Azure AI Services アカウントを作成
--custom-domain を指定することで、エンドポイントが https://<ACCOUNT_NAME>.openai.azure.com/ の形式になります。
az cognitiveservices account create \
--name "<ACCOUNT_NAME>" \
--resource-group "<RESOURCE_GROUP>" \
--kind AIServices \
--sku S0 \
--location "<LOCATION>" \
--custom-domain "<ACCOUNT_NAME>" \
--assign-identity \
--allow-project-management true \
--yes
💡 補足:
--assign-identityと--allow-project-managementは、Foundry プロジェクトでの Entra ID 認証や管理を行う場合のオプションです。API キーで curl するだけなら省略しても構いません。
STEP 3 — DeepSeek-V4.1-Flash をデプロイ
利用可能なモデル一覧と正確なバージョンを確認してからデプロイします。
# デプロイ可能な DeepSeek 系モデルとバージョンを確認
az cognitiveservices account list-models \
-n "<ACCOUNT_NAME>" -g "<RESOURCE_GROUP>" \
--query "[?contains(name,'DeepSeek')].{name:name,format:format,version:version,lifecycle:lifecycleStatus}" -o table
出力例(実測値):
Name Version Format Lifecycle
------------------- ---------- -------- ---------
DeepSeek-V4.1-Flash 2026-09-10 DeepSeek Preview
確認したバージョン文字列を用いて、デプロイを実行します。
az cognitiveservices account deployment create \
--name "<ACCOUNT_NAME>" \
--resource-group "<RESOURCE_GROUP>" \
--deployment-name "<DEPLOYMENT_NAME>" \
--model-name "DeepSeek-V4.1-Flash" \
--model-version "<MODEL_VERSION>" \
--model-format "DeepSeek" \
--sku-name "GlobalStandard" \
--sku-capacity 20
⚠️ --sku-capacity に関する重要注意点
- 容量の目安: 実測では
--sku-capacity 1= 1 RPM / 1,000 TPM です。20を指定すると 20 RPM / 20,000 TPM になります。 - 最小設定値の罠:
1でもデプロイ自体は成功しますが、API を少し叩くだけでクォータ不足になります。実運用では20以上を推奨します。 - サブスクリプション上限: カタログ上の表記(1,000,000など)ではなく、ご自身のサブスクリプションの
limit(az cognitiveservices usage list --location "<LOCATION>" -o tableで確認可能)の範囲内で指定してください。実測では上限が 20 の場合がありました。
STEP 4 — 接続情報を環境変数にセット
# エンドポイント(OpenAI 互換)と API キーを取得
export AZURE_AI_ENDPOINT="https://<ACCOUNT_NAME>.openai.azure.com/openai/v1/"
export AZURE_AI_API_KEY="$(az cognitiveservices account keys list \
--name "<ACCOUNT_NAME>" \
--resource-group "<RESOURCE_GROUP>" \
--query key1 -o tsv)"
# API 呼び出しの model に入れるのは「デプロイ名」
export DEPLOYMENT_NAME="<DEPLOYMENT_NAME>"
echo "endpoint=$AZURE_AI_ENDPOINT"
test -n "$AZURE_AI_API_KEY" && echo "api_key=set"
STEP 5 — curl で疎通確認
OpenAI 互換の /chat/completions エンドポイントに向けてリクエストを送信します。
curl -sS --http1.1 "$AZURE_AI_ENDPOINT/chat/completions" \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_AI_API_KEY" \
-X POST \
-d '{
"model": "'"$DEPLOYMENT_NAME"'",
"messages": [
{ "role": "user", "content": "Reply with just OK." }
]
}'
⚠️ 注意:
modelパラメータには、モデル名ではなく デプロイ名(<DEPLOYMENT_NAME>) を渡してください。 💡 WSL2 などの環境では、HTTP/2 のハングを防ぐために--http1.1を付けることをおすすめします。
レスポンス例(実測値):
{
"id": "43cc521c21684ab9889fd9c00d4e61fa",
"model": "deepseek-v4-1-flash",
"choices": [
{ "index": 0, "message": { "role": "assistant", "content": "OK" }, "finish_reason": "stop" }
],
"usage": { "prompt_tokens": 9, "completion_tokens": 2, "total_tokens": 11 }
}
STEP 6 — レート制限ヘッダーの確認
レスポンスヘッダーから、指定した --sku-capacity が反映されているか確認できます。
curl -sS --http1.1 -D /tmp/h.txt "$AZURE_AI_ENDPOINT/chat/completions" \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_AI_API_KEY" \
-X POST \
-d '{"model": "'"$DEPLOYMENT_NAME"'", "messages": [{"role": "user", "content": "Hi"}]}' > /dev/null
grep -i -E '^HTTP|x-ratelimit' /tmp/h.txt
出力例(capacity 20 の場合):
HTTP/1.1 200 OK
x-ratelimit-key: deepseek-v4-1-flash
x-ratelimit-limit-requests: 20
x-ratelimit-limit-tokens: 20000
x-ratelimit-renewalperiod-requests: 60
x-ratelimit-renewalperiod-tokens: 60
3. トラブルシューティング
| エラー / 現象 | 原因と確認・対処法 |
|---|---|
MissingSubscriptionRegistration (409) | Microsoft.CognitiveServices が未登録。STEP 0 の az provider register を実行(Owner権限が必要) |
404 Not Found | model にモデル名を指定していないか確認(デプロイ名を指定する)。エンドポイント URL の綴りも確認 |
401 Unauthorized | API キーが未設定、または対象アカウントと異なるキーを指定している |
429 Too Many Requests | レート制限超過。--sku-capacity の見直しやクォータ増枠申請を実施 |
InsufficientQuota (デプロイ時) | 指定した capacity がサブスクリプション上限を超過。az cognitiveservices usage list で limit を確認 |
| レスポンスが返らずハングする | WSL 環境等で HTTP/2 の不整合が発生。curl --http1.1 を指定 |
4. DeepSeek 公式 API と Azure 経由の違い(比較表)
対象は中国公式(api.deepseek.com)と、Azure 直ホストの DeepSeek-V4.1-Flash(version 2026-09-10、GlobalStandard、Preview)です。Azure 側の所見は 2026-09-28 時点の実測に基づきます。
| 区分 | 観点 | 中国公式 | Azure 直ホスト |
|---|---|---|---|
| API | Chat Completions | あり | あり(capabilities に chatCompletion) |
| API | Anthropic 互換 | https://api.deepseek.com/anthropic | 使えない。/anthropic/v1/messages は api_not_supported。ブログも触れていない |
| API | Responses API | あり。使うならこちら | 使うべきでない。 宣言されているのは Chat Completions。カタログに responses 印は無く、ブログも触れていない。経路自体は HTTP 200 だったが、対応の宣言ではない |
| API | Tool / JSON / Vision | あり | カタログ上、画像入力あり。Tool / JSON は Chat Completions の範囲 |
| API | 思考の制御(Chat Completions) | 既定は思考オン、既定の強さは high。オンオフは thinking.type、強さは reasoning_effort の low / high / max [6] | thinking パラメータは指定できない。送ると 400。オンオフと強さは reasoning_effort だけ。none は思考なし、low は思考あり |
| API | コンテキスト / 最大出力 | 1M / 384K | カタログはコンテキスト 1M、出力上限 128K |
| 料金 | 入力 cache miss | 0.30(ピーク) / 0.15(オフピーク) | 0.30 |
| 料金 | 入力 cache hit | 0.006(ピーク) / 0.003(オフピーク) | 0.006 |
| 料金 | 出力 | 1.20(ピーク) / 0.60(オフピーク) | 1.20 |
| 料金 | オフピーク半額 | あり(平日 UTC 01:00–04:00 と 06:00–10:00、中国祝日を除く) | なし |
| 容量 | 上限の意味 | 同時接続。deepseek-flash はアカウントあたり 2,500。超過は 429 | SKU capacity。1 capacity ≒ 1 リクエスト / 分 + 1,000 トークン / 分。カタログ上限は 1,000,000 |
| 容量 | いまの実効値 | 契約次第。増枠申請は追加料金なし、と公式は書く | サブスクリプションのクォータ次第(** okamoのAzure環境の実測は 20** = 20 リクエスト / 分 + 20,000 トークン / 分) |
| データ | 日本閉じ | 不可 | 不可。V4.1 に Data Zone / 単一リージョン SKU は無い |
| データ | 推論後に残すか | 残し得る。入力はアカウントがある限り保持し得る [1]。ディスクキャッシュは既定で、未使用なら通常数時間〜数日で削除 [3] | 使うのは Chat Completions。モデル自体は残さない [4]。乱用監視でフラグされたプロンプトは、人の確認用に保存され得る。Preview は監視の扱いが異なり得る [4] |
| データ | 人が中身を見るか | 「人は見ない」とは書いていない。不正調査、規約違反、法令対応でアクセス・共有し得る [1] | 自動レビューは保存しない。人が見るのは、フラグされたものか乱用パターンに限る。見るのは認可された Microsoft 社員 [4][5]。Modified abuse monitoring の申請が通ると、その保存と人の確認は止まる |
| データ | 学習に使うか | モデル訓練・技術改善に使うと書き、オプトアウト権はある。API 入力が自動で訓練対象外とは書いていない [1] | 基礎モデルの訓練には使わない。DeepSeek 社にも渡さない [4] |
| データ | 処理する国 | DeepSeek のインフラ。国外移転は「必要なら保護措置」とだけ [1] | そのモデルがある任意の Azure リージョン。日本にも中国にも閉じない。リソースは East US [4] |
| データ | 保存する国 | 中国。準拠法は中国本土、管轄は杭州 [1][2] | 乱用監視の保存先は、リソースの geography(米国)[4] |
| データ | 中国公式へ渡るか | そのものが中国公式 | 渡さない [4] |
※料金の単位は USD / 100 万トークン。
⚠️ capacity の数字は環境で変わる
- 上の「容量」行はカタログと契約の話で、実際にデプロイできる値はサブスクリプションのクォータ次第です。
- okamoのAzure環境では
AIServices.GlobalStandard.DeepSeek-V4.1-Flashのlimitが 20 だったため、STEP 3 でも--sku-capacity 20としています。 - クォータ上限が 10,000 の環境であれば capacity 10,000(= 10,000 リクエスト / 分、10,000,000 トークン / 分)まで取れます。ただしこれは別環境の例で、 okamoのAzure環境の値ではありません。
- 中国公式の「2,500 同時接続」と Azure の「capacity」は単位が違います。横並びの数字として比較しないでください。
要点まとめ
- 中国公式: オフピークが半額で、出力 384K と Responses / Anthropic 互換 API が利用可能。代わりにデータは中国に置かれ、推論後に残さない保証や「訓練に使わない」という保証は契約上ありません。
- Azure 直ホスト: DeepSeek 社にデータを渡さず Azure 請求にまとめられます。料金は公式ピーク時と同等。日本リージョンへの固定(閉じ)はできず、Preview 提供で、乱用監視の人的確認が既定で有効な場合があります(出力上限はカタログ上 128K)。
- Azure 経由の呼び出し: 原則 Chat Completions を使用します。Responses はカタログもブログも対応を宣言しておらず使うべきではありません。思考制御は
reasoning_effortパラメータで行います。
5. 後片付け(リソース削除)
検証完了後は、不要な課金やリソースの専有を防ぐために削除しておきましょう。
# リソースグループごと一括削除する場合
az group delete --name "<RESOURCE_GROUP>" --yes --no-wait
# アカウント単体のみを削除する場合
az cognitiveservices account delete --resource-group "<RESOURCE_GROUP>" --name "<ACCOUNT_NAME>"
# 環境変数をクリア
unset AZURE_AI_ENDPOINT AZURE_AI_API_KEY DEPLOYMENT_NAME
6. 参考リンク
公式アナウンス・製品カタログ
- Microsoft Foundry ブログ(Azure 直ホスト / V4.1 Flash): DeepSeek-V4.1-Flash is coming to Microsoft Foundry
- DeepSeek 公式 API の料金: https://api-docs.deepseek.com/quick_start/pricing/
- モデルカタログ(Direct from Azure): https://ai.azure.com/catalog/models/DeepSeek-V4.1-Flash
比較表の出典
- DeepSeek プライバシーポリシー(最終更新 2026-02-10)。入力の収集、アカウント存続中の保持、訓練・技術改善への利用とオプトアウト、安全・法令対応での共有、中国のサーバーへの保存。
- DeepSeek Open Platform Terms of Service。準拠法は中国本土。紛争は杭州の登記地を管轄する裁判所。
- Context Caching。ディスクキャッシュは既定。未使用なら通常、数時間から数日で削除。
- Data, privacy, and security for Foundry Models sold by Azure(ページ日付 2026-05-18、更新 2026-06-05)。ステートレス、訓練に使わない、モデル提供者に渡さない、Global はモデルがある任意の geography で処理、乱用監視の保存はリソースの geography、Preview は扱いが異なり得る。
- Foundry Models sold by Azure abuse monitoring(ページ日付 2026-05-13)。人の確認は認可された Microsoft 社員に限る。Modified abuse monitoring 承認後は、その保存と人の確認をしない。
- Thinking Mode。Chat Completions は
thinking.typeでオンオフ、reasoning_effortはlow/high/max。既定は思考オン、effort は high。
Azure CLI・クォータ管理リファレンス
az cognitiveservices account deployment create: https://learn.microsoft.com/cli/azure/cognitiveservices/account/deployment#az-cognitiveservices-account-deployment-createaz cognitiveservices usage list: https://learn.microsoft.com/cli/azure/cognitiveservices/usage- Azure AI Foundry のクォータ管理: https://learn.microsoft.com/azure/ai-foundry/how-to/quota
- Azure ドキュメント: リソースプロバイダーの登録エラー解決: https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-register-resource-provider