すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:DashScope API リファレンス

最終更新日:Mar 18, 2026

このトピックでは、DashScope API を使用して Qwen モデルを呼び出す方法について説明します。リクエストおよびレスポンスパラメーターの説明とコード例を含みます。

シンガポール

HTTP エンドポイント:

  • テキストのみのモデル(例:`qwen-plus`): POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル(例:`qwen3.5-plus` または `qwen3-vl-plus`): POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK の `base_url` 構成:

Python コード

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";

米国 (バージニア)

HTTP エンドポイント:

  • テキストのみのモデル: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • Qwen-VL モデル: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK の `base_url` 構成:

Python コード

dashscope.base_http_api_url = 'https://dashscope-us.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-us.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope-us.aliyuncs.com/api/v1";

中国 (北京)

HTTP エンドポイント:

  • テキストのみのモデル(例:`qwen-plus`): POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル(例:`qwen3.5-plus` または `qwen3-vl-plus`): POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK を使用する場合、base_url の構成は不要です。

中国 (香港)

HTTP エンドポイント:

  • プレーンテキストモデル(例:`qwen-plus`): POST https://cn-hongkong.dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル(例:`qwen3.5-plus` または `qwen3-vl-plus`): POST https://cn-hongkong.dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し構成の `base_url`:

Python コード

dashscope.base_http_api_url = 'https://cn-hongkong.dashscope.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://cn-hongkong.dashscope.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://cn-hongkong.dashscope.aliyuncs.com/api/v1";
開始する前に、API キーを取得し、環境変数として設定する必要があります。DashScope SDK を使用する場合は、DashScope SDK をインストールする必要があります。

リクエストボディ

テキスト入力

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# これはシンガポールリージョンのベース URL です。
messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': 'Who are you?'}
]
response = dashscope.Generation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-plus", # 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
    messages=messages,
    result_format='message'
    )
print(response)

Java

// DashScope SDK バージョン 2.12.0 以降が必要です。
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        // これはシンガポールリージョンのベース URL です。
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Who are you?")
                .build();
        GenerationParam param = GenerationParam.builder()
                // DASHSCOPE_API_KEY が設定されていない場合、代わりに .apiKey("sk-xxx") を使用します。
                // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // 例外をログ出力します。
            System.err.println("Generation サービスエラー: " + e.getMessage());
        }
        System.exit(0);
    }
}

PHP (HTTP)

<?php
$url = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // 必要に応じて qwen-plus を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/getting-started/models をご参照ください。
    "model" => "qwen-plus",
    "input" => [
        "messages" => [
            [
                "role" => "system",
                "content" => "You are a helpful assistant."
            ],
            [
                "role" => "user",
                "content" => "Who are you?"
            ]
        ]
    ],
    "parameters" => [
        "result_format" => "message"
    ]
];

$jsonData = json_encode($data);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($httpCode == 200) {
    echo "Response: " . $response;
} else {
    echo "Error: " . $httpCode . " - " . $response;
}

curl_close($ch);
?>

Node.js (HTTP)

DashScope は Node.js 向けの SDK を提供していません。OpenAI Node.js SDK を使用する場合は、「OpenAI」セクションをご参照ください。

import fetch from 'node-fetch';
// シンガポール、米国 (バージニア)、北京リージョン間で API キーは異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
$apiKey = getenv('DASHSCOPE_API_KEY');
const apiKey = process.env.DASHSCOPE_API_KEY;

const data = {
    model: "qwen-plus", // ここでは qwen-plus を例として使用しています。必要に応じてモデル名を置き換えてください。モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
    input: {
        messages: [
            {
                role: "system",
                content: "You are a helpful assistant."
            },
            {
                role: "user",
                content: "Who are you?"
            }
        ]
    },
    parameters: {
        result_format: "message"
    }
};

fetch('https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
    console.log(JSON.stringify(data));
})
.catch(error => {
    console.error('Error:', error);
});

C# (HTTP)

using System.Net.Http.Headers;
using System.Text;

class Program
{
    private static readonly HttpClient httpClient = new HttpClient();

    static async Task Main(string[] args)
    {
        // DASHSCOPE_API_KEY が設定されていない場合、代わりに string? apiKey = "sk-xxx" を使用します。
        // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
$apiKey = getenv('DASHSCOPE_API_KEY');
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("API キーが設定されていません。DASHSCOPE_API_KEY 環境変数を設定してください。");
            return;
        }

        string url = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
        // 必要に応じて qwen-plus を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/getting-started/models をご参照ください。
        string jsonContent = @"{
            ""model"": ""qwen-plus"", 
            ""input"": {
                ""messages"": [
                    {
                        ""role"": ""system"",
                        ""content"": ""You are a helpful assistant.""
                    },
                    {
                        ""role"": ""user"",
                        ""content"": ""Who are you?""
                    }
                ]
            },
            ""parameters"": {
                ""result_format"": ""message""
            }
        }";

        // リクエストを送信し、レスポンスを取得します。
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // 結果を出力します。
        Console.WriteLine(result);
    }

    private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
    {
        using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
        {
            // リクエストヘッダーを設定します。
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // リクエストを送信し、レスポンスを取得します。
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // レスポンスを処理します。
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"リクエスト失敗: {response.StatusCode}";
            }
        }
    }
}

Go (HTTP)

DashScope は Go 向けの SDK を提供していません。OpenAI Go SDK を使用する場合は、「OpenAI-Go」セクションをご参照ください。

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}

type Input struct {
	Messages []Message `json:"messages"`
}

type Parameters struct {
	ResultFormat string `json:"result_format"`
}

type RequestBody struct {
	Model      string     `json:"model"`
	Input      Input      `json:"input"`
	Parameters Parameters `json:"parameters"`
}

func main() {
	// HTTP クライアントを作成します。
	client := &http.Client{}

	// リクエストボディを構築します。
	requestBody := RequestBody{
		// 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
		Model: "qwen-plus",
		Input: Input{
			Messages: []Message{
				{
					Role:    "system",
					Content: "You are a helpful assistant.",
				},
				{
					Role:    "user",
					Content: "Who are you?",
				},
			},
		},
		Parameters: Parameters{
			ResultFormat: "message",
		},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		log.Fatal(err)
	}

	// POST リクエストを作成します。
	req, err := http.NewRequest("POST", "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation", bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}

	// リクエストヘッダーを設定します。
	// DASHSCOPE_API_KEY が設定されていない場合、代わりに apiKey := "sk-xxx" を使用します。
	// API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// リクエストを送信します。
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	// レスポンスボディを読み取ります。
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}

	// レスポンスを出力します。
	fmt.Printf("%s\n", bodyText)
}

curl

API キーはリージョン固有です。「API キーの作成
curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

ストリーミング出力

ストリーミング出力」をご参照ください。

テキスト生成モデル

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {'role':'system','content':'you are a helpful assistant'},
    {'role': 'user','content': 'Who are you?'}
]
responses = dashscope.Generation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
    model="qwen-plus",
    messages=messages,
    result_format='message',
    stream=True,
    incremental_output=True
    )
for response in responses:
    print(response)  

Java

import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    private static void handleGenerationResult(GenerationResult message) {
        System.out.println(JsonUtils.toJson(message));
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        return GenerationParam.builder()
                // DASHSCOPE_API_KEY が設定されていない場合、代わりに .apiKey("sk-xxx") を使用します。
                // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(Arrays.asList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .incrementalOutput(true)
                .build();
    }
    public static void main(String[] args) {
        try {
            Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
            streamCallWithMessage(gen, userMsg);
        } catch (ApiException | NoApiKeyException | InputRequiredException  e) {
            logger.error("例外が発生しました: {}", e.getMessage());
        }
        System.exit(0);
    }
}

curl

curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message",
        "incremental_output":true
    }
}'

マルチモーダルモデル

Python

import os
from dashscope import MultiModalConversation
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"text": "What does the image show?"}
        ]
    }
]

responses = MultiModalConversation.call(
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen3-vl-plus',  # 別のマルチモーダルモデルに置き換える必要がある場合は、対応するメッセージも更新してください。
    messages=messages,
    stream=True,
    incremental_output=True)
    
full_content = ""
print("ストリーミング出力:")
for response in responses:
    if response["output"]["choices"][0]["message"].content:
        print(response.output.choices[0].message.content[0]['text'])
        full_content += response.output.choices[0].message.content[0]['text']
print(f"完全な内容: {full_content}")

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 io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    public static void streamCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        // 可変マップを作成する必要があります。
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
                        Collections.singletonMap("text", "What does the image show?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                // DASHSCOPE_API_KEY が設定されていない場合、代わりに .apiKey("sk-xxx") を使用します。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3-vl-plus")  // 別のマルチモーダルモデルに置き換える必要がある場合は、対応するメッセージも更新してください。
                .messages(Arrays.asList(userMessage))
                .incrementalOutput(true)
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(item -> {
            try {
                var content = item.getOutput().getChoices().get(0).getMessage().getContent();
                    // コンテンツが存在し、空でないことを確認します。
                if (content != null &&  !content.isEmpty()) {
                    System.out.println(content.get(0).get("text"));
                    }
            } catch (Exception e){
                System.exit(0);
            }
        });
    }

    public static void main(String[] args) {
        try {
            streamCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

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-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"text": "What does the image show?"}
                ]
            }
        ]
    },
    "parameters": {
        "incremental_output": true
    }
}'

画像入力

大規模言語モデルを用いた画像分析のその他の方法については、「画像および動画理解」をご参照ください。

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'  
messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
            {"text": "What are these?"}
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # 必要に応じて qwen-vl-max を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/getting-started/models をご参照ください。
    model='qwen-vl-max',
    messages=messages
    )
print(response)

Java

// Copyright (c) Alibaba, Inc. and its affiliates.

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.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
public class Main {
    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://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
                        Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
                        Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"),
                        Collections.singletonMap("text", "What are these?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // DASHSCOPE_API_KEY が設定されていない場合、代わりに .apiKey("sk-xxx") を使用します。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 必要に応じて qwen-vl-plus を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/getting-started/models をご参照ください。
                .model("qwen-vl-plus")
                .message(userMessage)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

API キーはリージョン固有です。「API キーの作成
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": "qwen-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
                    {"text": "What are these?"}
                ]
            }
        ]
    }
}'

動画入力

次の例では、動画フレームを渡す方法を示しています。動画ファイルを渡すなどの他の方法については、「視覚的理解」をご参照ください。

Python

import os
# DashScope SDK バージョン 1.20.10 以降が必要です。
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{"role": "user",
             "content": [
                  # Qwen2.5-VL シリーズモデルの場合、画像リストを渡すと、fps を設定することで、元の動画から 1/fps 秒間隔で画像を抽出したことを示すことができます。
                 {"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": "Describe the specific process in this video"}]}]
response = dashscope.MultiModalConversation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen2.5-vl-72b-instruct',  # 必要に応じて qwen2.5-vl-72b-instruct を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/models をご参照ください。
    messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])

Java

// DashScope SDK バージョン 2.18.3 以降を使用します。
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 {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    private static final String MODEL_NAME = "qwen2.5-vl-72b-instruct"; // 必要に応じて qwen2.5-vl-72b-instruct を別のモデルに置き換えます。モデル一覧については、https://www.alibabacloud.com/help/zh/model-studio/models をご参照ください。
    public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage systemMessage = MultiModalMessage.builder()
                .role(Role.SYSTEM.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
                .build();
        // Qwen2.5-VL シリーズモデルの場合、画像リストを渡すと、fps を設定することで、元の動画から 1/fps 秒間隔で画像を抽出したことを示すことができます。
        Map<String, Object> params = Map.of(
                "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"),
                "fps",2);
        MultiModalMessage userMessage = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(
                        params,
                        Collections.singletonMap("text", "Describe the specific process in this video")))
                .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // DASHSCOPE_API_KEY が設定されていない場合、代わりに .apiKey("sk-xxx") を使用します。
                // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model(MODEL_NAME)
                .messages(Arrays.asList(systemMessage, 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

API キーはリージョン固有です。「API キーの作成
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": "qwen2.5-vl-72b-instruct",
  "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": "Describe the specific process in this video"
          }
        ]
      }
    ]
  }
}'

ツール呼び出し

完全な関数呼び出しワークフローについては、「テキスト生成モデルの概要」をご参照ください。

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "現在時刻を知りたいときに便利です。",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "指定された都市の天気を照会したいときに便利です。",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "都市または郡(例:北京、杭州、余杭区)"
                    }
                }
            },
            "required": [
                "location"
            ]
        }
    }
]
messages = [{"role": "user", "content": "How is the weather in Hangzhou?"}]
response = dashscope.Generation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
    model='qwen-plus',
    messages=messages,
    tools=tools,
    result_format='message'
)
print(response)

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.aigc.conversation.ConversationParam.ResultFormat;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.Option;
import com.github.victools.jsonschema.generator.OptionPreset;
import com.github.victools.jsonschema.generator.SchemaGenerator;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfig;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder;
import com.github.victools.jsonschema.generator.SchemaVersion;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public class GetWeatherTool {
        private String location;
        public GetWeatherTool(String location) {
            this.location = location;
        }
        public String call() {
            return location+" has clear skies today.";
        }
    }
    public class GetTimeTool {
        public GetTimeTool() {
        }
        public String call() {
            LocalDateTime now = LocalDateTime.now();
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String currentTime = "Current time: " + now.format(formatter) + ".";
            return currentTime;
        }
    }
    public static void SelectTool()
            throws NoApiKeyException, ApiException, InputRequiredException {
        SchemaGeneratorConfigBuilder configBuilder =
                new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON);
        SchemaGeneratorConfig config = configBuilder.with(Option.EXTRA_OPEN_API_FORMAT_VALUES)
                .without(Option.FLATTENED_ENUMS_FROM_TOSTRING).build();
        SchemaGenerator generator = new SchemaGenerator(config);
        ObjectNode jsonSchema_weather = generator.generateSchema(GetWeatherTool.class);
        ObjectNode jsonSchema_time = generator.generateSchema(GetTimeTool.class);
        FunctionDefinition fdWeather = FunctionDefinition.builder().name("get_current_weather").description("Get the weather for a specified location")
                .parameters(JsonUtils.parseString(jsonSchema_weather.toString()).getAsJsonObject()).build();
        FunctionDefinition fdTime = FunctionDefinition.builder().name("get_current_time").description("Get the current time")
                .parameters(JsonUtils.parseString(jsonSchema_time.toString()).getAsJsonObject()).build();
        Message systemMsg = Message.builder().role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant. When asked a question, use tools wherever possible.")
                .build();
        Message userMsg = Message.builder().role(Role.USER.getValue()).content("Hangzhou weather").build();
        List<Message> messages = new ArrayList<>();
        messages.addAll(Arrays.asList(systemMsg, userMsg));
        GenerationParam param = GenerationParam.builder()
                // API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(messages)
                .resultFormat(ResultFormat.MESSAGE)
                .tools(Arrays.asList(
                        ToolFunction.builder().function(fdWeather).build(),
                        ToolFunction.builder().function(fdTime).build()))
                .build();
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        // これはシンガポールリージョンのベース URL です。
        GenerationResult result = gen.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        try {
            SelectTool();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(String.format("Exception %s", e.getMessage()));
        }
        System.exit(0);
    }
}

curl

API キーはリージョン固有です。「API キーの作成
この例の URL はシンガポールリージョン用です。
curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-plus",
    "input": {
        "messages": [{
            "role": "user",
            "content": "How is the weather in Hangzhou?"
        }]
    },
    "parameters": {
        "result_format": "message",
        "tools": [{
            "type": "function",
            "function": {
                "name": "get_current_time",
                "description": "Useful when you want to know the current time.",
                "parameters": {}
            }
        },{
            "type": "function",
"name": "get_current_weather",
                "description": "指定された都市の天気を照会したいときに便利です。",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "都市または郡(例:北京、杭州、余杭区)"
                        }
                    }
                },
                "required": ["location"]
            }
        }]
    }
}'

非同期呼び出し

# DashScope Python SDK バージョン 1.19.0 以降を使用します。
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.generation import AioGeneration

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# これはシンガポールリージョンのベース URL です。
async def main():
    response = await AioGeneration.call(
        # DASHSCOPE_API_KEY 環境変数が設定されていない場合、
        # 次の行を api_key="sk-xxx" に置き換えます。
        # API キーはリージョンごとに異なります。API キーの取得方法については、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        # 必要に応じて qwen-plus を置き換えます — モデル一覧: https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
        model="qwen-plus",
        messages=[{"role": "user", "content": "Who are you?"}],
        result_format="message",
    )
    print(response)

if platform.system() == "Windows":
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())

ドキュメント理解

Python

import os
import dashscope

# 中国 (北京) リージョンのみが qwen-long-latest モデルをサポートしています。
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assisstant'},
        # {FILE_ID} をご利用の会話で使用される実際のファイル ID に置き換えます。
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long-latest",
    messages=messages,
    result_format='message'
)
print(response)

Java

import os
import dashscope

# 中国 (北京) リージョンのみが qwen-long-latest モデルをサポートしています。
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assisstant'},
        # {FILE_ID} をご利用の会話で使用される実際のファイル ID に置き換えます。
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # DASHSCOPE_API_KEY が設定されていない場合、代わりに api_key="sk-xxx" を使用します。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long-latest",
    messages=messages,
    result_format='message'
)
print(response)

curl

ドキュメント理解モデルは、中国 (北京) リージョンでのみサポートされています。
{FILE_ID} をご利用の会話で使用される実際のファイル ID に置き換えます。
curl --location "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-long-latest",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "system",
                "content": "fileid://{FILE_ID}"
            },
            {
                "role": "user",
                "content": "What is this article about?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

model string (必須)

モデル名。

サポートされているモデルには、Qwen 大規模言語モデル (商用およびオープンソース)、Qwen-VL、Qwen-Coder、および Qwen-Math が含まれます。

特定のモデル名と課金情報については、テキスト生成-Qwen をご参照ください。

messages array (必須)

大規模言語モデル (LLM) に渡すコンテキストで、会話の順に並べられています。

HTTP 呼び出しを行う場合、messagesinput オブジェクト内に配置します。

メッセージタイプ

システムメッセージ object (任意)

LLM のロール、トーン、タスクオブジェクト、または制約を設定するシステムメッセージです。messages 配列の先頭に配置します。

QwQ モデルにはシステムメッセージを設定しないでください。システムメッセージは QVQ モデルに影響を与えません。

プロパティ

content string (必須)

メッセージ本文。

role string (必須)

システムメッセージのロール。値は system に固定されています。

ユーザーメッセージ object (必須)

モデルに質問、命令、またはコンテキストを渡すユーザーメッセージ。

プロパティ

content string or array (必須)

メッセージ本文。入力がテキストのみの場合、型は文字列です。入力に画像などのマルチモーダルデータが含まれる場合、または明示的なキャッシュが有効になっている場合、型は配列です。

プロパティ

text string (必須)

入力テキスト。

image string (任意)

画像理解のための画像ファイルを指定します。画像は次の 3 つの方法のいずれかで提供できます。

  • 公開 URL: 公開アクセス可能な画像リンク。

  • 画像の Base64 エンコーディング、フォーマットは data:image/<format>;base64,<data>

  • ローカルファイル: ローカルファイルの絶対パス。

適用モデル: Qwen-VLQVQ

値の例: {"image":"https://xxxx.jpeg"}

video array or string (任意)

Qwen-VL モデルまたは QVQ モデルに提供される動画。

  • 画像リストを提供する場合、型は array です。

  • 動画ファイルを提供する場合、型は string です。

ローカルファイルを提供するには、「ローカルファイル (Qwen-VL)」または「ローカルファイル (QVQ)」をご参照ください。

値の例:

  • 画像リスト: {"video":["https://xx1.jpg",...,"https://xxn.jpg"]}

  • 動画ファイル: {"video":"https://xxx.mp4"}

fps float (任意)

1 秒あたりに抽出されるフレーム数。値は [0.1, 10] の範囲内である必要があります。デフォルト値は 2.0 です。

説明

fps パラメーターには 2 つの機能があります。

  • 動画ファイルを提供する場合、フレーム抽出の周波数を制御します。 秒ごとに 1 フレームが抽出されます。

    これは Qwen-VL モデルQVQ モデルに適用されます。
  • 隣接するフレーム間の時間間隔をモデルに通知し、動画の時間的ダイナミクスをよりよく理解するのに役立ちます。これは動画ファイルと画像リストの両方に適用されます。この機能は、動画ファイルと画像リストの両方をサポートし、イベント時間のローカライズやセグメントごとのコンテンツ要約などのシナリオに適しています。

    これは Qwen3.5、Qwen3-VLQwen2.5-VL、および QVQ モデルでサポートされています。

より大きな fps 値は、スポーツイベントやアクション映画などの高速な動きのシナリオに適しています。より小さな fps 値は、長い動画や静的なシーンを含むコンテンツに適しています。

値の例

  • 画像リストを提供: {"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2}

  • 動画ファイルを提供: {"video": "https://xx1.mp4","fps":2}

max_frames integer (任意)

動画から抽出する最大フレーム数。fps に基づいて計算されたフレーム数が max_frames を超える場合、システムは max_frames の制限内でフレームを均等にサンプリングするように自動的に調整します。これにより、総フレーム数が制限を超えないようにします。

有効値

  • qwen3.5 シリーズ、qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinking、および qwen3-vl-235b-a22b-instruct: 最大値およびデフォルト値は 2000 です。

  • qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: 最大値およびデフォルト値は 512 です。

値の例

{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_frame": 2000}

OpenAI 互換 API を使用する場合、max_frames パラメーターをカスタマイズすることはできません。API は各モデルのデフォルト値を自動的に使用します。

min_pixels integer (任意)

入力画像または動画フレームの最小ピクセルしきい値を設定します。入力画像または動画フレームのピクセル数が min_pixels 未満の場合、総ピクセル数が min_pixels を超えるまで拡大されます。

有効値

  • 入力画像:

    • Qwen3.5 および Qwen3-VL: デフォルト値および最小値は 65536 です。

    • qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: デフォルト値および最小値は 4096 です。

    • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: デフォルト値および最小値は 3136 です。

  • 入力動画ファイルまたは画像リスト:

    • Qwen3.5、Qwen3-VL (商用およびオープンソース版を含む)、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: デフォルト値は 65536、最小値は 4096 です。

    • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: デフォルト値は 50176、最小値は 3136 です。

値の例

  • 入力画像: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536}

  • 入力動画ファイル: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"min_pixels": 65536}

  • 入力画像リスト: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"min_pixels": 65536}

max_pixels integer (任意)

入力画像または動画フレームの最大ピクセルしきい値を設定します。入力画像または動画のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元の画像を認識します。入力画像のピクセル数が max_pixels を超える場合、総ピクセル数が max_pixels 未満になるまで画像は縮小されます。

有効値

  • 入力画像:

    max_pixels の値は、<a baseurl="t3230323_v1_0_0.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="t2614691.xdita#0edad44583knr" id="758d486a79gkv">vl_high_resolution_images</a> パラメーターが有効になっているかどうかによって異なります。

    • vl_high_resolution_imagesFalse の場合:

      • Qwen3.5 および Qwen3-VL: デフォルト値は 2621440、最大値は 16777216 です。

      • qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: デフォルト値は 1310720、最大値は 16777216 です。

      • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: デフォルト値は 1003520、最大値は 12845056 です。

    • vl_high_resolution_imagesTrue の場合:

      • Qwen3.5、Qwen3-VL、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: max_pixels は無効です。入力画像の最大ピクセル数は 16777216 に固定されます。

      • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: max_pixels は無効です。入力画像の最大ピクセル数は 12845056 に固定されます。

  • 入力動画ファイルまたは画像リスト:

    • qwen3.5 シリーズ、qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinking、および qwen3-vl-235b-a22b-instruct: デフォルト値は 655360、最大値は 2048000 です。

    • その他の Qwen3-VL オープンソースモデル、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: デフォルト値は 655360、最大値は 786432 です。

    • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: デフォルト値は 501760、最大値は 602112 です。

値の例

  • 入力画像: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608}

  • 入力動画ファイル: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_pixels": 655360}

  • 入力画像リスト: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"max_pixels": 655360}

total_pixels integer (任意)

動画から抽出されたすべてのフレームの総ピクセル数 (フレームあたりのピクセル数 × 総フレーム数) を制限します。動画の総ピクセル数がこの制限を超える場合、システムは動画フレームを縮小しますが、単一フレームのピクセル値が [min_pixels, max_pixels] の範囲内に収まるようにします。これは Qwen-VL および QVQ モデルに適用されます。

抽出されたフレームが多い長い動画の場合、この値を小さくするとトークンの消費量と処理時間を削減できますが、画像の詳細が失われる可能性があります。

有効値

  • qwen3.5 シリーズ、qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinking、および qwen3-vl-235b-a22b-instruct: デフォルト値および最小値は 134217728 です。これは 131072 画像トークン (32×32 ピクセルあたり 1 画像トークン) に相当します。

  • その他の Qwen3-VL オープンソースモデル、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815: デフォルト値および最小値は 67108864 です。これは 65536 画像トークン (32×32 ピクセルあたり 1 画像トークン) に相当します。

  • その他の qwen-vl-plus モデル、その他の qwen-vl-max モデル、Qwen2.5-VL オープンソースシリーズ、および QVQ シリーズモデル: デフォルト値および最小値は 51380224 です。これは 65536 画像トークン (28×28 ピクセルあたり 1 画像トークン) に相当します。

値の例

  • 入力動画ファイル: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"total_pixels": 134217728}

  • 入力画像リスト: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"total_pixels": 134217728}

cache_control object (任意)

明示的なキャッシュを有効にします。これは、明示的なキャッシュをサポートするモデルでのみサポートされます。

プロパティ

type string (必須)

値は ephemeral に固定されています。

role string (必須)

ユーザーメッセージのロール。値は user に固定されています。

アシスタントメッセージ object (任意)

ユーザーのメッセージに対するモデルの応答。

プロパティ

content string (任意)

メッセージ本文。アシスタントメッセージで tool_calls パラメーターが指定されている場合、これは必須ではありません。

role string (必須)

値は assistant に固定されています。

partial boolean (任意)

プレフィックス継続を有効にするかどうかを指定します。リファレンスとサポートされているモデルについては、「プレフィックス継続」をご参照ください。

tool_calls array (任意)

関数呼び出しを呼び出した後に返されるツールと入力パラメーター情報。1 つ以上のオブジェクトが含まれます。これは、前のモデル応答の tool_calls フィールドから取得されます。

プロパティ

id string

ツール応答の ID。

type string

ツールのタイプ。現在、function のみがサポートされています。

function object

ツールと入力パラメーター情報。

プロパティ

name string

ツールの名前。

arguments string

JSON 形式の文字列での入力パラメーター情報。

index integer

tool_calls 配列内の現在のツール情報のインデックス。

ツールメッセージ object (任意)

ツールの出力情報。

プロパティ

content string (必須)

ツール関数の出力内容。文字列形式である必要があります。

role string (必須)

値は tool に固定されています。

tool_call_id string (任意)

関数呼び出しを呼び出した後に返される ID。response.output.choices[0].message.tool_calls[$index]["id"] から取得できます。ツールメッセージに対応するツールをマークするために使用されます。

temperature float (任意)

サンプリング温度。モデルが生成するテキストの多様性を制御します。

温度が高いほど、より多様なテキストが生成されます。温度が低いほど、より決定論的なテキストが生成されます。

有効値: [0, 2)

HTTP 呼び出しの場合、temperatureparameters オブジェクトに配置します。
QVQ モデルのデフォルトの温度値は変更しないでください。

top_p float (任意)

核サンプリングの確率しきい値で、モデルが生成するテキストの多様性を制御します。

top_p が高いほど、より多様なテキストが生成されます。top_p が低いほど、より決定論的なテキストが生成されます。

有効値: (0, 1.0]。

デフォルトの top_p

Qwen3.5 (ノンシンキングモード)、Qwen3 (ノンシンキングモード)、Qwen3-Instruct シリーズ、Qwen3-Coder シリーズ、qwen-max シリーズ、qwen-plus シリーズ (ノンシンキングモード)、qwen-flash シリーズ (ノンシンキングモード)、qwen-turbo シリーズ (ノンシンキングモード)、qwen オープンソースシリーズ、qwen-vl-max-2025-08-13、Qwen3-VL (ノンシンキングモード): 0.8

: 0.01

qwen-vl-plus シリーズ、qwen-vl-max、qwen-vl-max-latest、qwen-vl-max-2025-04-08、qwen2.5-vl-3b-instruct、qwen2.5-vl-7b-instruct、qwen2.5-vl-32b-instruct、qwen2.5-vl-72b-instruct: 0.001

QVQ シリーズ、qwen-vl-plus-2025-07-10、qwen-vl-plus-2025-08-15: 0.5

qwen3-max-preview (思考モード)、Qwen3-Omni-Flash シリーズ: 1.0;

Qwen3.5 (思考モード)、Qwen3 (思考モード)、Qwen3-VL (思考モード)、Qwen3-Thinking、QwQ シリーズ、Qwen3-Omni-Captioner: 0.95

Java SDK では、これは topP です。HTTP を使用する場合、top_p parameters オブジェクト内に配置します。
QVQ モデルのデフォルトの top_p 値は変更しないでください。

top_k integer (任意)

生成中のサンプリングのためのサンプル候補セットのサイズ。たとえば、値が 50 の場合、単一の生成で最もスコアの高い 50 トークンのみがランダムサンプリングの候補セットを形成します。値が大きいほどランダム性が増します。値が小さいほど決定性が増します。top_k を None または 100 より大きい値に設定すると、top_k 戦略が無効になります。この場合、top_p 戦略のみが有効になります。

値は 0 以上である必要があります。

デフォルトの top_k

QVQ シリーズ、qwen-vl-plus-2025-07-10、qwen-vl-plus-2025-08-15: 10

QwQ シリーズ: 40

その他の qwen-vl-plus シリーズ、qwen-vl-max-2025-08-13 より前のモデル、qwen2.5-omni-7b: 1

Qwen3-Omni-Flash シリーズ: 50

その他すべてのモデル: 20

Java SDK では、topK を使用します。HTTP 経由で呼び出す場合、top_k parameters オブジェクト内に配置します。
QVQ モデルのデフォルトの top_k 値は変更しないでください。

enable_thinking boolean (任意)

ハイブリッド思考モデルを使用する場合、これにより思考モードが有効になります。Qwen3.5、Qwen3、および Qwen3-VL モデルに適用されます。詳細については、「ディープシンキング」をご参照ください。

有効な値:

  • true: 有効

    有効にすると、思考内容は reasoning_content フィールドで返されます。
  • false: 無効

さまざまなモデルのデフォルト値については、「サポートされているモデル」をご参照ください。

Java SDK では、これは enableThinking です。HTTP を使用する場合、enable_thinking parameters オブジェクト内に配置します。

thinking_budget integer (任意)

思考プロセスの最大長。このパラメーターは、Qwen3.5、Qwen3-VL、および Qwen3 モデルの商用およびオープンソース版に適用されます。詳細については、「思考長の制限」をご参照ください。

デフォルト値は、モデルの最大 Chain-of-Thought 長です。詳細については、「モデル一覧」をご参照ください。

Java SDK では、このパラメーターは thinkingBudget です。HTTP を使用する場合、thinking_budgetparameters オブジェクト内に配置します。
デフォルト値は、モデルの最大 Chain-of-Thought 長です。

enable_code_interpreter boolean (任意) デフォルト: false

コードインタープリター機能を有効にします。qwen3.5、および思考モードの qwen3-max、qwen3-max-2026-01-23、qwen3-max-preview でのみサポートされています。詳細については、「コードインタープリター」をご参照ください。

有効な値:

  • true: 機能を有効にします

  • false: 機能を無効にします

Java SDK ではサポートされていません。HTTP を使用する場合、enable_code_interpreterparameters オブジェクト内に配置します。

repetition_penalty float (任意)

モデル生成中の連続シーケンスに対する繰り返しペナルティ。repetition_penalty を増やすと、モデルの繰り返しを減らすことができます。値 1.0 はペナルティなしを意味します。0 より大きい限り、厳密な値の範囲はありません。

Java SDK では、これは repetitionPenalty です。HTTP を使用する場合、repetition_penalty parameters オブジェクト内に配置します。
qwen-vl-plus_2025-01-25 モデルを使用してテキストを抽出する場合、repetition_penalty を 1.0 に設定します。
QVQ モデルのデフォルトの repetition_penalty 値は変更しないでください。

presence_penalty float (任意)

モデルが生成するテキストの繰り返しを制御します。

有効な値: -2.0 から 2.0。正の値は繰り返しを減らし、負の値は増やします。

クリエイティブなライティングやブレインストーミングなど、多様性と創造性が求められるシナリオでは、この値を増やします。技術文書やフォーマルなテキストなど、一貫性と用語の正確性が求められるシナリオでは、この値を減らします。

デフォルトの presence_penalty 値

Qwen3.5 (ノンシンキングモード)、qwen3-max-preview (思考モード)、Qwen3 (ノンシンキングモード)、Qwen3-Instruct シリーズ、qwen3-0.6b/1.7b/4b (思考モード)、QVQ シリーズ、qwen-max、qwen-max-latest、qwen-max-latestqwen2.5-vl シリーズ、qwen-vl-max シリーズ、qwen-vl-plus、Qwen3-VL (ノンシンキングモード): 1.5。

qwen-vl-plus-latest、qwen-vl-plus-2025-08-15: 1.2。

qwen-vl-plus-2025-01-25: 1.0。

qwen3-8b/14b/32b/30b-a3b/235b-a22b (思考モード)、qwen-plus/qwen-plus-latest/2025-04-28 (思考モード)、qwen-turbo/qwen-turbo/2025-04-28 (思考モード): 0.5。

その他すべてのモデル: 0.0。

仕組み

パラメーター値が正の場合、モデルは生成されたテキストに既に出現しているトークンにペナルティを課します。ペナルティはトークンが何回出現したかには依存しません。これにより、それらのトークンが再出現する可能性が低くなり、繰り返しが減少し、語彙の多様性が増します。

プロンプト: この文を中国語に翻訳してください: "This movie is good. The plot is good, the acting is good, the music is good, and overall, the entire movie is just good. In fact, it’s really good—the plot is excellent, the acting is excellent, and the music is excellent."

パラメーター値 2.0: この映画は素晴らしいです。プロットは素晴らしく、演技は最高で、音楽は美しいです。全体として、この映画は 信じられないほどです。実際、本当に傑出しています。ストーリーはエキサイティングで、パフォーマンスは素晴らしく、スコアはとても感動的です。

パラメーター値 0.0: この映画は良いです。プロットは良く、演技は良く、音楽も良いです。全体として、映画全体がとても良いです。実際、本当に素晴らしいです。プロットはとても良く、演技も素晴らしく、音楽も素晴らしいです。

パラメーター値 -2.0: この映画はとても良いです。プロットはとても良く、演技はとても良く、音楽もとても良いです。全体として、映画全体がとても良いです。実際、本当に素晴らしいです。プロットはとても良く、演技もとても良く、音楽もとても良いです。

qwen-vl-plus-2025-01-25 モデルを使用してテキストを抽出する場合、presence_penalty を 1.5 に設定します。
QVQ モデルのデフォルトの presence_penalty 値は変更しないでください。
このパラメーターは Java SDK ではサポートされていませんHTTP を使用する場合、presence_penalty parameters オブジェクト内に配置します。

vl_high_resolution_images boolean (任意。デフォルトは false です。)

このパラメーターは、入力画像の最大ピクセル制限を 16384 トークンに対応するピクセル値に引き上げます。詳細については、「高解像度画像の処理」をご参照ください。

  • vl_high_resolution_images: true: 固定解像度戦略を使用し、max_pixels 設定を無視します。画像がこの解像度を超える場合、総ピクセル数を縮小して制限内に収めることができます。

    各モデルのピクセル制限を表示するにはクリック

    vl_high_resolution_imagestrue の場合、モデルごとにピクセル制限が異なります。

    • qwen3.5 シリーズ、Qwen3-VL シリーズ、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815、: 16777216 (各 Token32 × 32 ピクセルに対応し、これは 16384 × 32 × 32 です)

    • QVQ シリーズおよびその他の Qwen2.5-VL シリーズモデル: 12845056 (各 Token28 × 28 ピクセルに対応し、これは 16384 × 28 × 28 です)

  • vl_high_resolution_imagesfalse の場合、実際のピクセル制限は max_pixels によって決定されます。入力画像が max_pixels を超える場合、max_pixels 内に収まるように縮小されます。モデルのデフォルトのピクセル制限は、max_pixels のデフォルト値と一致します。

Java SDK は vlHighResolutionImages (最小必須バージョン: 2.20.8) をサポートしています。HTTP 呼び出しを行う場合、vl_high_resolution_imagesparameters オブジェクトに含めることができます。

vl_enable_image_hw_output boolean (任意) デフォルト: false

このパラメーターを使用して、モデルがスケーリング後の入力画像の高さと幅を返すかどうかを指定できます。このパラメーターを true に設定すると、スケーリングされたディメンションが出力に含まれます。ストリーミング出力が有効になっている場合、この情報は最後のチャンクに表示されます。このパラメーターは Qwen-VL モデルでサポートされています。

Java SDK では、このパラメーターは vlEnableImageHwOutput という名前で、バージョン 2.20.8 以降が必要です。HTTP 呼び出しの場合、vl_enable_image_hw_outputparameters オブジェクトに含めます。

max_tokens integer (任意)

モデルの出力における最大トークン数。この制限に達すると生成が停止し、レスポンスの finish_reason フィールドが length に設定されます。

デフォルト値と最大値は、モデルの最大出力長に対応します。詳細については、「テキスト生成 - Qwen」をご参照ください。

このパラメーターを使用して、要約やキーワードの生成などのシナリオで出力長を制御したり、コストを削減して応答時間を短縮したりできます。

max_tokens がトリガーされると、レスポンスの finish_reason フィールドが length に設定されます。

max_tokens は Chain-of-Thought の長さを制限しません。
Java SDK では、このパラメーターは maxTokens です。Qwen-VL モデルの場合、maxLength です。バージョン 2.18.4 以降では、maxTokens としても設定できます。HTTP を使用する場合、max_tokensparameters オブジェクト内に含めます。

seed integer (任意)

乱数シード。このパラメーターは、再現可能な結果を保証します。呼び出しで同じ seed 値を使用し、他のすべてのパラメーターを変更しない場合、モデルは可能な限り同じ結果を返します。

有効な値: [0, 2<sup>31</sup> − 1]

HTTP を使用する場合、seedparameters オブジェクト内に配置します。

stream boolean (任意)。デフォルト: false

このパラメーターは、レスポンスにストリーミング出力を使用するかどうかを指定します。有効な値は次のとおりです。

  • false: モデルは、生成されたコンテンツが完了した後に完全なコンテンツを返します。

  • true: モデルは、コンテンツが生成されるとチャンクで出力を返します。

このパラメーターは、Python ソフトウェア開発キット (SDK) でのみサポートされています。Java SDK を使用してストリーミング出力を実装するには、streamCall インターフェイスを呼び出します。HTTP 経由でストリーミング出力を実装するには、X-DashScope-SSE ヘッダーを enable に設定します。
Qwen3 商用版 (思考モード)、Qwen3 オープンソース版、QwQ、および QVQ モデルは、ストリーミング出力のみをサポートします。

incremental_output パラメーターは boolean 値です。これは任意で、デフォルトは false です。Qwen3-Max、Qwen3-VL、Qwen3 オープンソースQwQ、および QVQ モデルの場合、デフォルトは true です。

このパラメーターを使用して、ストリーミング出力モードで増分出力を有効にできます。true に設定します。

パラメーター値:

  • false: 各出力には、これまでに生成された完全なシーケンスが含まれます。最終的な出力は完全な結果です。

    I
    I like
    I like apple
    I like apple.
  • true (推奨): 出力は増分です。後続の出力には、以前の出力のコンテンツは含まれません。これらのチャンクをリアルタイムで読み取って、完全な結果を再構築します。

    I
    like
    apple
    .
Java SDK では、パラメーターは incrementalOutput と呼ばれます。HTTP 呼び出しの場合、incremental_outputparameters オブジェクトに配置できます。
QwQ モデルと思考モードの Qwen3 モデルは、true のみをサポートします。Qwen3 商用モデルのデフォルトは false なので、思考モードを使用する場合は、このパラメーターを true に手動で設定する必要があります。
Qwen3 オープンソースモデルは false をサポートしていません。

response_format object (任意。デフォルト: {"type": "text"}。)

レスポンスのフォーマット。有効な値:

  • {"type": "text"}: (string)(プレーンテキスト) を返します。

  • {"type": "json_object"}: JSON 文字列を返します。

  • {"type": "json_schema","json_schema": {...}}: 指定されたスキーマに準拠した JSON 文字列を返します。

詳細については、「構造化出力」をご参照ください。
サポートされているモデルについては、「サポートされているモデル」をご参照ください。
{"type": "json_object"} を指定する場合、プロンプトでモデルに JSON を返すように明示的に指示する必要があります (例: 「JSON 形式で出力してください」)。そうしないと、エラーが発生します。
Java SDK では、responseFormat を使用します。API を HTTP 経由で呼び出す場合、response_formatparameters

プロパティ

type string (必須)

レスポンスのフォーマット。有効な値は次のとおりです。

  • text: プレーンテキストを返します。

  • json_object: 標準の JSON 文字列を返します。

  • json_schema: 指定されたスキーマに準拠した JSON 文字列を返します。

json_schema object

type が json_schema に設定されている場合、このフィールドは必須です。構造化出力の構成を定義します。

プロパティ

name string (必須)

スキーマの一意の識別子。英字 (大文字と小文字を区別しない)、数字、アンダースコア、ハイフンのみが許可されます。最大長は 64 文字です。

description string (任意)

スキーマの目的の説明。これは、モデルが出力のセマンティックコンテキストを理解するのに役立ちます。

schema object (任意)

JSON スキーマ標準に従い、モデルの出力のデータ構造を定義するオブジェクト。

JSON スキーマの構築方法については、「JSON スキーマ

strict boolean (任意) デフォルト: false

モデルがすべてのスキーマ制約に厳密に従う必要があるかどうかを指定します。

  • true (推奨)

    モデルは、フィールドタイプ、必須フィールド、フォーマットなどのすべての制約を強制し、出力が完全に準拠していることを保証します。

  • false (非推奨)

    モデルはスキーマに緩やかに従うだけで、仕様に違反する出力を生成する可能性があり、検証が失敗する原因となることがあります。

result_format string (任意)。デフォルト: text (Qwen3-Max、Qwen3-VL、QwQ モデル、Qwen3 オープンソースモデル (qwen3-next-80b-a3b-instruct を除く)のデフォルトは message です。)

返されるデータのフォーマット。これを message に設定すると、マルチターン対話により適しています。

プラットフォームは後でデフォルト値を message に標準化します。
Java SDK では、パラメーターは resultFormat です。HTTP 呼び出しの場合、result_formatparameters オブジェクトに渡すことができます。
モデルが Qwen-VL/QVQ の場合、text を設定しても効果はありません。
思考モードの Qwen3-Max、Qwen3-VL、および Qwen3 モデルは、message にのみ設定できます。Qwen3 商用モデルのデフォルトは text なので、このパラメーターを message に設定する必要があります。
Java SDK を使用して Qwen3 オープンソースモデルを呼び出し、text を渡すと、レスポンスは message 形式になります。

logprobs boolean (任意)。デフォルト: false

出力トークンの対数確率を返すかどうかを指定します。有効な値:

  • true

    戻る

  • false

    値は返されません。

サポートされているモデル:

  • qwen-plus シリーズのスナップショットバージョン (安定版を除く)。

  • qwen-turbo シリーズのスナップショットバージョン (安定版を除く)。

  • qwen3-vl-plus シリーズ (安定版を含む)。

  • qwen3-vl-flash シリーズ (安定版を含む)。

  • Qwen3 オープンソースモデル。

HTTP を使用する場合、logprobsparameters オブジェクト内に配置します。

top_logprobs integer (任意) デフォルト: 0

各生成ステップで返す最も可能性の高い候補トークンの数を指定します。

有効値: [0, 5]

このパラメーターは、logprobstrue の場合にのみ使用されます。

Java SDK では、topLogprobs を使用します。HTTP 呼び出しの場合、top_logprobsparameters オブジェクトに含めます。

n integer (任意) デフォルト: 1

このパラメーターは、生成するレスポンスの数を指定します。値は 1-4 の範囲である必要があります。クリエイティブライティングや広告コピーなど、複数のレスポンスが必要なシナリオでは、より高い n 値を設定できます。

このパラメーターは現在、Qwen3 (ノンシンキングモード) モデルでのみサポートされています。tools パラメーターが渡された場合、その値は 1 に固定されます。
より高い n 値を設定しても入力トークンの消費量は増加しませんが、出力トークンの消費量は増加します。
HTTP を使用する場合、nparameters オブジェクト内に配置できます。

stop string or array (任意)

このパラメーターはストップワードを指定します。stop で指定された文字列または token_id がモデルによって生成されたテキストに現れた場合、モデルは直ちにテキストの生成を停止します。

モデルの出力を制御するために禁止用語を渡します。

stop が配列の場合、token_id 値と文字列の両方を要素として使用しないでください。たとえば、["Hello",104307] は有効な値ではありません。
HTTP を使用する場合、stop パラメーターを parameters オブジェクト内に配置します。

tools array (任意)

モデルが関数呼び出しに使用できる 1 つ以上のツールオブジェクトを含む配列。詳細については、「関数呼び出し」をご参照ください。

tools を使用する場合、result_formatmessage に設定します。

関数呼び出しを開始したり、ツール実行結果を送信したりする際には、tools パラメーターを設定します。

プロパティ

type string (必須)

ツールのタイプ。現在、function のみがサポートされています。

function object (必須)

プロパティ

name string (必須)

ツール関数の名前。英数字で構成され、アンダースコアとハイフンを含めることができます。最大長は 64 文字です。

description string (必須)

ツール関数の説明。モデルはこの説明を使用して、いつ、どのように関数を呼び出すかを決定します。

parameters object (任意) デフォルト: {}

ツールのパラメーターの説明。有効な JSON スキーマである必要があります。JSON スキーマの詳細については、「JSON スキーマのドキュメント」をご参照ください。parameters オブジェクトが空の場合、ツールには入力パラメーターがありません (時間クエリツールなど)。

ツール呼び出しの精度を向上させるには、parameters を提供してください。
HTTP を使用する場合、toolsparameters オブジェクト内に配置します。これは現在、qwen-vl シリーズモデルではサポートされていません。

tool_choice string or object (任意)。デフォルト: auto

ツール選択ポリシー。このパラメーターを設定して、特定のツールを常に使用したり、すべてのツールを無効にしたりするなど、特定の問題タイプに対して特定のツール呼び出しメソッドを強制します。

  • auto

    大規模言語モデル (LLM) はツールポリシーを自律的に選択します。

  • none

    特定のリクエストに対してツール呼び出しを一時的に無効にするには、tool_choice パラメーターを none に設定します。

  • {"type": "function", "function": {"name": "the_function_to_call"}}

    特定のツールへの呼び出しを強制するには、tool_choice パラメーターを {"type": "function", "function": {"name": "the_function_to_call"}} に設定します。ここで、the_function_to_call は指定されたツール関数の名前です。

    思考モードモデルは、特定のツールへの呼び出しを強制することをサポートしていません。
Java SDK では、toolChoice を使用します。HTTP 経由で呼び出す場合、tool_choiceparameters オブジェクトに配置します。

parallel_tool_calls boolean (任意)。デフォルト: false

並列ツール呼び出しを有効にするかどうかを指定します。

有効な値:

  • true: 有効

  • false: 無効。

詳細については、「並列ツール呼び出し」をご参照ください。

Java SDK の場合、パラメーターは parallelToolCalls です。HTTP 呼び出しの場合、parallel_tool_callsparameters オブジェクトに含めます。

チャット応答オブジェクト (ストリーミング形式と非ストリーミング形式は一貫しています)

{
  "status_code": 200,
  "request_id": "902fee3b-f7f0-9a8c-96a1-6b4ea25af114",
  "code": "",
  "message": "",
  "output": {
    "text": null,
    "finish_reason": null,
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": "I am a large-scale language model developed by Alibaba Cloud. My name is Qwen."
        }
      }
    ]
  },
  "usage": {
    "input_tokens": 22,
    "output_tokens": 17,
    "total_tokens": 39
  }
}

status_code string

このリクエストの状態コード。値 200 は成功を示します。その他の値は失敗を示します。

Java SDK はこのパラメーターを返しません。呼び出しが失敗した場合、status_codemessage を含む例外がスローされます。

request_id string

この呼び出しの一意の識別子。

Java SDK はこのパラメーターを requestId

code string

エラーコード。成功した場合、このフィールドは空です。

Python SDK のみがこのパラメーターを返します。

output object

呼び出し結果に関する情報。

プロパティ

text string

モデルによって生成された応答。result_format 入力パラメーターが text に設定されている場合、応答内容はこのフィールドで返されます。

finish_reason string

result_format 入力パラメーターが text に設定されている場合、このパラメーターは空ではありません。

次の 4 つの状況が考えられます。

  • null: 生成中に値が null です。

  • stop: モデルの出力が自然に終了したか、入力パラメーターで指定された停止条件がトリガーされました。

  • length: 生成長が最大制限を超えました。

  • tool_calls: ツール呼び出しが発生しました。

choices array

モデルの出力。このパラメーターは、`result_format` が `message` に設定されている場合に返されます。

プロパティ

finish_reason string

4 つのシナリオがあります。

  • null: 生成中に値が null です。

  • stop: モデルの出力が自然に終了したか、入力パラメーターで指定された停止条件がトリガーされました。

  • length: 生成長が最大制限を超えました。

  • tool_calls: ツール呼び出しが発生しました。

message object

モデルによって出力されたメッセージオブジェクト。

プロパティ

role string

出力メッセージのロール。値は `assistant` に固定されています。

content string or array

出力メッセージの内容。Qwen-VL または Qwen-Audio シリーズモデルを使用している場合、これは array です。それ以外の場合は string です。

関数呼び出しが開始された場合、この値は空です。

プロパティ

text string

Qwen-VL または Qwen-Audio シリーズモデルを使用している場合の出力メッセージの内容。

image_hw array

Qwen-VL シリーズモデルで `vl_enable_image_hw_output` パラメーターが有効になっている場合、2 つのケースがあります。

  • 画像入力: 画像の高さと幅をピクセル単位で返します。

  • 動画入力: 空の配列を返します。

reasoning_content string

モデルのディープシンキングの内容。

tool_calls array

モデルがツールを呼び出す必要がある場合、`tool_calls` パラメーターが生成されます。

プロパティ

function object

呼び出すツールの名前とその入力パラメーター。

プロパティ

name string

呼び出すツールの名前。

arguments string

ツールに入力するパラメーター (JSON 文字列として)。

大規模言語モデルの応答のランダム性のため、出力される JSON 文字列が常にあなたの関数を満たすとは限りません。関数に渡す前にパラメーターを検証してください。

index integer

`tool_calls` 配列内の現在の tool_calls オブジェクトのインデックス。

id string

このツール応答の ID。

type string

ツールのタイプ。値は function に固定されています。

logprobs object

現在の `choices` オブジェクトの確率情報。

プロパティ

content array

対数確率情報を持つトークンの配列。

プロパティ

token string

現在のトークン。

bytes array

現在のトークンの元の UTF-8 バイトのリスト。これは、絵文字や漢字を処理する際に出力内容を正確に復元するのに役立ちます。

logprob float

現在のトークンの対数確率。null 値は非常に低い確率を示します。

top_logprobs array

現在の位置で最も可能性の高いトークンとその対数確率。要素の数は top_logprobs 入力パラメーターと一致します。

プロパティ

token string

現在のトークン。

bytes array

現在のトークンの元の UTF-8 バイトのリスト。これは、絵文字や漢字を処理する際に出力内容を正確に復元するのに役立ちます。

logprob float

現在のトークンの対数確率。null 値は非常に低い確率を示します。

usage map

このチャットリクエストで使用されるトークン情報。

プロパティ

input_tokens integer

トークンに変換された後のユーザー入力の長さ。

output_tokens integer

トークンに変換された後のモデル出力の長さ。

input_tokens_details integer

Qwen-VL モデルまたは QVQ モデルを使用する場合、このパラメーターはトークンに変換された後の入力コンテンツの長さに関する詳細を提供します。

プロパティ

text_tokens integer

Qwen-VL モデルまたは QVQ モデルを使用する場合、これはトークンに変換された後の入力テキストの長さです。

image_tokens integer

トークンに変換された後の入力画像の長さ。

video_tokens integer

トークンに変換された後の入力動画ファイルまたは画像リストの長さ。

total_tokens integer

このフィールドは、入力がプレーンテキストの場合に返されます。input_tokensoutput_tokens の合計です。

image_tokens integer

このフィールドは、入力に image が含まれる場合に返され、入力画像のトークン単位の長さを指定します。

video_tokens integer

このフィールドは、入力に video が含まれる場合に返され、トークンへの変換後の入力動画の長さを表します。

audio_tokens integer

このフィールドは、入力コンテンツに audio が含まれる場合に返されます。トークンへの変換後のユーザーの入力音声の長さを表します。

output_tokens_details integer

トークンへの変換後の出力コンテンツの詳細な長さ。

プロパティ

text_tokens integer

トークンへの変換後の出力テキストの長さ。

reasoning_tokens integer

トークンへの変換後の思考プロセスの長さ。

prompt_tokens_details object

入力トークンの詳細な分類。

プロパティ

cached_tokens integer

キャッシュにヒットしたトークンの数。コンテキストキャッシュの詳細については、「コンテキストキャッシュ」をご参照ください。

cache_creation object

明示的なキャッシュ作成に関する情報。

プロパティ

ephemeral_5m_input_tokens integer

5 分間の有効期間を持つ明示的なキャッシュを作成するために使用されるトークンの長さ。

cache_creation_input_tokens integer

明示的なキャッシュを作成するために使用されるトークンの長さ。

cache_type string

明示的なキャッシュを使用する場合、ephemeral 値がこのパラメーターに割り当てられます。それ以外の場合、このパラメーターは存在しません。

エラーコード

モデルの呼び出しが失敗し、エラーメッセージが返された場合は、「エラーメッセージ」を参照して問題を解決してください。