視覚的推論モデルは、回答を提供する前に思考プロセスを生成するため、数学の問題解決、チャート分析、動画理解などの複雑な視覚分析タスクに最適です。
例
上記のコンポーネントはデモンストレーションのみを目的としており、実際のリクエストは送信されません。
サポートされているモデル
Qwen3.6
ハイブリッド思考モデル: qwen3.6-plus、qwen3.6-plus-2026-04-02、qwen3.6-flash、qwen3.6-flash-2026-04-16、qwen3.6-35b-a3b
Qwen3.5
ハイブリッド思考モデル: qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23、qwen3.5-397b-a17b、qwen3.5-122b-a10b、qwen3.5-27b、qwen3.5-35b-a3b
Qwen3-VL
ハイブリッド思考モデル: qwen3-vl-plus、qwen3-vl-plus-2025-12-19、qwen3-vl-plus-2025-09-23、qwen3-vl-flash、qwen3-vl-flash-2025-10-15
思考専用モデル: qwen3-vl-235b-a22b-thinking、qwen3-vl-32b-thinking、qwen3-vl-30b-a3b-thinking、qwen3-vl-8b-thinking
QVQ
思考専用モデル: qvq-max シリーズ、qvq-plus シリーズ
Kimi
ハイブリッド思考モデル: kimi-k2.6、kimi-k2.5
使用方法
思考プロセス: Model Studio は、ハイブリッド思考と思考専用の 2 種類の視覚的推論モデルを提供します。
ハイブリッド思考モデル:
enable_thinkingパラメーターで思考動作を制御できます:trueに設定すると、思考モードが有効になります。モデルは、まず思考プロセスを出力し、次に最終的な応答を出力します。Qwen3.6 および Qwen3.5 シリーズのモデルでは、デフォルトでtrueになります。falseに設定すると、思考がオフになり、モデルは直接応答を生成します。qwen3-vl-plusおよびqwen3-vl-flashモデルシリーズは、デフォルトでfalseになります。
思考専用モデル: これらのモデルは、応答を提供する前に常に思考プロセスを生成し、この動作を無効にすることはできません。
出力方法: 視覚的推論モデルの詳細な思考プロセスは、長い応答になる可能性があります。タイムアウトを防ぐには、ストリーミング出力を使用してください。
Qwen3.6、Qwen3.5、Qwen3-VL、kimi-k2.6、および kimi-k2.5 シリーズは、ストリーミング出力と非ストリーミング出力の両方をサポートしています。
QVQ シリーズはストリーミング出力のみをサポートしています。
システムプロンプトの推奨事項:
シングルターンまたはシンプルな会話: 最良の推論結果を得るには、
System Messageを設定しないでください。代わりに、ロールの定義や出力フォーマットの要件などの命令をUser Messageで渡してください。エージェントの構築やツール呼び出しの実装などの複雑なアプリケーションの場合:
System Messageを使用して、モデルのロール、機能、および動作のフレームワークを定義し、モデルの安定性と信頼性を確保します。
クイックスタート
前提条件
以下の例では、qvq-max モデルを呼び出してイメージから数学の問題を解き、ストリーミング出力を使用して思考プロセスと完全な応答を別々に出力します。
OpenAI 互換
Python
from openai import OpenAI
import os
# OpenAI クライアントを初期化します。
client = OpenAI(
# API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
# 環境変数が設定されていない場合は、Model Studio の API キーに置き換えます: api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY"),
# これはシンガポールリージョンのベース URL です。中国 (北京) の場合は、base_url を "https://dashscope.aliyuncs.com/compatible-mode/v1" に変更してください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # 完全な思考プロセスを格納します。
answer_content = "" # 完全な応答を格納します。
is_answering = False # 完全な応答がいつ開始されるかを追跡します。
# チャット補完リクエストを作成します。
completion = client.chat.completions.create(
model="qvq-max", # この例では qvq-max を使用しています。他のモデル名に置き換えることができます。
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
},
},
{"type": "text", "text": "この問題をどうやって解きますか?"},
],
},
],
stream=True,
# 最後のチャンクでトークン使用量を返すには、次の行のコメントを解除します。
# stream_options={
# "include_usage": True
# }
)
print("\n" + "=" * 20 + "思考プロセス" + "=" * 20 + "\n")
for chunk in completion:
# chunk.choices が空の場合は、使用量を出力します。
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 思考プロセスを出力します。
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 完全な応答の開始。
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20 + "\n")
is_answering = True
# ストリーミング中に応答を出力します。
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(answer_content)Node.js
import OpenAI from "openai";
import process from 'process';
// OpenAI クライアントを初期化します。
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY, // 環境変数から読み取ります。API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
// これはシンガポールリージョンのベース URL です。中国 (北京) の場合は、base_url を 'https://dashscope.aliyuncs.com/compatible-mode/v1' に変更してください。
baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
let messages = [
{
role: "user",
content: [
{ type: "image_url", image_url: { "url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg" } },
{ type: "text", text: "この問題を解いてください" },
]
}]
async function main() {
try {
const stream = await openai.chat.completions.create({
model: 'qvq-max',
messages: messages,
stream: true
});
console.log('\n' + '='.repeat(20) + '思考プロセス' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nUsage:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// 思考プロセスを処理します。
if (delta.reasoning_content) {
process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
// 完全な応答を処理します。
else if (delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + '完全な応答' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();HTTP
# ======= 重要事項 =======
# この URL はシンガポールリージョン用です。中国 (北京) の場合は、URL を 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' に変更してください。
# API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
# === 実行前にこのコメントを削除してください ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qvq-max",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
}
},
{
"type": "text",
"text": "この問題を解いてください"
}
]
}
],
"stream":true,
"stream_options":{"include_usage":true}
}'DashScope
DashScope SDK で QVQ モデルを呼び出す場合:
incremental_outputパラメーターはデフォルトでtrueであり、falseには設定できません。増分出力のみがサポートされています。result_formatパラメーターのデフォルトは"message"で、"text"には設定できません。
Python
import os
import dashscope
from dashscope import MultiModalConversation
# これはシンガポールリージョンのベース URL を設定します。中国 (北京) の場合は、この値を 'https://dashscope.aliyuncs.com/api/v1' に変更してください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題をどうやって解きますか?"}
]
}
]
response = MultiModalConversation.call(
# API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
# 環境変数が設定されていない場合は、次の行を Model Studio の API キーに置き換えます: api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qvq-max", # この例では qvq-max を使用しています。他のモデル名に置き換えることができます。
messages=messages,
stream=True,
)
# 完全な思考プロセスを格納します。
reasoning_content = ""
# 完全な応答を格納します。
answer_content = ""
# 完全な応答がいつ開始されるかを追跡します。
is_answering = False
print("=" * 20 + "思考プロセス" + "=" * 20)
for chunk in response:
# 思考プロセスと応答の両方が空のチャンクは無視します。
message = chunk.output.choices[0].message
reasoning_content_chunk = message.get("reasoning_content", None)
if (chunk.output.choices[0].message.content == [] and
reasoning_content_chunk == ""):
pass
else:
# 現在のチャンクが思考プロセスの一部である場合。
if reasoning_content_chunk != None and chunk.output.choices[0].message.content == []:
print(chunk.output.choices[0].message.reasoning_content, end="")
reasoning_content += chunk.output.choices[0].message.reasoning_content
# 現在のチャンクが応答の一部である場合。
elif chunk.output.choices[0].message.content != []:
if not is_answering:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content[0]["text"], end="")
answer_content += chunk.output.choices[0].message.content[0]["text"]
# 完全な思考プロセスと完全な応答を出力するには、次のコードのコメントを解除して実行します。
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(f"{answer_content}")Java
// DashScope SDK v2.21.10 以降が必要です。
import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.exception.InputRequiredException;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// これはシンガポールリージョンのベース URL を設定します。中国 (北京) の場合は、この値を "https://dashscope.aliyuncs.com/api/v1" に変更してください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(MultiModalConversationResult message) {
String re = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String reasoning = Objects.isNull(re)?"":re; // 値が null の場合は空の文字列を使用します
List<Map<String, Object>> content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================思考プロセス====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (Objects.nonNull(content) && !content.isEmpty()) {
Object text = content.get(0).get("text");
finalContent.append(content.get(0).get("text"));
if (!isFirstPrint) {
System.out.println("\n====================完全な応答====================");
isFirstPrint = true;
}
System.out.print(text);
}
}
public static MultiModalConversationParam buildMultiModalConversationParam(MultiModalMessage Msg) {
return MultiModalConversationParam.builder()
// API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
// 環境変数が設定されていない場合は、次の行を Model Studio の API キーに置き換えます: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// この例では qvq-max を使用しています。他のモデル名に置き換えることができます。
.model("qvq-max")
.messages(Arrays.asList(Msg))
.incrementalOutput(true)
.build();
}
public static void streamCallWithMessage(MultiModalConversation conv, MultiModalMessage Msg)
throws NoApiKeyException, ApiException, InputRequiredException, UploadFileException {
MultiModalConversationParam param = buildMultiModalConversationParam(Msg);
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message -> {
handleGenerationResult(message);
});
}
public static void main(String[] args) {
try {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"),
Collections.singletonMap("text", "この問題を解いてください")))
.build();
streamCallWithMessage(conv, userMsg);
// 最終結果を出力します。
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================完全な応答====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | UploadFileException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}HTTP
Curl
# ======= 重要事項 =======
# この URL はシンガポールリージョン用です。中国 (北京) の場合は、URL を 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' に変更してください。
# API キーはリージョンによって異なります。キーの取得先: https://bailian.console.alibabacloud.com/?tab=model#/api-key
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qvq-max",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題を解いてください"}
]
}
]
}
}'コア機能
思考プロセス
問題解決やレポート分析など、詳細な思考プロセスが必要なシナリオでは、enable_thinking パラメーターで思考モードを有効にできます。以下にその方法の例を示します。
OpenAI 互換
enable_thinking および thinking_budget パラメーターは、標準外の OpenAI パラメーターです。これらのパラメーターを渡す方法は SDK によって異なります。
Python SDK:
extra_body辞書を介して渡します。Node.js SDK: トップレベルパラメーターとして直接渡します。
import os
from openai import OpenAI
client = OpenAI(
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください。
# 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に変更してください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # 完全な思考プロセスを格納します。
answer_content = "" # 完全な応答を格納します。
is_answering = False # 思考プロセスが終了し、応答が開始されたかどうかを追跡します。
enable_thinking = True
# チャット補完リクエストを作成します。
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
},
},
{"type": "text", "text": "この問題をどうやって解きますか?"},
],
},
],
stream=True,
# enable_thinking パラメーターは思考プロセスを有効にし、thinking_budget パラメーターは推論プロセスの最大トークン数を設定します。
# qwen3.5-plus、qwen3-vl-plus、および qwen3-vl-flash モデルでは、enable_thinking を使用して思考を有効または無効にできます (qwen3.5-plus ではデフォルトで有効です)。qwen3-vl-235b-a22b-thinking のように 'thinking' サフィックスを持つモデルの場合、enable_thinking は true にしか設定できません。このパラメーターは他の Qwen-VL モデルには適用されません。
extra_body={
'enable_thinking': enable_thinking
},
# 最後のチャンクでトークン使用量を返すには、以下をコメント解除します。
# stream_options={
# "include_usage": True
# }
)
if enable_thinking:
print("\n" + "=" * 20 + "思考プロセス" + "=" * 20 + "\n")
for chunk in completion:
# chunk.choices が空の場合は、使用量を出力します。
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 思考プロセスを出力します。
if hasattr(delta, 'reasoning_content') and delta.reasoning_content is not None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 完全な応答の開始。
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20 + "\n")
is_answering = True
# ストリーミング中に応答を出力します。
if delta.content:
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(answer_content)import OpenAI from "openai";
// OpenAI クライアントを初期化します。
const openai = new OpenAI({
// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
// 環境変数が設定されていない場合は、次の行を Alibaba Cloud Model Studio の API キーに置き換えます: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください。
// 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に変更してください。
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
let enableThinking = true;
let messages = [
{
role: "user",
content: [
{ type: "image_url", image_url: { "url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg" } },
{ type: "text", text: "この問題を解いてください" },
]
}]
async function main() {
try {
const stream = await openai.chat.completions.create({
model: 'qwen3.5-plus',
messages: messages,
stream: true,
// 注: Node.js SDK では、`enable_thinking` のような非標準パラメーターは `extra_body` 内ではなく、トップレベルのプロパティとして渡します。
enable_thinking: enableThinking
});
if (enableThinking){console.log('\n' + '='.repeat(20) + '思考プロセス' + '='.repeat(20) + '\n');}
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nUsage:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// 思考プロセスを処理します。
if (delta.reasoning_content) {
process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
// 最終的な応答を処理します。
else if (delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + '完全な応答' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();# ======= 重要事項 =======
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# === 実行前にこのコメントを削除してください ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3.5-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
}
},
{
"type": "text",
"text": "この問題を解いてください"
}
]
}
],
"stream":true,
"stream_options":{"include_usage":true},
"enable_thinking": true
}'DashScope
import os
import dashscope
from dashscope import MultiModalConversation
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
enable_thinking = True
messages = [
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題をどうやって解きますか?"}
]
}
]
response = MultiModalConversation.call(
# 環境変数が設定されていない場合は、次の行を Alibaba Cloud Model Studio の API キーに置き換えます: api_key="sk-xxx",
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3.5-plus",
messages=messages,
stream=True,
# enable_thinking パラメーターは思考プロセスを有効にします。
# qwen3.5-plus、qwen3-vl-plus、および qwen3-vl-flash モデルでは、enable_thinking を使用して思考を有効または無効にできます (qwen3.5-plus ではデフォルトで有効です)。qwen3-vl-235b-a22b-thinking のように 'thinking' サフィックスを持つモデルの場合、enable_thinking は true にしか設定できません。このパラメーターは他の Qwen-VL モデルには適用されません。
enable_thinking=enable_thinking
)
# 完全な思考プロセスを格納します。
reasoning_content = ""
# 完全な応答を格納します。
answer_content = ""
# 最終的な応答がいつ開始されるかを追跡します。
is_answering = False
if enable_thinking:
print("=" * 20 + "思考プロセス" + "=" * 20)
for chunk in response:
# 思考プロセスと応答の両方が空の場合は、チャンクを無視します。
message = chunk.output.choices[0].message
reasoning_content_chunk = message.get("reasoning_content", None)
if (not chunk.output.choices[0].message.content and not reasoning_content_chunk):
pass
else:
# 現在のチャンクが思考プロセスの一部である場合。
if reasoning_content_chunk and not chunk.output.choices[0].message.content:
print(chunk.output.choices[0].message.reasoning_content, end="")
reasoning_content += chunk.output.choices[0].message.reasoning_content
# 現在のチャンクが応答の一部である場合。
elif chunk.output.choices[0].message.content:
if not is_answering:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content[0]["text"], end="")
answer_content += chunk.output.choices[0].message.content[0]["text"]
# 完全な思考プロセスと完全な応答を出力するには、次のコードのコメントを解除して実行します。
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(f"{answer_content}")// DashScope SDK v2.21.10 以降が必要です。
import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.exception.InputRequiredException;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
static {Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(MultiModalConversationResult message) {
String re = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String reasoning = Objects.isNull(re) ? "" : re;
List<Map<String, Object>> content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================思考プロセス====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (Objects.nonNull(content) && !content.isEmpty()) {
Object text = content.get(0).get("text");
finalContent.append(text);
if (!isFirstPrint) {
System.out.println("\n====================完全な応答====================");
isFirstPrint = true;
}
System.out.print(text);
}
}
public static MultiModalConversationParam buildMultiModalConversationParam(MultiModalMessage Msg) {
return MultiModalConversationParam.builder()
// 環境変数が設定されていない場合は、次の行を Alibaba Cloud Model Studio の API キーに置き換えます: .apiKey("sk-xxx")
// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(Msg))
.enableThinking(true)
.incrementalOutput(true)
.build();
}
public static void streamCallWithMessage(MultiModalConversation conv, MultiModalMessage Msg)
throws NoApiKeyException, ApiException, InputRequiredException, UploadFileException {
MultiModalConversationParam param = buildMultiModalConversationParam(Msg);
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message -> {
handleGenerationResult(message);
});
}
public static void main(String[] args) {
try {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"),
Collections.singletonMap("text", "この問題を解いてください")))
.build();
streamCallWithMessage(conv, userMsg);
// ストリーム終了後に完全な応答を出力するには、コメントを解除します。
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================完全な応答====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | UploadFileException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}# ======= 重要事項 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題を解いてください"}
]
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true
}
}'思考の長さの制限
モデルが長すぎる思考プロセスを生成するのを防ぐには、thinking_budget パラメーターを使用して、モデルが生成するトークンの数を制限できます。思考プロセスがこの制限を超えると、コンテンツは切り捨てられ、モデルはすぐに最終的な回答の生成を開始します。デフォルトでは、thinking_budget は、モデルの最大の Chain-of-Thought の長さに設定されています。詳細については、「モデルリスト」をご参照ください。
thinking_budget パラメーターは、Qwen3.6、Qwen3.5、Qwen3-VL (思考モード)、kimi-k2.6、および kimi-k2.5 (思考モード) でサポートされています。
OpenAI 互換
thinking_budget は、OpenAI の標準パラメーターではありません。OpenAI Python SDK を使用する場合は、extra_body で渡します。
import os
from openai import OpenAI
client = OpenAI(
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください。
# 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に変更してください。
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # 完全な思考プロセスを格納します。
answer_content = "" # 完全な応答を格納します。
is_answering = False # 思考プロセスが終了し、応答が開始されたかどうかを追跡します。
enable_thinking = True
# チャット補完リクエストを作成します。
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
},
},
{"type": "text", "text": "この問題をどうやって解きますか?"},
],
},
],
stream=True,
# enable_thinking パラメーターは思考プロセスを有効にします。thinking_budget パラメーターは思考プロセスの最大トークン数を設定します。
# qwen3.5-plus、qwen3-vl-plus、および qwen3-vl-flash では、enable_thinking を使用して思考を有効または無効にできます (qwen3.5-plus ではデフォルトで有効)。'thinking' サフィックスを持つモデル (例:qwen3-vl-235b-a22b-thinking) では、enable_thinking を有効にする必要があります。このパラメーターは他の Qwen-VL モデルには適用されません。
extra_body={
'enable_thinking': enable_thinking,
"thinking_budget": 81920},
# 最後のチャンクでトークン使用量を返すには、以下をコメント解除します。
# stream_options={
# "include_usage": True
# }
)
if enable_thinking:
print("\n" + "=" * 20 + "思考プロセス" + "=" * 20 + "\n")
for chunk in completion:
# chunk.choices が空の場合は、使用量を出力します。
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 思考プロセスを出力します。
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 応答の開始。
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20 + "\n")
is_answering = True
# ストリーミング中に応答を出力します。
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(answer_content)import OpenAI from "openai";
// OpenAI クライアントを初期化します。
const openai = new OpenAI({
// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
// DASHSCOPE_API_KEY 環境変数が設定されていない場合は、API キーを直接設定します: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1 に変更してください。
// 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に変更してください。
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
let enableThinking = true;
let messages = [
{
role: "user",
content: [
{ type: "image_url", image_url: { "url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg" } },
{ type: "text", text: "この問題を解いてください" },
]
}]
async function main() {
try {
const stream = await openai.chat.completions.create({
model: 'qwen3.5-plus',
messages: messages,
stream: true,
// 注: Python SDK とは異なり、Node.js SDK は enable_thinking のような非標準パラメーターを extra_body 内ではなく、トップレベルのプロパティとして渡します。
enable_thinking: enableThinking,
thinking_budget: 81920
});
if (enableThinking){console.log('\n' + '='.repeat(20) + '思考プロセス' + '='.repeat(20) + '\n');}
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nUsage:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// 思考プロセスを処理します。
if (delta.reasoning_content) {
process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
// 最終的な応答を処理します。
else if (delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + '完全な応答' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();# ======= 重要 =======
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に変更してください。
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# === 実行前にこのコメントを削除してください ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3.5-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
}
},
{
"type": "text",
"text": "この問題を解いてください"
}
]
}
],
"stream":true,
"stream_options":{"include_usage":true},
"enable_thinking": true,
"thinking_budget": 81920
}'DashScope
import os
import dashscope
from dashscope import MultiModalConversation
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
# 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
enable_thinking = True
messages = [
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題をどうやって解きますか?"}
]
}
]
response = MultiModalConversation.call(
# DASHSCOPE_API_KEY 環境変数が設定されていない場合は、API キーを直接設定します: api_key="sk-xxx",
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3.5-plus",
messages=messages,
stream=True,
# enable_thinking パラメーターは思考プロセスを有効にします。
# qwen3.5-plus、qwen3-vl-plus、および qwen3-vl-flash では、enable_thinking を使用して思考を有効または無効にできます (qwen3.5-plus ではデフォルトで有効)。'thinking' サフィックスを持つモデル (例:qwen3-vl-235b-a22b-thinking) では、enable_thinking を有効にする必要があります。このパラメーターは他の Qwen-VL モデルには適用されません。
enable_thinking=enable_thinking,
# thinking_budget パラメーターは思考プロセスの最大トークン数を設定します。
thinking_budget=81920,
)
# 完全な思考プロセスを格納します。
reasoning_content = ""
# 完全な応答を格納します。
answer_content = ""
# 思考プロセスが終了し、応答が開始されたかどうかを追跡します。
is_answering = False
if enable_thinking:
print("=" * 20 + "思考プロセス" + "=" * 20)
for chunk in response:
# 思考プロセスと応答の両方が空の場合は、チャンクを無視します。
message = chunk.output.choices[0].message
reasoning_content_chunk = message.get("reasoning_content", None)
if (chunk.output.choices[0].message.content == [] and
reasoning_content_chunk == ""):
pass
else:
# 現在のチャンクが思考プロセスの一部である場合。
if reasoning_content_chunk != None and chunk.output.choices[0].message.content == []:
print(chunk.output.choices[0].message.reasoning_content, end="")
reasoning_content += chunk.output.choices[0].message.reasoning_content
# 現在のチャンクが応答の一部である場合。
elif chunk.output.choices[0].message.content != []:
if not is_answering:
print("\n" + "=" * 20 + "完全な応答" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content[0]["text"], end="")
answer_content += chunk.output.choices[0].message.content[0]["text"]
# 完全な思考プロセスと応答を出力するには、次のコードのコメントを解除して実行します。
# print("=" * 20 + "完全な思考プロセス" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "完全な応答" + "=" * 20 + "\n")
# print(f"{answer_content}")// DashScope SDK v2.21.10 以降が必要です。
import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.exception.InputRequiredException;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に変更してください。
static {Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(MultiModalConversationResult message) {
String re = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String reasoning = Objects.isNull(re)?"":re; // null の場合は空の文字列に設定
List<Map<String, Object>> content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================思考プロセス====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (Objects.nonNull(content) && !content.isEmpty()) {
Object text = content.get(0).get("text");
finalContent.append(content.get(0).get("text"));
if (!isFirstPrint) {
System.out.println("\n====================完全な応答====================");
isFirstPrint = true;
}
System.out.print(text);
}
}
public static MultiModalConversationParam buildMultiModalConversationParam(MultiModalMessage Msg) {
return MultiModalConversationParam.builder()
// デフォルトでは、API キーは DASHSCOPE_API_KEY 環境変数から読み取られます。あるいは、直接渡すこともできます: .apiKey("sk-xxx")
// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(Msg))
.enableThinking(true)
.thinkingBudget(81920)
.incrementalOutput(true)
.build();
}
public static void streamCallWithMessage(MultiModalConversation conv, MultiModalMessage Msg)
throws NoApiKeyException, ApiException, InputRequiredException, UploadFileException {
MultiModalConversationParam param = buildMultiModalConversationParam(Msg);
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message -> {
handleGenerationResult(message);
});
}
public static void main(String[] args) {
try {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"),
Collections.singletonMap("text", "この問題を解いてください")))
.build();
streamCallWithMessage(conv, userMsg);
// 最終結果を出力します。
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================完全な応答====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | UploadFileException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}# ======= 重要 =======
# API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンの場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# 中国 (北京) リージョンの場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に変更してください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "この問題を解いてください"}
]
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"thinking_budget": 81920
}
}'その他の使用方法
推論に加えて、視覚的推論モデルには視覚理解モデルのすべての機能が含まれており、これらを組み合わせてより複雑なシナリオを処理できます。
課金
総コスト = (入力トークン × 入力トークン単価) + (出力トークン × 出力トークン単価)
思考プロセス (
reasoning_content) は出力トークンとして課金されます。思考モード中にモデルが思考プロセスを出力しない場合は、ノンシンキングモードの料金で課金されます。画像と動画のトークン計算方法の詳細については、「画像と動画の理解」をご参照ください。
API
視覚的推論モデルの入力および出力パラメーターについては、「Qwen」をご参照ください。
エラーコード
モデルの呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」を参照して解決してください。