このトピックでは、OpenAI 互換 API または DashScope SDK を使用して、Alibaba Cloud Model Studio 上で DeepSeek モデルを呼び出す方法について説明します。
このドキュメントは 中国本土 (北京) リージョンにのみ適用されます。これらのモデルを使用するには、この リージョンの API キーを使用する必要があります。
モデルリスト
deepseek-v3.2、deepseek-v3.2-exp、および deepseek-v3.1 (パラメーターを使用して、モデルが応答前に思考するかどうかを制御できます。)
これらはハイブリッド思考モデルであり、デフォルトでは思考モードが無効になっています。deepseek-v3.2 は、DeepSeek が提供する初の思考とツール使用を統合したモデルです。思考モードと非思考モードの両方でツール呼び出しをサポートします。
enable_thinkingパラメーターを使用して思考モードを制御します。deepseek-r1 (常に応答前に思考します)
2025 年 5 月にリリースされた deepseek-r1-0528 は、2025 年 1 月にリリースされた deepseek-r1 のアップグレード版です。新しいバージョンは、複雑な推論タスクにおいて大幅な改善を示しています。推論中の思考の深さが増したため、応答時間が長くなります。
Alibaba Cloud Model Studio の deepseek-r1 モデルは、バージョン 0528 にアップグレードされました。
deepseek-r1-distill モデルは、知識蒸留によって deepseek-r1 が生成したトレーニングサンプルを使用して、Qwen や Llama などのオープンソース大規模言語モデルをファインチューニングすることによって作成されます。
deepseek-v3 (応答前に思考しません)
14.8 T トークンで事前学習された deepseek-v3 モデルは、長文コンテキスト処理、コード、数学、百科事典的知識、および中国語に優れています。
これは 2024 年 12 月 26 日にリリースされたバージョンであり、2025 年 3 月 24 日にリリースされたバージョンではありません。
思考モードでは、モデルは応答する前に思考します。思考ステップは reasoning_content フィールドに表示されます。非思考モードと比較して、応答時間は長くなりますが、応答の品質は向上します。
DeepSeek の最新モデルである deepseek-v3.2 を推奨します。オプションの思考モードを備え、レート制限が緩やかで、deepseek-v3.1 よりも低価格です。
モデル名 | コンテキストウィンドウ | 最大入力 | 最大思考連鎖 | 最大応答長 |
(トークン) | ||||
deepseek-v3.2 685B フルバージョン | 131,072 | 98,304 | 32,768 | 65,536 |
deepseek-v3.2-exp 685B フルバージョン | ||||
deepseek-v3.1 685B フルバージョン | ||||
deepseek-r1 685B フルバージョン | 16,384 | |||
deepseek-r1-0528 685B フルバージョン | ||||
deepseek-v3 671B フルバージョン | 131,072 | - | ||
最大思考連鎖は、思考モードにおける思考プロセスの最大トークン数です。
上記のモデルは統合されたサードパーティサービスではありません。すべて Model Studio サーバーにデプロイされています。
同時リクエスト制限の詳細については、「DeepSeek のレート制限」をご参照ください。
はじめに
deepseek-v3.2 は DeepSeek シリーズの最新モデルです。enable_thinking パラメーターを使用して、思考モードと非思考モードを切り替えることができます。以下のコードは、思考モードで deepseek-v3.2 モデルを呼び出す方法を示しています。
開始する前に、API キーを作成し、API キーを環境変数として設定してください。SDK を使用してモデルを呼び出す場合は、OpenAI または DashScope SDK をインストールする必要があります。
OpenAI 互換
enable_thinking パラメーターは標準の OpenAI パラメーターではありません。OpenAI Python SDK では、このパラメーターを extra_body で渡す必要があります。Node.js SDK では、トップレベルのパラメーターとして渡す必要があります。
Python
サンプルコード
from openai import OpenAI
import os
# OpenAI クライアントを初期化します
client = OpenAI(
# 環境変数が設定されていない場合は、以下を Model Studio API キーに置き換えます: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Who are you"}]
completion = client.chat.completions.create(
model="deepseek-v3.2",
messages=messages,
# 思考モードを有効にするには、extra_body で enable_thinking を設定します
extra_body={"enable_thinking": True},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # 完全な思考プロセス
answer_content = "" # 完全な応答
is_answering = False # 応答フェーズが開始されたかどうかを示します
print("\n" + "=" * 20 + "Thinking process" + "=" * 20 + "\n")
for chunk in completion:
if not chunk.choices:
print("\n" + "=" * 20 + "Token usage" + "=" * 20 + "\n")
print(chunk.usage)
continue
delta = chunk.choices[0].delta
# 思考コンテンツのみを収集します
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
# コンテンツが受信されたら応答を開始します
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Full response" + "=" * 20 + "\n")
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content応答
====================Thinking process====================
ああ、ユーザーは私が誰であるかを尋ねています。これは非常によくある最初の質問です。私のアイデンティティと機能を簡単かつ明確に紹介する必要があります。ユーザーがすぐに理解できるように、私の会社の背景とコア機能から始めることができます。
無料で利用できることとテキストベースの強みを強調すべきですが、詳細には触れないようにします。最後に、アシスタントの性質に沿った、自由回答形式の質問で会話を誘導します。
私は自分をエンタープライズレベルの AI アシスタントとして位置づけ、プロフェッショナルでありながらフレンドリーな印象を与えます。括弧内の絵文字は、親しみやすさを加えることができます。
====================Full response====================
こんにちは!私は DeepSeek によって作成された AI アシスタント、DeepSeek です。
私はテキスト専用のモデルです。マルチモーダル認識はサポートしていませんが、画像、txt、pdf、ppt、word、excel などのさまざまなファイルを処理し、そこからテキスト情報を読み取って支援するファイルアップロード機能があります。私は完全に無料で使用でき、128K のコンテキストウィンドウを持ち、Web 検索をサポートしています (Web/App で手動で有効にする必要があります)。
私の知識は 2024 年 7 月までのもので、熱意と配慮をもってあなたを支援します。公式アプリストアから私のアプリをダウンロードできます。
何かお手伝いできることはありますか?勉強、仕事、日常生活に関する質問であれ、喜んでお手伝いします!✨
====================Token usage====================
CompletionUsage(completion_tokens=238, prompt_tokens=5, total_tokens=243, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=None, audio_tokens=None, reasoning_tokens=93, rejected_prediction_tokens=None), prompt_tokens_details=None)Node.js
サンプルコード
import OpenAI from "openai";
import process from 'process';
// OpenAI クライアントを初期化します
const openai = new OpenAI({
// 環境変数が設定されていない場合は、以下を Model Studio API キーに置き換えます: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = ''; // 完全な思考プロセス
let answerContent = ''; // 完全な応答
let isAnswering = false; // 応答フェーズが開始されたかどうかを示します
async function main() {
try {
const messages = [{ role: 'user', content: 'Who are you' }];
const stream = await openai.chat.completions.create({
model: 'deepseek-v3.2',
messages,
// 注: Node.js SDK では、enable_thinking などの非標準パラメーターはトップレベルのプロパティとして渡され、extra_body に配置する必要はありません。
enable_thinking: true,
stream: true,
stream_options: {
include_usage: true
},
});
console.log('\n' + '='.repeat(20) + 'Thinking process' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\n' + '='.repeat(20) + 'Token usage' + '='.repeat(20) + '\n');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// 思考コンテンツのみを収集します
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) {
process.stdout.write(delta.reasoning_content);
}
reasoningContent += delta.reasoning_content;
}
// コンテンツが受信されたら応答を開始します
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Full response' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();戻り結果
====================Thinking process====================
ああ、ユーザーは私が誰であるかを尋ねています。これは非常によくある最初の質問です。私のアイデンティティとコア機能を、詳細に立ち入りすぎずに、簡単かつ明確に紹介する必要があります。
会社の背景と基本的な位置づけから始め、次にいくつかの主要な機能を挙げて、ユーザーが私が何ができるかをすぐに理解できるようにします。ユーザーが続けやすいように、自由回答形式の質問で締めくくります。
無料であること、長いコンテキストを持つこと、ファイル処理などの実用的な機能を強調します。絵文字は使わずに、フレンドリーでありながら控えめなトーンを保ちます。
====================Full response====================
こんにちは!私は DeepSeek によって作成された AI アシスタント、DeepSeek です。
私は 128K のコンテキストウィンドウを持つテキスト専用モデルで、質問への回答、会話への参加、テキストベースのタスクの支援ができます。マルチモーダル認識はサポートしていませんが、画像、txt、pdf、ppt、word、excel などのアップロードされたファイルを処理し、そこからテキスト情報を読み取って支援することができます。
私は完全に無料で使用でき、音声機能はありませんが、公式アプリストアから私のアプリをダウンロードできます。Web 検索を使用するには、Web またはアプリで手動で有効にすることを忘れないでください。
私の知識は 2024 年 7 月までのもので、熱意と配慮をもってあなたを支援します。質問や支援が必要な場合は、遠慮なくお知らせください!喜んでお手伝いします。✨
====================Token usage====================
{
prompt_tokens: 5,
completion_tokens: 243,
total_tokens: 248,
completion_tokens_details: { reasoning_tokens: 83 }
}HTTP
サンプルコード
curl
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3.2",
"messages": [
{
"role": "user",
"content": "Who are you"
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"enable_thinking": true
}'DashScope
Python
サンプルコード
import os
from dashscope import Generation
# リクエストパラメーターを初期化します
messages = [{"role": "user", "content": "Who are you?"}]
completion = Generation.call(
# 環境変数が設定されていない場合は、以下を Model Studio API キーに置き換えます: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="deepseek-v3.2",
messages=messages,
result_format="message", # 結果のフォーマットを message に設定します
enable_thinking=True,
stream=True, # ストリーミング出力を有効にします
incremental_output=True, # 増分出力を有効にします
)
reasoning_content = "" # 完全な思考プロセス
answer_content = "" # 完全な応答
is_answering = False # 応答フェーズが開始されたかどうかを示します
print("\n" + "=" * 20 + "Thinking process" + "=" * 20 + "\n")
for chunk in completion:
message = chunk.output.choices[0].message
# 思考コンテンツのみを収集します
if "reasoning_content" in message:
if not is_answering:
print(message.reasoning_content, end="", flush=True)
reasoning_content += message.reasoning_content
# コンテンツが受信されたら応答を開始します
if message.content:
if not is_answering:
print("\n" + "=" * 20 + "Full response" + "=" * 20 + "\n")
is_answering = True
print(message.content, end="", flush=True)
answer_content += message.content
print("\n" + "=" * 20 + "Token usage" + "=" * 20 + "\n")
print(chunk.usage)応答
====================Thinking process====================
ああ、ユーザーは私が誰であるかを尋ねています。これは非常に基本的な自己紹介の質問です。複雑さを避け、簡潔かつ明確に私のアイデンティティと機能を述べる必要があります。ユーザーがすぐに理解できるように、私の会社の背景とコア機能から始めることができます。
ユーザーが新規である可能性を考慮して、無料であること、長いコンテキストを持つこと、ファイル処理など、いくつかの典型的なユースケースと機能を追加できます。フレンドリーな態度を保ちながら、自由回答形式のヘルプの招待で締めくくります。
技術的な詳細はあまり必要なく、使いやすさと実用性に重点を置くべきです。
====================Full response====================
こんにちは!私は DeepSeek によって作成された AI アシスタント、DeepSeek です。
私はテキスト専用のモデルです。マルチモーダル認識はサポートしていませんが、画像、txt、pdf、ppt、word、excel などのファイルを処理し、分析のためにテキスト情報を読み取るファイルアップロード機能があります。私は完全に無料で使用でき、128K のコンテキストウィンドウを持ち、Web 検索をサポートしています (手動で有効にする必要があります)。
私の知識は 2024 年 7 月までのもので、熱意と配慮をもってあなたを支援します。公式アプリストアから私のアプリをダウンロードできます。
質問や助けが必要な場合は、遠慮なく尋ねてください!喜んであなたの質問に答え、さまざまなタスクを支援します。✨
====================Token usage====================
{"input_tokens": 6, "output_tokens": 240, "total_tokens": 246, "output_tokens_details": {"reasoning_tokens": 92}}Java
サンプルコード
DashScope Java SDK はバージョン 2.19.4 以降である必要があります。
// DashScope SDK のバージョンは 2.19.4 以降である必要があります。
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;
public class Main {
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(GenerationResult message) {
String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (reasoning != null && !reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Thinking process====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (content != null && !content.isEmpty()) {
finalContent.append(content);
if (!isFirstPrint) {
System.out.println("\n====================Full response====================");
isFirstPrint = true;
}
System.out.print(content);
}
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// 環境変数が設定されていない場合は、次の行を .apiKey("sk-xxx") に置き換えます
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("deepseek-v3.2")
.enableThinking(true)
.incrementalOutput(true)
.resultFormat("message")
.messages(Arrays.asList(userMsg))
.build();
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
streamCallWithMessage(gen, userMsg);
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("An exception occurred: " + e.getMessage());
}
}
}応答
====================Thinking process====================
うーん、ユーザーは簡単な自己紹介の質問をしています。これはよくある質問なので、私のアイデンティティと機能を明確かつ迅速に述べる必要があります。リラックスしたフレンドリーなトーンで、DeepSeek によって作成された DeepSeek-V3 として自己紹介します。質問への回答、チャット、チュータリングなど、提供できるヘルプの種類についても言及できます。最後に、より親しみやすくするために絵文字を追加します。簡潔かつ明確に保つべきです。
====================Full response====================
私は DeepSeek によって作成されたインテリジェントアシスタント、DeepSeek-V3 です!さまざまな質問に答えたり、提案をしたり、情報を調べたり、チャットしたりすることができます!勉強、仕事、日常生活について何でもお気軽にお尋ねください。どのようにお手伝いできますか?HTTP
サンプルコード
curl
curl -X POST "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "deepseek-v3.2",
"input":{
"messages":[
{
"role": "user",
"content": "Who are you?"
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"result_format": "message"
}
}'その他の特徴
モデル | |||||
deepseek-v3.2 | |||||
deepseek-v3.2-exp | 非思考モードでのみサポートされます。 | ||||
deepseek-v3.1 | 非思考モードでのみサポートされます。 | ||||
deepseek-r1 | |||||
deepseek-r1-0528 | |||||
deepseek-v3 | |||||
蒸留モデル |
デフォルトのパラメーター値
モデル | temperature | top_p | repetition_penalty | presence_penalty |
deepseek-v3.2 | 1.0 | 0.95 | - | - |
deepseek-v3.2-exp | 0.6 | 0.95 | 1.0 | - |
deepseek-v3.1 | 0.6 | 0.95 | 1.0 | - |
deepseek-r1 | 0.6 | 0.95 | - | 1 |
deepseek-r1-0528 | 0.6 | 0.95 | - | 1 |
蒸留版 | 0.6 | 0.95 | - | 1 |
deepseek-v3 | 0.7 | 0.6 | - | - |
ハイフン (-) は、パラメーターにデフォルト値がなく、設定できないことを示します。
deepseek-r1、deepseek-r1-0528、および蒸留モデルは、これらのパラメーターの設定に対応していません。
課金
課金は、入力トークンと出力トークンの数に基づきます。料金の詳細については、モデル一覧と料金をご参照ください。
思考モードでは、思考の連鎖は出力トークンとして課金されます。
よくある質問
イメージやドキュメントをアップロードして質問できますか?
DeepSeek モデルはテキスト入力のみをサポートしており、イメージ入力やドキュメント入力には対応していません。イメージ入力は Qwen-VL が、ドキュメント入力は Qwen-Long が対応しています。
トークンの使用量と呼び出し回数の確認方法
モデルを呼び出してから 1 時間後に、[モデル観察] ページに移動します。 時間範囲やワークスペースなどのクエリ条件を設定します。 [モデル] エリアでターゲットモデルを見つけ、[モニター] 列の [アクション] をクリックして、その呼び出し統計を表示します。 詳細については、「使用状況とパフォーマンスの監視」をご参照ください。
データは 1 時間ごとに更新されます。ピーク時には、更新が最大 1 時間遅延する可能性があります。

エラーコード
エラーが発生した場合は、「エラーメッセージ」をご参照ください。