視覚理解モデルは、提供された画像や動画に基づいて質問に回答します。単一または複数の画像入力に対応し、画像キャプション、視覚的な質問応答、物体位置特定など、さまざまなタスクに適しています。
サポートリージョン: シンガポール、米国 (バージニア)、中国 (北京)。 API キーを使用してください。
オンラインで試す: Vision (シンガポール)、Vision (米国 (バージニア))、または Vision (中国 (北京))
クイックスタート
前提条件
API キーを取得し、環境変数としてエクスポートします。
SDK を使用して呼び出しを行う場合は、SDK をインストールします。DashScope Python SDK はバージョン 1.24.6 以降、DashScope Java SDK はバージョン 2.21.10 以降である必要があります。
次の例は、モデルを呼び出して画像の内容を説明する方法を示しています。ローカルファイルと画像の制限の詳細については、「ローカルファイルの渡し方」および「画像の制限」をご参照ください。
OpenAI 互換
Python
from openai import OpenAI
import os
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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"
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
},
},
{"type": "text", "text": "画像には何が描かれていますか?"},
],
},
],
)
print(completion.choices[0].message.content)応答
これはビーチで撮影された写真です。写真には、砂の上に座っている人と犬が写っており、背景には海と空が広がっています。人と犬は交流しているようで、犬の前足が人の手に乗っています。フレームの右側から太陽光が差し込み、シーンに暖かい雰囲気を加えています。Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages: [
{
role: "user",
content: [{
type: "image_url",
image_url: {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
},
{
type: "text",
text: "画像には何が描かれていますか?"
}
]
}
]
});
console.log(response.choices[0].message.content);
}
main()応答
これはビーチで撮影された写真です。写真には、砂の上に座っている人と犬が写っており、背景には海と空が広がっています。人と犬は交流しているようで、犬の前足が人の手に乗っています。フレームの右側から太陽光が差し込み、シーンに暖かい雰囲気を加えています。curl
# ======= 重要 =======
# 以下はシンガポールリージョンの 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/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://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}},
{"type": "text", "text": "画像には何が描かれていますか?"}
]
}]
}'応答
{
"choices": [
{
"message": {
"content": "これはビーチで撮影された写真です。写真には、砂の上に座っている人と犬が写っており、背景には海と空が広がっています。人と犬は交流しているようで、犬の前足が人の手に乗っています。フレームの右側から太陽光が差し込み、シーンに暖かい雰囲気を加えています。",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 1270,
"completion_tokens": 54,
"total_tokens": 1324
},
"created": 1725948561,
"system_fingerprint": null,
"model": "qwen3.5-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# 以下はシンガポールリージョンの 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'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"text": "画像には何が描かれていますか?"}]
}]
response = dashscope.MultiModalConversation.call(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])応答
これはビーチで撮影された写真です。写真には女性と犬が写っています。女性は砂の上に座り、笑顔で犬と交流しています。犬は首輪をしており、女性と握手しているように見えます。背景は海と空で、彼らに降り注ぐ太陽光が暖かい雰囲気を醸し出しています。Java
import java.util.Arrays;
import java.util.Collections;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
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";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"),
Collections.singletonMap("text", "画像には何が描かれていますか?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}応答
これはビーチで撮影された写真です。写真には、チェック柄のシャツを着た人と首輪をつけた犬が写っています。人と犬は向かい合って座っており、交流しているように見えます。背景は海と空で、彼らに降り注ぐ太陽光が暖かい雰囲気を醸し出しています。curl
# ======= 重要 =======
# 以下はシンガポールリージョンの 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 に置き換えてください
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-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' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"text": "画像には何が描かれていますか?"}
]
}
]
}
}'応答
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"text": "これはビーチで撮影された写真です。写真には、チェック柄のシャツを着た人と首輪をつけた犬が写っています。彼らは砂の上に座っており、背景には海と空が広がっています。フレームの右側から太陽光が差し込み、シーンに暖かい雰囲気を加えています。"
}
]
}
}
]
},
"usage": {
"output_tokens": 55,
"input_tokens": 1271,
"image_tokens": 1247
},
"request_id": "ccf845a3-dc33-9cda-b581-20fe7dc23f70"
}モデルの選択
Qwen3.5 が推奨される選択肢です:これは最新世代の視覚理解モデルであり、マルチモーダル推論、2D/3D 画像理解、複雑なドキュメント解析、ビジュアルプログラミング、動画理解、マルチモーダルエージェントに優れています。中国本土およびシンガポールリージョンでサポートされています。
qwen3.5-plus:Qwen シリーズで最も強力な視覚理解モデルです。推奨されます。qwen3.5-flash:より高速で手頃な価格のモデルです。パフォーマンスとコストのバランスが取れた費用対効果の高い選択肢で、高速な応答時間が重要なシナリオに最適です。qwen3.5-397b-a17b、qwen3.5-122b-a10b、qwen3.5-27b、qwen3.5-35b-a3b:オープンソースの Qwen3.5 モデルです。
Qwen3-VL は、高精度の物体認識と位置特定 (3D 位置特定を含む)、エージェントツール呼び出し、ドキュメントとウェブページの解析、複雑な問題解決、長時間動画理解にも適しています。このシリーズのモデルの比較は次のとおりです:
qwen3-vl-plus:Qwen3-VL シリーズで最も強力なモデルです。qwen3-vl-flash:このモデルはより高速で費用対効果が高いです。パフォーマンスとコストのバランスが取れた価値の高いオプションであり、応答速度に敏感なシナリオに適しています。
Qwen2.5-VL は、単純な画像キャプションや短い動画の要約抽出などの一般的なタスクに適しています。このシリーズのモデルの比較は次のとおりです:
qwen-vl-max(Qwen2.5-VL の一部):Qwen2.5-VL シリーズで最高のパフォーマンスを発揮するモデルです。qwen-vl-plus(Qwen2.5-VL の一部):このモデルはより高速で、パフォーマンスとコストのバランスが優れています。
モデル名、コンテキスト、価格、スナップショットバージョンについては、「モデルリスト」をご参照ください。同時リクエスト制限については、「レート制限」をご参照ください。
パフォーマンス概要
視覚的な質問応答
画像の内容を説明したり、分類してラベル付けしたりします。例えば、人物、場所、動物、植物などを識別します。
日差しが眩しい場合、この写真のどのアイテムを使うべきですか? | 日差しが眩しいときは、写真のピンクのサングラスを使用すべきです。サングラスは強い光を効果的に遮断し、目への紫外線ダメージを軽減し、明るい日差しの中で視力を保護し、視覚的な快適さを向上させるのに役立ちます。 |
クリエイティブライティング
画像や動画の内容に基づいて、生き生きとしたテキスト記述を生成します。これは、物語の執筆、コピーライティング、短い動画のスクリプトなど、クリエイティブなシナリオに適しています。
画像の内容に基づいて、面白い SNS 投稿を作成してください。 | 承知いたしました。この写真は豊かな中秋節の雰囲気に満ちており、古典的な要素と現代的な要素が巧みに組み合わされています。写真の主要な要素に基づいて、さまざまなスタイルの SNS 投稿をいくつか用意しましたので、お選びください。 詩的で美しいスタイル 今宵、月は明るく誰もが見守る中、秋の想いはどこに落ちるのだろう。嫦娥は月に飛び、玉兎は薬を搗く—古人のロマンスが今宵、灯される。この明るい月があなたの帰り道を照らし、私の深い想いを運びますように。中秋節おめでとうございます! 温かく祝福するスタイル 月は満ち、人々は再会する。中秋の夜は最も優しい。花火が咲き、空の満月を愛で、月餅を一口食べ、平和と健康を願う。あなたと私の心の中の願いがすべて叶いますように。皆様、中秋節おめでとうございます。ご家族の幸せをお祈りします! |
OCR と情報抽出
画像内のテキストや数式を認識したり、領収書、証明書、フォームから情報を抽出したりします。書式付きテキスト出力もサポートしています。Qwen3-VL モデルは、言語サポートを 33 言語に拡大しました。サポートされている言語のリストについては、「モデル機能の比較」をご参照ください。
画像から次の情報を抽出してください:['Invoice Code', 'Invoice Number', 'Destination', 'Fuel Surcharge', 'Fare', 'Travel Date', 'Departure Time', 'Train Number', 'Seat Number']。JSON 形式で出力してください。 | { "Invoice Code": "221021325353", "Invoice Number": "10283819", "Destination": "Development Zone", "Fuel Surcharge": "2.0", "Fare": "8.00<Full>", "Travel Date": "2013-06-29", "Departure Time": "Serial", "Train Number": "040", "Seat Number": "371" } |
多分野にわたる問題解決
画像内の問題、例えば数学、物理、化学の問題を解決します。この機能は、小中高、大学、成人教育に適しています。
画像内の数学の問題を段階的に解いてください。 |
|
ビジュアルプログラミング
画像や動画からコードを生成します。これは、デザインの下書きやウェブサイトのスクリーンショットなどから HTML、CSS、JS コードを作成するために使用できます。
私のスケッチに基づいて、黒をメインカラーとして HTML と CSS を使用してウェブページをデザインしてください。 |
ウェブページのプレビュー |
物体位置特定
このモデルは 2D および 3D の位置特定をサポートしており、物体の向き、視点の変化、およびオクルージョン関係を判断するために使用できます。3D 位置特定は Qwen3-VL モデルの新機能です。
Qwen2.5-VL モデルの場合、物体検出は 480 × 480 から 2560 × 2560 の解像度範囲内で堅牢です。この範囲外では、検出精度が低下し、時折バウンディングボックスがずれることがあります。
位置特定の結果を元の画像に描画するには、「よくある質問」をご参照ください。
2D 位置特定
| 2D 位置特定結果の可視化
|
ドキュメント解析
スキャンや画像 PDF などの画像ベースのドキュメントを QwenVL HTML または QwenVL Markdown 形式に解析します。この形式は、テキストを正確に認識するだけでなく、画像やテーブルなどの要素の位置情報も取得します。Qwen3-VL モデルは、ドキュメントを Markdown 形式に解析する機能を追加しました。
推奨されるプロンプトは、qwenvl html(HTML 形式に解析) またはqwenvl markdown(Markdown 形式に解析) です。
qwenvl markdown. |
結果の可視化 |
動画理解
特定のイベントの位置特定やタイムスタンプの取得、または主要な時間帯の要約生成など、動画コンテンツを分析します。
動画内の人物の一連の行動を説明してください。start_time、end_time、event を含む JSON 形式で出力してください。タイムスタンプには HH:mm:ss を使用してください。 | { "events": [ { "start_time": "00:00:00", "end_time": "00:00:05", "event": "人物が段ボール箱を持ってテーブルに向かって歩き、テーブルの上に置きます。" }, { "start_time": "00:00:05", "end_time": "00:00:15", "event": "人物がスキャナーを手に取り、段ボール箱のラベルをスキャンします。" }, { "start_time": "00:00:15", "end_time": "00:00:21", "event": "人物がスキャナーを元の場所に戻し、次にペンを手に取ってノートに情報を書き込みます。"}] } |
コア機能
思考モードの有効化/無効化
qwen3.5、qwen3-vl-plus、およびqwen3-vl-flashシリーズのモデルは、ハイブリッド思考モデルです。これらは思考してから応答することも、直接応答することもできます。enable_thinkingパラメーターを使用して、思考モードを有効にするかどうかを制御します:true:思考モードが有効になります。qwen3.5シリーズのデフォルト値はtrueです。false:思考モードを無効にします。qwen3-vl-plusおよびqwen3-vl-flashシリーズのデフォルト値はfalseです。
thinkingサフィックスを持つモデル、例えばqwen3-vl-235b-a22b-thinkingは、思考専用モデルです。これらは常に応答する前に思考し、この機能を無効にすることはできません。
モデル構成:エージェントツール呼び出しを伴わない一般的な会話シナリオでは、最適なパフォーマンスを維持するために
System Messageを設定しないことを推奨します。モデルのロール設定や出力形式の要件などの命令は、User Messageを通じて渡すことができます。ストリーミング出力を優先:思考モードが有効な場合、ストリーミングおよび非ストリーミングの両方の出力がサポートされます。応答内容が長いためにタイムアウトを避けるため、ストリーミング出力を優先して使用することを推奨します。
思考の長さを制限:ディープシンキングモデルは、時々長い推論プロセスを出力します。
thinking_budgetパラメーターを使用して、思考プロセスの長さを制限できます。モデルの思考プロセス中に生成されたトークン数がthinking_budgetを超えると、推論内容は切り捨てられ、モデルはすぐに最終応答の生成を開始します。thinking_budgetのデフォルト値は、モデルの最大 CoT (Chain-of-Thought) 長であり、「モデルリスト」に記載されています。
OpenAI 互換
enable_thinking パラメーターは標準の OpenAI パラメーターではありません。OpenAI Python SDK を使用する場合、extra_body を通じて渡すことができます。
import os
from openai import OpenAI
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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-vl-plus および qwen3-vl-flash の場合、enable_thinking で思考を有効または無効にできます。'thinking' サフィックスを持つモデル (例: qwen3-vl-235b-a22b-thinking) の場合、enable_thinking は true にしか設定できません。これは他の 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("\n使用量:")
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
# 応答プロセスを出力
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/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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 では、enableThinking のような非標準パラメーターはトップレベルのプロパティとして渡され、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('\n使用量:');
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);
}
}
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/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(
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx",
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3.5-plus",
messages=messages,
stream=True,
# enable_thinking パラメーターは思考プロセスを有効にします。
# qwen3-vl-plus および qwen3-vl-flash の場合、enable_thinking で思考を有効または無効にできます。'thinking' サフィックスを持つモデル (例: qwen3-vl-235b-a22b-thinking) の場合、enable_thinking は true にしか設定できません。これは他の 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 is not 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 バージョン >= 2.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(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()
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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("例外が発生しました: {}", e.getMessage());
}
System.exit(0);
}
}# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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
}
}'複数画像の入力
視覚理解モデルは、1 回のリクエストで複数の画像を渡すことをサポートしており、製品比較や複数ページのドキュメント処理などのタスクに使用できます。これを行うには、user message の content 配列に複数の画像オブジェクトを含めます。
画像の数は、モデルのテキストと画像の合計トークン制限によって制限されます。すべての画像とテキストの合計トークン数は、モデルの最大入力未満でなければなりません。
OpenAI 互換
Python
import os
from openai import OpenAI
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=[
{"role": "user","content": [
{"type": "image_url","image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},},
{"type": "image_url","image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},},
{"type": "text", "text": "これらの画像には何が描かれていますか?"},
],
}
],
)
print(completion.choices[0].message.content)応答
画像 1 は、ビーチで女性とラブラドールレトリバーが交流しているシーンを示しています。女性はチェック柄のシャツを着て砂の上に座り、犬と握手しています。背景は海の波と空で、写真全体が暖かく心地よい雰囲気に満ちています。
画像 2 は、森の中を歩く虎のシーンを示しています。虎の毛皮はオレンジ色で黒い縞模様があり、前進しています。周囲は密集した木々と植生で、地面は落ち葉で覆われています。写真全体が野生の自然を感じさせます。Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages: [
{role: "user",content: [
{type: "image_url",image_url: {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}},
{type: "image_url",image_url: {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"}},
{type: "text", text: "これらの画像には何が描かれていますか?" },
]}]
});
console.log(response.choices[0].message.content);
}
main()応答
最初の画像では、人と犬がビーチで交流しています。人はチェック柄のシャツを着ており、犬は首輪をしています。彼らは握手またはハイタッチをしているように見えます。
2番目の画像では、虎が森の中を歩いています。虎の毛皮はオレンジ色で黒い縞模様があり、背景は緑の木々と植生です。curl
# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンの 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 に置き換えてください
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"
}
},
{
"type": "text",
"text": "これらの画像には何が描かれていますか?"
}
]
}
]
}'応答
{
"choices": [
{
"message": {
"content": "画像 1 は、ビーチで女性とラブラドールレトリバーが交流しているシーンを示しています。女性はチェック柄のシャツを着て砂の上に座り、犬と握手しています。背景は海の景色と夕焼けの空で、写真全体が非常に暖かく調和しているように見えます。\n\n画像 2 は、森の中を歩く虎のシーンを示しています。虎の毛皮はオレンジ色で黒い縞模様があり、前進しています。周囲は密集した木々と植生で、地面は落ち葉で覆われています。写真全体が自然の野性味と生命力に満ちています。",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 2497,
"completion_tokens": 109,
"total_tokens": 2606
},
"created": 1725948561,
"system_fingerprint": null,
"model": "qwen3.5-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# 以下はシンガポールリージョンの 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'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"text": "これらの画像には何が描かれていますか?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])応答
これらの画像は、いくつかの動物と自然の風景を示しています。最初の画像では、人と犬がビーチで交流しています。2番目の画像は、森の中を歩く虎です。Java
import java.util.Arrays;
import java.util.Collections;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
Collections.singletonMap("text", "これらの画像には何が描かれていますか?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text")); }
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}応答
これらの画像は、いくつかの動物と自然の風景を示しています。
1. 最初の画像:ビーチで女性と犬が交流しています。女性はチェック柄のシャツを着て砂の上に座っており、犬は首輪をしていて、女性と握手するために前足を伸ばしています。
2. 2番目の画像:森の中を歩く虎です。虎の毛皮はオレンジ色で黒い縞模様があり、背景は木々と葉です。curl
# ======= 重要 =======
# 以下はシンガポールリージョンの 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 に置き換えてください
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# === 実行前にこのコメントを削除してください ===
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"text": "これらの画像には何が写っていますか?"}
]
}
]
}
}'応答
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"text": "これらの画像は、いくつかの動物と自然の風景を示しています。最初の画像では、人と犬がビーチで交流しています。2番目の画像は、森の中を歩く虎です。"
}
]
}
}
]
},
"usage": {
"output_tokens": 81,
"input_tokens": 1277,
"image_tokens": 2497
},
"request_id": "ccf845a3-dc33-9cda-b581-20fe7dc23f70"
}動画理解
視覚理解モデルは動画コンテンツの理解をサポートします。画像リスト (動画フレーム) または動画ファイルの形式でファイルを提供できます。以下は、URL で指定されたオンライン動画または画像リストを理解するためのコード例です。動画の制限や画像リストで渡せる画像の数に関する詳細については、「動画の制限」セクションをご参照ください。
動画ファイルの理解性能を向上させるため、最新または最近のスナップショットバージョンのモデルを使用することを推奨します。
動画ファイル
視覚理解モデルは、動画から一連のフレームを抽出してコンテンツを分析します。次の 2 つのパラメーターを使用して、フレーム抽出ポリシーを制御できます:
fps:頻度を制御します。
秒ごとに 1 フレーム。値の範囲は [0.1, 10] で、デフォルト値は 2.0 です。 高速な動きのシーン:より多くの詳細を捉えるために、より高い fps 値を設定します。
静的な動画または長時間の動画:効率のために、より低い fps 値を設定します。
max_frames:抽出されるフレームの上限。fps に基づいて計算された数が max_frames を超えると、システムは自動的にフレームを均等にサンプリングして制限内に収めます。このパラメーターは DashScope SDK でのみ有効です。
OpenAI 互換
OpenAI SDK または HTTP メソッドを使用して動画ファイルを視覚理解モデルに直接入力する場合、ユーザーメッセージの"type"パラメーターを"video_url"に設定する必要があります。
Python
import os
from openai import OpenAI
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx",
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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
# 動画ファイルを直接渡す場合、type の値を video_url に設定します
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps": 2
},
{
"type": "text",
"text": "この動画の内容は何ですか?"
}
]
}
]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{
role: "user",
content: [
// 動画ファイルを直接渡す場合、type の値を video_url に設定します
{
type: "video_url",
video_url: {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps": 2
},
{
type: "text",
text: "この動画の内容は何ですか?"
}
]
}
]
});
console.log(response.choices[0].message.content);
}
main();curl
# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンの 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 に置き換えてください
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps":2
},
{
"type": "text",
"text": "この動画の内容は何ですか?"
}
]
}
]
}'DashScope
Python
import dashscope
import os
# 以下はシンガポールリージョンの 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'
messages = [
{"role": "user",
"content": [
# fps パラメーターは動画のフレーム抽出頻度を制御し、1/fps 秒ごとに 1 フレームを抽出することを意味します。完全な使用法については、https://www.alibabacloud.com/help/model-studio/use-qwen-by-calling-api?#2ed5ee7377fum をご参照ください
{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4","fps":2},
{"text": "この動画の内容は何ですか?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key ="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus',
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// fps パラメーターは動画のフレーム抽出頻度を制御し、1/fps 秒ごとに 1 フレームを抽出することを意味します。完全な使用法については、https://www.alibabacloud.com/help/model-studio/use-qwen-by-calling-api?#2ed5ee7377fum をご参照ください
Map<String, Object> params = new HashMap<>();
params.put("video", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4");
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "この動画の内容は何ですか?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 中国 (北京) リージョンのモデルを使用する場合、中国 (北京) リージョンの API キーを使用する必要があります。API キーは https://www.alibabacloud.com/help/model-studio/get-api-key で取得できます
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= 重要 =======
# 以下はシンガポールリージョンの 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 に置き換えてください
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-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' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{"role": "user","content": [{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4","fps":2},
{"text": "この動画の内容は何ですか?"}]}]}
}'画像リスト
動画を画像リスト (事前に抽出された動画フレーム) として渡す場合、fps パラメーターを使用して、モデルに動画フレーム間の時間間隔を通知できます。これにより、モデルはイベントのシーケンス、持続時間、および動的な変化をよりよく理解できます。モデルは、fps パラメーターを使用して元の動画のフレームレートを指定することをサポートしており、これは動画フレームが元の動画から
OpenAI 互換
OpenAI SDK または HTTP リクエストを使用して動画を画像リストとして視覚理解モデルに入力する場合、ユーザーメッセージの"type"パラメーターを"video"に設定する必要があります。
Python
import os
from openai import OpenAI
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx",
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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
messages=[{"role": "user","content": [
# 画像リストを渡す場合、ユーザーメッセージの "type" パラメーターは "video" です。
{"type": "video","video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"type": "text","text": "この動画の具体的なプロセスを説明してください"},
]}]
)
print(completion.choices[0].message.content)Node.js
// 事前に package.json で "type": "module" を指定していることを確認してください。
import OpenAI from "openai";
const openai = new OpenAI({
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
messages: [{
role: "user",
content: [
{
// 画像リストを渡す場合、ユーザーメッセージの "type" パラメーターは "video" です。
type: "video",
video: [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps": 2
},
{
type: "text",
text: "この動画の具体的なプロセスを説明してください"
}
]
}]
});
console.log(response.choices[0].message.content);
}
main();curl
# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンの 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 に置き換えてください
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-plus",
"messages": [{"role": "user","content": [{"type": "video","video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"type": "text","text": "この動画の具体的なプロセスを説明してください"}]}]
}'DashScope
Python
import os
import dashscope
# 以下はシンガポールリージョンの 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'
messages = [{"role": "user",
"content": [
# 画像リストを渡す場合、fps パラメーターは Qwen3.5、Qwen3-VL、および Qwen2.5-VL シリーズのモデルに適用されます。
{"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"text": "この動画の具体的なプロセスを説明してください"}]}]
response = dashscope.MultiModalConversation.call(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Java
// DashScope SDK バージョンは 2.21.10 以降である必要があります
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3.5-plus"; // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// 画像リストを渡す場合、fps パラメーターは Qwen3.5、Qwen3-VL、および Qwen2.5-VL シリーズのモデルに適用されます。
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"));
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "この動画の具体的なプロセスを説明してください")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= 重要 =======
# 以下はシンガポールリージョンの 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 に置き換えてください
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-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' \
-d '{
"model": "qwen3.5-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
],
"fps":2
},
{
"text": "この動画の具体的なプロセスを説明してください"
}
]
}
]
}
}'ローカルファイルの渡し方 (Base64 エンコーディングまたはファイルパス)
視覚理解モデルは、ローカルファイルをアップロードする 2 つの方法を提供します:Base64 エンコーディングと直接ファイルパスアップロード。ファイルサイズと SDK の種類に基づいてアップロード方法を選択してください。具体的な推奨事項については、「ファイルアップロード方法の選び方」をご参照ください。どちらの方法も、「画像の制限」で説明されているファイル要件を満たす必要があります。
Base64 エンコーディングによるアップロード
ファイルを Base64 エンコードされた文字列に変換し、モデルに渡します。この方法は、OpenAI および DashScope SDK、および HTTP リクエストでサポートされています。
ファイルパスによるアップロード
ローカルファイルのパスを直接モデルに渡します。この方法は、DashScope Python および Java SDK でのみサポートされており、DashScope HTTP または OpenAI 互換の方法ではサポートされていません。
プログラミング言語とオペレーティングシステムに基づいてファイルパスを指定するには、以下の表をご参照ください。
画像
ファイルパスで渡す
Python
import os
import dashscope
# 以下は、シンガポールリージョンの 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'
# xxx/eagle.png を、ローカルイメージの絶対パスに置き換えます。
local_path = "xxx/eagle.png"
image_path = f"file://{local_path}"
messages = [
{'role':'user',
'content': [{'image': image_path},
{'text': 'What is depicted in the image?'}]}]
response = dashscope.MultiModalConversation.call(
# 各リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
# 環境変数を設定していない場合は、次の行を Model Studio API キーで置き換えます:api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルの一覧については、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください。
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException {
String filePath = "file://"+localPath;
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>(){{put("image", filePath);}},
new HashMap<String, Object>(){{put("text", "画像には何が描かれていますか?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));}
public static void main(String[] args) {
try {
// xxx/eagle.png をローカル画像の絶対パスに置き換えてください
callWithLocalFile("xxx/eagle.png");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Base64 エンコーディングで渡す
OpenAI 互換
Python
from openai import OpenAI
import os
import base64
# エンコーディング関数:ローカルファイルを Base64 エンコードされた文字列に変換します
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# xxx/eagle.png をローカル画像の絶対パスに置き換えてください
base64_image = encode_image("xxx/eagle.png")
client = OpenAI(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx"
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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
# Base64 画像データを渡します。画像形式 (つまり image/{format}) がサポートされている画像のリストの Content Type と一致する必要があることに注意してください。"f" は文字列フォーマットメソッドです。
# PNG 画像: f"data:image/png;base64,{base64_image}"
# JPEG 画像: f"data:image/jpeg;base64,{base64_image}"
# WEBP 画像: f"data:image/webp;base64,{base64_image}"
"image_url": {"url": f"data:image/png;base64,{base64_image}"},
},
{"type": "text", "text": "画像には何が描かれていますか?"},
],
}
],
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を 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"
}
);
const encodeImage = (imagePath) => {
const imageFile = readFileSync(imagePath);
return imageFile.toString('base64');
};
// xxx/eagle.png をローカル画像の絶対パスに置き換えてください
const base64Image = encodeImage("xxx/eagle.png")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3.5-plus", // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages: [
{"role": "user",
"content": [{"type": "image_url",
// Base64 を渡す場合、画像形式 (つまり image/{format}) がサポートされている画像のリストの Content Type と一致する必要があることに注意してください。
// PNG 画像: data:image/png;base64,${base64Image}
// JPEG 画像: data:image/jpeg;base64,${base64Image}
// WEBP 画像: data:image/webp;base64,${base64Image}
"image_url": {"url": `data:image/png;base64,${base64Image}`},},
{"type": "text", "text": "画像には何が描かれていますか?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();curl
ファイルを Base64 エンコードされた文字列に変換する方法の例については、「コード例」をご参照ください。
表示の都合上、コード内の Base64 エンコードされた文字列
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は切り捨てられています。完全なエンコードされた文字列を渡す必要があります。
# ======= 重要 =======
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンの 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 に置き換えてください
# === 実行前にこのコメントを削除してください ===
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": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA"}},
{"type": "text", "text": "画像には何が描かれていますか?"}
]
}]
}'DashScope
Python
import base64
import os
import dashscope
# 以下はシンガポールリージョンの 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'
# エンコーディング関数:ローカルファイルを Base64 エンコードされた文字列に変換します
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# xxxx/eagle.png をローカル画像の絶対パスに置き換えてください
base64_image = encode_image("xxxx/eagle.png")
messages = [
{
"role": "user",
"content": [
# Base64 を渡す場合、画像形式 (つまり image/{format}) がサポートされている画像のリストの Content Type と一致する必要があることに注意してください。"f" は文字列フォーマットメソッドです。
# PNG 画像: f"data:image/png;base64,{base64_image}"
# JPEG 画像: f"data:image/jpeg;base64,{base64_image}"
# WEBP 画像: f"data:image/webp;base64,{base64_image}"
{"image": f"data:image/png;base64,{base64_image}"},
{"text": "画像には何が描かれていますか?"},
],
},
]
response = dashscope.MultiModalConversation.call(
# リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
# 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
messages=messages,
)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Base64;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeImageToBase64(String imagePath) throws IOException {
Path path = Paths.get(imagePath);
byte[] imageBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(imageBytes);
}
public static void callWithLocalFile(String localPath) throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Image = encodeImageToBase64(localPath); // Base64 エンコーディング
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
new HashMap<String, Object>() {{ put("image", "data:image/png;base64," + base64Image); }},
new HashMap<String, Object>() {{ put("text", "画像には何が描かれていますか?"); }}
)).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// リージョンごとに API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// xxx/eagle.png をローカル画像の絶対パスに置き換えてください
callWithLocalFile("xxx/eagle.png");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
ファイルを Base64 エンコードされた文字列に変換する方法の例については、「コード例」をご参照ください。
表示の都合上、コード内の Base64 エンコードされた文字列
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は切り捨てられています。完全なエンコードされた文字列を渡す必要があります。
# ======= 重要 =======
# 以下は、シンガポール リージョンの 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 に置き換えてください。
# リージョンごとに API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key を参照してください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "画像に何が描かれていますか?"}
]
}
]
}
}'動画ファイル
この例では、ローカルに保存された test.mp4 ファイルを使用します。
ファイルパスを指定して渡す
Python
import os
import dashscope
# 以下はシンガポールリージョン向けの 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'
# xxxx/test.mp4 をご利用のローカル動画ファイルの絶対パスに置き換えてください。
local_path = "xxx/test.mp4"
video_path = f"file://{local_path}"
messages = [
{'role':'user',
# fps パラメーターは動画から抽出するフレーム数を制御します。つまり、1/fps 秒ごとに 1 フレームが抽出されます。
'content': [{'video': video_path,"fps":2},
{'text': 'この動画にはどのようなシーンが描かれていますか?'}]}]
response = MultiModalConversation.call(
# 各リージョンの API キーは異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus',
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョン向けの base_url です。米国 (バージニア) リージョンでモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国 (北京) リージョンでモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException {
String filePath = "file://"+localPath;
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>()
{{
put("video", filePath);// fps パラメーターは動画から抽出するフレーム数を制御します。つまり、1/fps 秒ごとに 1 フレームが抽出されます。
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "この動画にはどのようなシーンが描かれていますか?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 各リージョンの API キーは異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));}
public static void main(String[] args) {
try {
// xxxx/test.mp4 をご利用のローカル動画ファイルの絶対パスに置き換えてください。
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Base64 エンコーディング入力
OpenAI 互換
Python
from openai import OpenAI
import os
import base64
# エンコーディング関数:ローカルファイルを Base64 エンコード文字列に変換します。
def encode_video(video_path):
with open(video_path, "rb") as video_file:
return base64.b64encode(video_file.read()).decode("utf-8")
# xxxx/test.mp4 をご利用のローカル動画ファイルの絶対パスに置き換えてください。
base64_video = encode_video("xxx/test.mp4")
client = OpenAI(
# 各リージョンの API キーは異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
{
# 動画ファイルを直接渡す場合、type の値を video_url に設定します。
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{base64_video}"},
"fps":2
},
{"type": "text", "text": "この動画にはどのようなシーンが描かれていますか?"},
],
}
],
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
# 各リージョンの API キーは異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# 環境変数を設定していない場合は、次の行を 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"
}
);
const encodeVideo = (videoPath) => {
const videoFile = readFileSync(videoPath);
return videoFile.toString('base64');
};
# xxxx/test.mp4 をご利用のローカル動画ファイルの絶対パスに置き換えてください。
const base64Video = encodeVideo("xxx/test.mp4")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{"role": "user",
"content": [{
# 動画ファイルを直接渡す場合、type の値を video_url に設定します。
"type": "video_url",
"video_url": {"url": `data:video/mp4;base64,${base64Video}`},
"fps":2},
{"type": "text", "text": "この動画にはどのようなシーンが描かれていますか?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();
curl
ファイルを Base64 エンコード文字列に変換する方法について詳しくは、「サンプルコード」をご参照ください。
表示上の都合により、コード内の Base64 エンコード文字列
"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は省略されています。実行時には、完全なエンコード文字列を渡す必要があります。
# ======= 重要なお知らせ =======
# API キーはリージョンによって異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# 以下はシンガポールリージョン向けの 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 に置き換えてください。
# === コマンド実行前にこのコメントを削除してください ===
curl --location 'https://dashscope.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": "video_url", "video_url": {"url": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},"fps":2},
{"type": "text", "text": "この動画にはどのようなシーンが描かれていますか?"}
]
}]
}'DashScope
Python
import base64
import os
import dashscope
# 以下はシンガポールリージョン向けの 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'
# エンコーディング関数:ローカルファイルを Base64 エンコード文字列に変換します。
def encode_video(video_path):
with open(video_path, "rb") as video_file:
return base64.b64encode(video_file.read()).decode("utf-8")
# xxxx/test.mp4 をご利用のローカル動画ファイルの絶対パスに置き換えてください。
base64_video = encode_video("xxxx/test.mp4")
messages = [{'role':'user',
# fps パラメーターは動画から抽出するフレーム数を制御します。つまり、1/fps 秒ごとに 1 フレームが抽出されます。
'content': [{'video': f"data:video/mp4;base64,{base64_video}","fps":2},
{'text': 'この動画にはどのようなシーンが描かれていますか?'}]}]
response = dashscope.MultiModalConversation.call(
# API キーはリージョンによって異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"。
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus',
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下は、シンガポールリージョン用の base_url です。米国(バージニア)リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国(北京)リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeVideoToBase64(String videoPath) throws IOException {
Path path = Paths.get(videoPath);
byte[] videoBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(videoBytes);
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Video = encodeVideoToBase64(localPath); // Base64 エンコーディング
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>()
{{
put("video", "data:video/mp4;base64," + base64Video);// fps パラメーターは、ビデオから抽出されるフレーム数を制御します。つまり、1/fps 秒ごとに 1 フレームが抽出されます。
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "What scene does this video depict?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 各リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key を参照してください。
// 環境変数を設定していない場合は、次の行を Model Studio API キーで置き換えてください:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// xxx/test.mp4 を、ローカルビデオの絶対パスに置き換えてください。
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
ファイルを Base64 エンコード文字列に変換する方法について詳しくは、「サンプルコード」をご参照ください。
表示上の都合により、コード内の Base64 エンコード文字列
"f"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は省略されています。実行時には、完全なエンコード文字列を渡す必要があります。
# ======= 重要 =======
# 以下はシンガポールリージョン向けの 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 に置き換えてください。
# 各リージョンの API キーは異なります。API キーの取得方法については、「<a href="https://www.alibabacloud.com/help/zh/model-studio/get-api-key">Model Studio:API キーの取得</a>」をご参照ください。
# === 実行前にこのコメントを削除してください ===
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' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"video": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "この動画にはどのようなシーンが描かれていますか? "}
]
}
]
}
}'イメージ一覧
この例では、ローカルに保存されたファイルを使用します:football1.jpg、football2.jpg、football3.jpg、およびfootball4.jpg。
ファイルパスを指定して渡す
Python
import os
import dashscope
# 以下はシンガポールリージョン向けの 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'
local_path1 = "football1.jpg"
local_path2 = "football2.jpg"
local_path3 = "football3.jpg"
local_path4 = "football4.jpg"
image_path1 = f"file://{local_path1}"
image_path2 = f"file://{local_path2}"
image_path3 = f"file://{local_path3}"
image_path4 = f"file://{local_path4}"
messages = [{'role':'user',
# イメージ一覧を渡す場合、fps パラメーターは Qwen3.5、Qwen3-VL、Qwen2.5-VL シリーズのモデルで使用可能です。
'content': [{'video': [image_path1,image_path2,image_path3,image_path4],"fps":2},
{'text': 'この動画が描写しているシーンは何ですか?'}]}]
response = MultiModalConversation.call(
# 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-api-key」をご参照ください。
# 環境変数を設定していない場合は、以下の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を変更できます。利用可能なモデルの一覧については、「https://www.alibabacloud.com/help/model-studio/getting-started/models」をご参照ください。
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
// DashScope SDK のバージョンは 2.21.10 以降である必要があります。
import java.util.Arrays;
import java.util.Map;
import java.util.Collections;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョン向けの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3.5-plus"; // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を変更できます。利用可能なモデルの一覧については、「https://www.alibabacloud.com/help/model-studio/getting-started/models」をご参照ください。
public static void videoImageListSample(String localPath1, String localPath2, String localPath3, String localPath4)
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
String filePath1 = "file://" + localPath1;
String filePath2 = "file://" + localPath2;
String filePath3 = "file://" + localPath3;
String filePath4 = "file://" + localPath4;
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList(filePath1,filePath2,filePath3,filePath4));
// イメージ一覧を渡す場合、fps パラメーターは Qwen3.5、Qwen3-VL、Qwen2.5-VL シリーズのモデルで使用可能です。
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "この動画の具体的なプロセスを説明してください")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-api-key」をご参照ください。
// 環境変数を設定していない場合は、以下の行を Model Studio API キーに置き換えてください:.apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample(
"xxx/football1.jpg",
"xxx/football2.jpg",
"xxx/football3.jpg",
"xxx/football4.jpg");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Base64 エンコーディング済み入力
OpenAI 互換
Python
import os
from openai import OpenAI
import base64
# エンコーディング関数:ローカルファイルを Base64 エンコーディング文字列に変換します。
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
base64_image1 = encode_image("football1.jpg")
base64_image2 = encode_image("football2.jpg")
base64_image3 = encode_image("football3.jpg")
base64_image4 = encode_image("football4.jpg")
client = OpenAI(
# 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-api-key」をご参照ください。
# 環境変数を設定していない場合は、以下の行を Model Studio API キーに置き換えてください:api_key="sk-xxx"
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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を変更できます。利用可能なモデルの一覧については、「https://www.alibabacloud.com/help/model-studio/getting-started/models」をご参照ください。
messages=[
{"role": "user","content": [
{"type": "video","video": [
f"data:image/jpeg;base64,{base64_image1}",
f"data:image/jpeg;base64,{base64_image2}",
f"data:image/jpeg;base64,{base64_image3}",
f"data:image/jpeg;base64,{base64_image4}",]},
{"type": "text","text": "この動画の具体的なプロセスを説明してください"},
]}]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-api-key」をご参照ください。
// 環境変数を設定していない場合は、以下の行を 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"
}
);
const encodeImage = (imagePath) => {
const imageFile = readFileSync(imagePath);
return imageFile.toString('base64');
};
const base64Image1 = encodeImage("football1.jpg")
const base64Image2 = encodeImage("football2.jpg")
const base64Image3 = encodeImage("football3.jpg")
const base64Image4 = encodeImage("football4.jpg")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3.5-plus", // この例では qwen3.5-plus を使用しています。必要に応じてモデル名を変更できます。利用可能なモデルの一覧については、「https://www.alibabacloud.com/help/model-studio/getting-started/models」をご参照ください。
messages: [
{"role": "user",
"content": [{"type": "video",
"video": [
`data:image/jpeg;base64,${base64Image1}`,
`data:image/jpeg;base64,${base64Image2}`,
`data:image/jpeg;base64,${base64Image3}`,
`data:image/jpeg;base64,${base64Image4}`]},
{"type": "text", "text": "この動画が描写しているシーンは何ですか?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();curl
ファイルを Base64 エンコーディング文字列に変換する方法の詳細については、「サンプルコード」をご参照ください。
表示上の都合により、コード内の Base64 エンコーディング済み文字列
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は省略されています。実行時には、完全なエンコーディング済み文字列を渡す必要があります。
# ======= 重要 =======
# 以下はシンガポールリージョン向けの 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/zh/model-studio/get-api-key」をご参照ください。
# === 実行前にこのコメントを削除してください ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-plus",
"messages": [{"role": "user",
"content": [{"type": "video",
"video": [
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...",
"data:image/jpeg;base64,nEpp6jpnP57MoWSyOWwrkXMJhHRCWYeFYb...",
"data:image/jpeg;base64,JHWQnJPc40GwQ7zERAtRMK6iIhnWw4080s...",
"data:image/jpeg;base64,adB6QOU5HP7dAYBBOg/Fb7KIptlbyEOu58..."
]},
{"type": "text",
"text": "この動画の具体的なプロセスを説明してください"}]}]
}'DashScope
Python
import base64
import os
import dashscope
# 以下はシンガポールリージョン向けの 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'
# ローカルファイルを Base64 エンコーディング文字列に変換する関数。
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
base64_image1 = encode_image("football1.jpg")
base64_image2 = encode_image("football2.jpg")
base64_image3 = encode_image("football3.jpg")
base64_image4 = encode_image("football4.jpg")
messages = [{'role':'user',
'content': [
{'video':
[f"data:image/jpeg;base64,{base64_image1}",
f"data:image/jpeg;base64,{base64_image2}",
f"data:image/jpeg;base64,{base64_image3}",
f"data:image/jpeg;base64,{base64_image4}"
]
},
{'text': 'この動画に示されているプロセスを説明してください。'}]}]
response = dashscope.MultiModalConversation.call(
# API キーはリージョンによって異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/en/model-studio/get-api-key」をご参照ください。
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3.5-plus', # この例では qwen3.5-plus を使用しています。必要に応じてモデル名を変更できます。利用可能なモデルの一覧については、「https://www.alibabacloud.com/help/model-studio/getting-started/models」をご参照ください。
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョン向けの base_url です。米国 (バージニア) リージョンのモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeImageToBase64(String imagePath) throws IOException {
Path path = Paths.get(imagePath);
byte[] imageBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(imageBytes);
}
public static void videoImageListSample(String localPath1,String localPath2,String localPath3,String localPath4)
throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Image1 = encodeImageToBase64(localPath1); // Base64 エンコーディング
String base64Image2 = encodeImageToBase64(localPath2);
String base64Image3 = encodeImageToBase64(localPath3);
String base64Image4 = encodeImageToBase64(localPath4);
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList(
"data:image/jpeg;base64," + base64Image1,
"data:image/jpeg;base64," + base64Image2,
"data:image/jpeg;base64," + base64Image3,
"data:image/jpeg;base64," + base64Image4));
// イメージ一覧を渡す場合、fps パラメーターは Qwen3.5、Qwen3-VL、Qwen2.5-VL シリーズのモデルで使用可能です。
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "この動画の具体的なプロセスを説明してください")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-api-key」をご参照ください。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// xxx/football1.png などのパスを、ご利用のローカル画像の絶対パスに置き換えてください。
videoImageListSample(
"xxx/football1.jpg",
"xxx/football2.jpg",
"xxx/football3.jpg",
"xxx/football4.jpg"
);
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
ファイルを Base64 エンコーディング文字列に変換する方法の詳細については、「サンプルコード」をご参照ください。
表示上の都合により、コード内の Base64 エンコーディング済み文字列
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."は省略されています。実行時には、完全なエンコーディング済み文字列を渡す必要があります。
# ======= 重要 =======
# 以下はシンガポールリージョン向けの 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 に置き換えてください。
# 各リージョンの API キーは異なります。API キーの取得方法については、「https://www.alibabacloud.com/help/zh/model-studio/get-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' \
-d '{
"model": "qwen3.5-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...",
"data:image/jpeg;base64,nEpp6jpnP57MoWSyOWwrkXMJhHRCWYeFYb...",
"data:image/jpeg;base64,JHWQnJPc40GwQ7zERAtRMK6iIhnWw4080s...",
"data:image/jpeg;base64,adB6QOU5HP7dAYBBOg/Fb7KIptlbyEOu58..."
],
"fps":2
},
{
"text": "この動画の具体的なプロセスを説明してください"
}
]
}
]
}
}'高解像度画像の処理
視覚理解モデル API は、エンコーディング後の単一の画像に対するビジュアルトークン数に制限があります。デフォルト設定では、高解像度画像は圧縮されるため、詳細が失われ、理解精度に影響を与える可能性があります。より多くの画像詳細を保持し、理解を向上させるには、vl_high_resolution_images を有効にするか、max_pixels を調整してビジュアルトークン数を増やします。
vl_high_resolution_images=trueの場合、API は固定解像度ポリシーを使用し、max_pixels設定を無視します。これは、画像内の微細なテキスト、小さなオブジェクト、または豊富な詳細を認識するのに役立ちます。vl_high_resolution_images=falseの場合、最終的なピクセル制限はmax_pixelsパラメーター値によって決定されます。高い処理速度またはコスト重視のシナリオでは、
max_pixelsのデフォルト値を使用するか、より小さな値に設定します。処理速度の低下が許容できる場合に詳細に焦点を当てるには、
max_pixelsの値を適度に増加させます。
OpenAI 互換
vl_high_resolution_images は標準の OpenAI パラメーターではありません。これを渡す方法は、異なる言語の SDK 間で異なります。
Python SDK: パラメーターを
extra_bodyディクショナリで渡します。Node.js SDK: パラメーターをトップレベルパラメーターとして直接渡します。
Python
import os
import time
from openai import OpenAI
client = OpenAI(
# リージョンによって API キーが異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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",
)
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{"role": "user","content": [
{"type": "image_url","image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
# max_pixels は入力画像の最大ピクセルしきい値を表します。vl_high_resolution_images=True の場合は無効ですが、vl_high_resolution_images=False の場合はカスタマイズ可能です。最大値はモデルによって異なります。
# "max_pixels": 16384 * 32 * 32
},
{"type": "text", "text": "What festival atmosphere does this picture show?"},
],
}
],
extra_body={"vl_high_resolution_images":True}
)
print(f"Model output: {completion.choices[0].message.content}")
print(f"Total input tokens: {completion.usage.prompt_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// リージョンによって API キーが異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
// 環境変数を設定していない場合は、以下の行を 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"
}
);
const response = await openai.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{role: "user",content: [
{type: "image_url",
image_url: {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
// max_pixels は入力画像の最大ピクセルしきい値を表します。vl_high_resolution_images=True の場合は無効ですが、vl_high_resolution_images=False の場合はカスタマイズ可能です。最大値はモデルによって異なります。
// "max_pixels": 2560 * 32 * 32
},
{type: "text", text: "What festival atmosphere does this picture show?" },
]}],
vl_high_resolution_images:true
})
console.log("Model output:",response.choices[0].message.content);
console.log("Total input tokens",response.usage.prompt_tokens);
curl
# ======= 重要 =======
# リージョンによって API キーが異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 以下はシンガポールリージョンの 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 に置き換えてください。
# === 実行前にこのコメントを削除してください ===
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": "qwen3.5-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"
}
},
{
"type": "text",
"text": "What festival atmosphere does this picture show?"
}
]
}
],
"vl_high_resolution_images":true
}'DashScope
Python
import os
import time
import dashscope
# 以下はシンガポールリージョンの 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'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg",
# max_pixels は入力画像の最大ピクセルしきい値を表します。vl_high_resolution_images=True の場合は無効ですが、vl_high_resolution_images=False の場合はカスタマイズ可能です。最大値はモデルによって異なります。
# "max_pixels": 16384 * 32 * 32
},
{"text": "What festival atmosphere does this picture show?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# 環境変数を設定していない場合は、以下の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
# リージョンによって API キーが異なります。API キーの取得方法については、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus',
messages=messages,
vl_high_resolution_images=True
)
print("Model output",response.output.choices[0].message.content[0]["text"])
print("Total input tokens:",response.usage.input_tokens)Java
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
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.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// 以下はシンガポールリージョンの base_url です。米国 (バージニア) リージョンでモデルを使用する場合は、base_url を https://dashscope-us.aliyuncs.com/api/v1 に変更してください。
// 中国 (北京) リージョンでモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> map = new HashMap<>();
map.put("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg");
// max_pixels は入力画像の最大ピクセルしきい値を表します。vl_high_resolution_images=True の場合は無効ですが、vl_high_resolution_images=False の場合はカスタマイズ可能です。最大値はモデルによって異なります。
// map.put("max_pixels", 2621440);
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
map,
Collections.singletonMap("text", "What festival atmosphere does this picture show?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// 環境変数を設定していない場合は、以下の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus")
.message(userMessage)
.vlHighResolutionImages(true)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
System.out.println(result.getUsage().getInputTokens());
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= 重要 =======
# リージョンによって API キーが異なります。API キーの取得方法については、https://www.alibabacloud.com/help/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' \
-d '{
"model": "qwen3.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
{"text": "What festival atmosphere does this picture show?"}
]
}
]
},
"parameters": {
"vl_high_resolution_images": true
}
}'その他の利用方法
制限事項
入力ファイルの制限
イメージの制限
イメージ解像度:
最小サイズ:イメージの幅および高さは、ともに
10ピクセルより大きくする必要があります。アスペクト比:イメージの長辺と短辺の比率は、
200:1を超えてはなりません。ピクセル数の上限:
イメージ解像度は、
8K (7680×4320)以内に収めることが推奨されます。この上限を超える解像度のイメージは、ファイルサイズが大きくなることやネットワーク伝送時間が長くなることにより、API 呼び出しのタイムアウトを引き起こす可能性があります。自動スケーリング:モデルは
max_pixelsおよびmin_pixelsを使用してイメージサイズを調整できます。したがって、超高解像度のイメージを提供しても認識精度は向上せず、むしろ呼び出し失敗のリスクが高まります。クライアント側で事前に適切なサイズにスケーリングすることを推奨します。
サポートされるイメージフォーマット
解像度が 4K (
3840×2160) 未満の場合、サポートされるイメージフォーマットは以下のとおりです:イメージフォーマット
一般的な拡張子
MIME タイプ
BMP
.bmp
image/bmp
JPEG
.jpe、.jpeg、.jpg
image/jpeg
PNG
.png
image/png
TIFF
.tif、.tiff
image/tiff
WEBP
.webp
image/webp
HEIC
.heic
image/heic
解像度が
4K (3840×2160)から8K (7680×4320)の範囲では、JPEG、JPG、PNG のみがサポートされます。
イメージサイズ:
パブリック URL として渡す場合:Qwen3.5 では単一イメージのサイズは
20 MBを超えてはならず、その他のモデルでは10 MBを超えてはなりません。ローカルパスとして渡す場合:単一イメージのサイズは
10 MBを超えてはなりません。Base64 エンコード文字列として渡す場合:エンコード後の文字列は
10 MBを超えてはなりません。
ファイルサイズの圧縮方法について詳しくは、「イメージまたは動画を指定サイズに圧縮する方法」をご参照ください。
サポートされるイメージ数: 複数のイメージを同時に渡す場合、イメージ数はモデルの最大入力数によって制限されます。すべてのイメージおよびテキストのトークン総数は、モデルの最大入力数より小さくなければなりません。
たとえば、思考モードで
qwen3-vl-plusモデルを使用する場合、最大入力は258048トークンです。入力テキストが100トークンを消費し、各イメージが2560トークンを消費する場合(イメージトークンの算出方法については、「課金およびレート制限」をご参照ください)、渡すことのできるイメージの最大数は(258048 − 100) ÷ 2560 ≈ 100個となります。
動画の制限
イメージリストとして渡す場合、リスト内のイメージ数は以下のとおり制限されます:
qwen3.5シリーズ:最低 4 枚、最大 8,000 枚。qwen3-vl-plusシリーズ、qwen3-vl-flashシリーズ、qwen3-vl-235b-a22b-thinking、およびqwen3-vl-235b-a22b-instruct:最低 4 枚、最大 2,000 枚。その他の
Qwen3-VLオープンソース、Qwen2.5-VL(商用版およびオープンソース版を含む)、およびQVQシリーズモデル:最低 4 枚、最大 512 枚。その他のモデル:最低 4 枚、最大 80 枚。
動画ファイルとして渡す場合:
動画サイズ:
パブリック URL として渡す場合:
qwen3.5シリーズ、Qwen3-VLシリーズ、およびqwen-vl-max(qwen-vl-max-latest、qwen-vl-max-2025-04-08、およびその後のすべてのバージョンを含む):2 GB を超えてはなりません。qwen-vl-plusシリーズ、その他のqwen-vl-maxモデル、Qwen2.5-VLオープンソースシリーズ、およびQVQシリーズモデル:1 GB を超えてはなりません。その他のモデル:150 MB を超えてはなりません。
Base64 エンコード文字列として渡す場合:エンコード後の文字列は 10 MB 未満である必要があります。
ローカルファイルパスとして渡す場合:動画ファイルは 100 MB を超えてはなりません。
ファイルサイズの圧縮方法について詳しくは、「イメージまたは動画を指定サイズに圧縮する方法」をご参照ください。
動画の再生時間:
qwen3.5シリーズ:2 秒~2 時間。qwen3-vl-plusシリーズ、qwen3-vl-flashシリーズ、qwen3-vl-235b-a22b-thinking、およびqwen3-vl-235b-a22b-instruct:2 秒~1 時間。その他の
Qwen3-VLオープンソースシリーズおよびqwen-vl-max(qwen-vl-max-latest、qwen-vl-max-2025-04-08、およびその後の更新版を含む):2 秒~20 分。qwen-vl-plusシリーズ、その他のqwen-vl-maxモデル、Qwen2.5-VLオープンソースシリーズ、およびQVQシリーズモデル:2 秒~10 分。その他のモデル:2 秒~40 秒。
動画フォーマット: MP4、AVI、MKV、MOV、FLV、WMV など。
動画ディメンション: 特定の制限はありません。モデルは
max_pixelsおよびmin_pixelsを使用して動画ディメンションを自動調整できます。大きな動画ファイルであっても、理解精度が向上することはありません。音声理解: モデルは動画ファイル内の音声を理解しません。
ファイル入力方法
パブリック URL:HTTP または HTTPS プロトコルをサポートする、公開可能なファイルアドレスを指定します。安定性およびパフォーマンスを最適化するためには、ファイルを OSS にアップロード し、パブリック URL を取得することを推奨します。
重要モデルがファイルを正常にダウンロードできるようにするため、パブリック URL のリクエストヘッダーには、必ず Content-Length(ファイルサイズ)および Content-Type(メディアタイプ、例:image/jpeg)を含める必要があります。いずれかのフィールドが欠落している、または不正な値が設定されている場合、ファイルのダウンロードは失敗します。
Base64 エンコード文字列として渡す: ファイルを Base64 エンコード文字列に変換してから渡します。
ローカルファイルパスとして渡す(DashScope SDK のみ対応): ローカルファイルのパスを指定します。
ファイル入力方法に関する推奨事項については、「ファイルアップロード方法の選択方法
本番稼働
画像/動画の前処理:視覚理解モデルには、入力ファイルのサイズに制限があります。ファイルの圧縮方法の詳細については、画像または動画の圧縮方法をご参照ください。
テキストファイルの処理:視覚理解モデルは画像フォーマットのファイル処理のみをサポートしており、テキストファイルを直接処理することはできません。以下の代替方法を使用してください。
フォールトトレランスと安定性
タイムアウト処理:非ストリーミング呼び出しにおいて、モデルが 180 秒以内に出力を完了しない場合、通常はタイムアウトエラーがトリガーされます。ユーザーエクスペリエンスを向上させるため、タイムアウト後にはレスポンス本文に生成済みのコンテンツが返されます。レスポンスヘッダーに
x-dashscope-partialresponse:trueが含まれている場合、そのレスポンスはタイムアウトがトリガーされたことを示します。部分モード機能 (一部のモデルでサポート) を使用して、生成されたコンテンツを messages 配列に追加し、リクエストを再送信できます。これにより、大規模モデルはコンテンツの生成を継続できます。詳細については、不完全な出力に基づく継続書き込みをご参照ください。リトライメカニズム:ネットワークの変動や一時的なサービスの利用不可に対応するため、エクスポネンシャルバックオフなどの合理的な API 呼び出しのリトライロジックを設計してください。
課金とレート制限
課金: 総コストは、入力トークンおよび出力トークンの合計数に基づきます。入力および出力の価格については、「モデル一覧」をご参照ください。
トークンの構成:入力トークンはテキストトークンおよび画像・動画から変換されたトークンで構成されます。出力トークンは、モデルが生成するテキストです。思考モードでは、モデルの思考プロセスも出力トークンに含まれます。思考モードで思考プロセスが出力されない場合は、非思考モードの料金が適用されます。
画像および動画のトークン数算出方法:以下のコードを使用して、画像または動画のトークン消費量を概算できます。この概算値は参考用であり、実際の利用量は API 応答に基づきます。
API リファレンス
視覚理解モデルの入力および出力パラメーターについては、「Qwen」をご参照ください。
よくある質問
ファイルのアップロード方法をどのように選択すればよいですか?
イメージまたは動画を所定のサイズに圧縮するにはどうすればよいですか?
モデルが出力したオブジェクトのローカライズ結果に基づき、元のイメージ上にバウンディングボックスを描画するにはどうすればよいですか?
エラーコード
モデルの呼び出しに失敗し、エラーメッセージが返された場合は、解決方法については、「エラーメッセージ」をご参照ください。












