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

Alibaba Cloud Model Studio:DashScope API reference

最終更新日:Jan 29, 2026

Qwen DashScope API の入出力パラメーターと、典型的なシナリオのコードサンプルについて説明します。

シンガポール

HTTP エンドポイント:

  • Qwen 大規模言語モデル: POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • Qwen-VL モデル: 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 エンドポイント:

  • Qwen 大規模言語モデル: 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 大規模言語モデル: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation

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

SDK 呼び出しに base_url は必要ありません。

API キーを作成し、環境変数として設定する必要があります。DashScope SDK を使用する場合は、DashScope SDK をインストールしてください。

リクエストボディ

テキスト入力

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記の base_url はシンガポールリージョン用です。
messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': 'Who are you?'}
]
response = dashscope.Generation.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="qwen-plus", # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください。
    messages=messages,
    result_format='message'
    )
print(response)

Java

// DashScope SDK V2.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");
        // 上記の base_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()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                // シンガポール/バージニアリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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("An error occurred while calling the generation service: " + 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/model-studio/get-api-key をご参照ください。
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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/model-studio/get-api-key をご参照ください。
const apiKey = process.env.DASHSCOPE_API_KEY;

const data = {
    model: "qwen-plus", // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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)
    {
        // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: string? apiKey = "sk-xxx";
        // シンガポール/バージニアリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("The API key is not set. Make sure that the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }

        // リクエスト URL とコンテンツを設定します。
        string url = "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
        // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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 $"Request failed: {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/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)
	}

	// リクエストヘッダーを設定します。
	// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey := "sk-xxx"
	// シンガポール/バージニアリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/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(
    # 環境変数を設定していない場合は、次の行を 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'),
    # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                // シンガポール/バージニアリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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("An exception occurred: {}", 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 is depicted in the image?"}
        ]
    }
]

responses = 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-vl-plus',  #  モデルを別のマルチモーダルモデルに置き換え、それに応じてメッセージを修正できます。
    messages=messages,
    stream=True,
    incremental_output=True)
    
full_content = ""
print("Streaming output:")
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: {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 is depicted in the image?"))).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-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 is depicted in the image?"}
                ]
            }
        ]
    },
    "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/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-vl-max を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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()
                // 環境変数を設定していない場合は、次の行をご使用の Model Studio API キーに置き換えます: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-vl-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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
# Python 用 DashScope SDK は V1.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 process shown in this video"}]}]
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='qwen2.5-vl-72b-instruct',  # この例では qwen2.5-vl-72b-instruct を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください。
    messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])

Java

// Java 用 DashScope SDK は V2.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/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 process shown in this video")))
                .build();
        MultiModalConversationParam param = 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(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 process shown 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": "This is useful when you want to know the current time.",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "This is useful when you want to query the weather of a specified city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "A city or a district, such as Beijing, Hangzhou, or Yuhang District."
                    }
                }
            },
            "required": [
                "location"
            ]
        }
    }
]
messages = [{"role": "user", "content": "What is the weather in Hangzhou?"}]
response = dashscope.Generation.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'),
    # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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 + " is sunny 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 of a specified region")
                .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("Weather in Hangzhou").build();
        List<Message> messages = new ArrayList<>();
        messages.addAll(Arrays.asList(systemMsg, userMsg));
        GenerationParam param = GenerationParam.builder()
                // シンガポール/バージニアリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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");
        // 上記の base_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": "What is the weather in Hangzhou?"
        }]
    },
    "parameters": {
        "result_format": "message",
        "tools": [{
            "type": "function",
            "function": {
                "name": "get_current_time",
                "description": "This is useful when you want to know the current time.",
                "parameters": {}
            }
        },{
            "type": "function",
            "function": {
                "name": "get_current_weather",
                "description": "This is useful when you want to query the weather of a specified city.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "A city or a district, such as Beijing, Hangzhou, or Yuhang District."
                        }
                    }
                },
                "required": ["location"]
            }
        }]
    }
}'

非同期呼び出し

# Python 用 DashScope SDK は V1.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'
# 上記の base_url はシンガポールリージョン用です。
async def main():
    response = await AioGeneration.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'),
        # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/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(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: 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(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: 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 モデルが含まれます。

特定のモデル名と課金情報については、「モデル」をご参照ください。

messages array (必須)

モデルの会話コンテキストを時系列順に示します。

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

メッセージタイプ

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

大規模言語モデルのロール、トーン、タスクオブジェクト、または制約を設定するシステムメッセージ。このメッセージは通常、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 です。

2 つの機能が利用可能です:

  • 動画ファイルを入力すると、このパラメーターはフレーム抽出の周波数を制御します。1 フレームは 秒ごとに抽出されます。

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

    Qwen2.5-VL および Qwen3-VL モデル、および QVQ モデルをサポートします。

値の例:

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

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

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

max_frames integer (任意)

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

  • 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 です。

OpenAI 互換 API は max_frames の指定をサポートしていません。特定のモデルのデフォルト値が使用されます。

min_pixels integer (任意)

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

有効範囲

  • 画像入力:

    • 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-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}

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

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

max_pixels integer (任意)

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

  • 画像入力:

    • 適用モデル:QVQ および Qwen-VL モデルでサポートされています。

    • 値の範囲:

      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="6b95ff6e980ca">vl_high_resolution_images</a> パラメーターが有効になっているかどうかによって決まります。

      • vl_high_resolution_imagesFalse に設定されている場合:

        • 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-VLqwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815max_pixels は無効です。入力画像の最大ピクセル数は 16777216 に固定されます。

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

    • 値の例: {"image":"https://xxxx.jpg", "max_pixels": 8388608}

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

    • 適用モデル:Qwen-VL、QVQ

    • 値の範囲:

      max_pixels の値の範囲

      • 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 です。

    • 値の例:

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

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

total_pixels integer (任意)

動画から抽出されたすべてのフレームの総ピクセル数を制限します (フレームあたりのピクセル数 × 総フレーム数)。

動画の総ピクセル数がこの制限を超えると、システムは動画フレームを縮小します。ただし、単一フレームのピクセル値が [min_pixels, max_pixels] の範囲内に収まるようにします。

  • 適用モデル:Qwen-VL、QVQ

  • 値の範囲:

    total_pixels の値の範囲

    • 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 画像トークン) に対応します。

  • 値の例:

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

    • 画像リスト入力: {"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 (任意)

部分モードを有効にするかどうかを指定します。詳細については、「部分モード」をご参照ください。

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

  • Qwen-Max シリーズ

    qwen3-max、qwen3-max-2025-09-23、qwen3-max-preview (非思考モード)、qwen-max、qwen-max-latest、および qwen-max-2025-01-25 以降のスナップショットモデル

  • Qwen-Plus シリーズ (非思考モード)

    qwen-plus、qwen-plus-latest、および qwen-plus-2025-01-25 以降のスナップショットモデル

  • Qwen-Flash シリーズ (非思考モード)

    qwen-flash、および qwen-flash-2025-07-28 以降のスナップショットモデル

  • Qwen-Coder シリーズ

    qwen3-coder-plus、qwen3-coder-flash、qwen3-coder-480b-a35b-instruct、qwen3-coder-30b-a3b-instruct

  • Qwen-VL シリーズ

    • qwen3-vl-plus シリーズ (非思考モード)

      qwen3-vl-plus、および qwen3-vl-plus-2025-09-23 以降のスナップショットモデル

    • qwen3-vl-flash シリーズ (非思考モード)

      qwen3-vl-flash、および qwen3-vl-flash-2025-10-15 以降のスナップショットモデル

    • qwen-vl-max シリーズ

      qwen-vl-max、qwen-vl-max-latest、および qwen-vl-max-2025-04-08 以降のスナップショットモデル

    • qwen-vl-plus シリーズ

      qwen-vl-plus、qwen-vl-plus-latest、および qwen-vl-plus-2025-01-25 以降のスナップショットモデル

  • Qwen-Turbo シリーズ (非思考モード)

    qwen-turbo、qwen-turbo-latest、および qwen-turbo-2024-11-01 以降のスナップショットモデル

  • Qwen オープンソースシリーズ

    Qwen3 オープンソースモデル (非思考モード)、Qwen2.5 シリーズテキストモデル、Qwen3-VL オープンソースモデル (非思考モード)

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。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 (非思考モード)、Qwen3-Instruct シリーズ、Qwen3-Coder シリーズ、qwen-max シリーズ、qwen-plus シリーズ (非思考モード)、qwen-flash シリーズ (非思考モード)、qwen-turbo シリーズ (非思考モード)、Qwen オープンソースシリーズ、qwen-vl-max-2025-08-13、および Qwen3-VL (非思考モード):0.8

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 (思考モード)、Qwen3-VL (思考モード)、Qwen3-Thinking、QwQ シリーズ、Qwen3-Omni-Captioner:0.95

Java SDK では、パラメーターは topP です。HTTP 経由で API を呼び出す場合は、top_pparameters オブジェクトに追加します。
QVQ モデルのデフォルトの top_p 値は変更しないでください。

top_k integer (任意)

生成中のサンプリングの候補セットのサイズ。たとえば、値を 50 に設定すると、単一の生成で最もスコアの高い 50 個のトークンのみがランダムサンプリングの候補セットとして使用されます。値が大きいほどランダムな出力になり、値が小さいほど確定的な出力になります。`null` または 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_kparameters オブジェクトに追加します。
QVQ モデルのデフォルトの top_k 値は変更しないでください。

enable_thinking boolean (任意)

ハイブリッド思考モデルを使用する際に思考モードを有効にするかどうかを指定します。このパラメーターは Qwen3 および Qwen3-VL モデルに適用されます。詳細については、「ディープシンキング」をご参照ください。

有効な値:

  • true

    このパラメーターが有効な場合、思考内容は reasoning_content フィールドで返されます。
  • false

異なるモデルのデフォルト値: サポートされているモデル

Java SDK では、このパラメーターの名前は enableThinking です。HTTP 呼び出しを行う場合、enable_thinkingparameters オブジェクトに配置します。

thinking_budget integer (任意)

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

デフォルト値は、モデルの最大思考連鎖長です。詳細については、「モデル」をご参照ください。

Java SDK では、このパラメーターの名前は thinkingBudget です。HTTP を使用して呼び出しを行う場合、thinking_budgetparameters オブジェクトに配置します。
値は、モデルの最大思考連鎖長にデフォルト設定されます。

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

コードインタープリター機能を有効にするかどうかを指定します。このパラメーターは、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_penaltyparameters オブジェクトに配置します。
qwen-vl-plus_2025-01-25 モデルをテキスト抽出に使用する場合は、repetition_penalty を 1.0 に設定します。
QVQ モデルのデフォルトの repetition_penalty 値は変更しないでください。

presence_penalty float (任意)

モデルがコンテンツの繰り返しをどの程度回避するかを制御します。

値の範囲:[-2.0, 2.0]。正の値は繰り返しを減らし、負の値はそれを増やします。

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

デフォルトの presence_penalty 値

qwen3-max-preview (思考モード)、Qwen3 (非思考モード)、Qwen3-Instruct シリーズ、qwen3-0.6b/1.7b/4b (思考モード)、QVQ シリーズ、qwen-max、qwen-max-latest、qwen-max-latest、qwen2.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。

仕組み

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

プロンプト:この文を英語に翻訳してください:「Esta película es buena. La trama es buena, la actuación es buena, la música es buena, y en general, toda la película es simplemente buena. Es realmente buena, de hecho. La trama es tan buena, y la actuación es tan buena, y la música es tan buena.」

パラメーター値 2.0:この映画はとても良いです。プロットも演技も素晴らしく、音楽も非常に良いです。全体として、この映画は信じられないほど良くできています。実際、本当に秀逸な作品です。プロットは非常にエキサイティングで、演技は傑出しており、音楽はとても美しいです。

パラメーター値 0.0: この映画は良いです。プロットは良く、演技も良く、音楽もまた良いです。そして全体的に、映画全体が非常に良いです。実際、本当に素晴らしいです。プロットは非常に良く、演技もまた非常に際立っており、音楽もまた素晴らしいです。

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

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

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

有効にすると、入力画像の最大ピクセル制限が増加します。制限は 16384 トークンに対応するピクセル値に設定されます。詳細については、「高解像度画像の処理」をご参照ください。

  • vl_high_resolution_images: true:固定解像度戦略が使用され、max_pixels 設定は無視されます。画像がこの解像度を超えると、その総ピクセルはこの制限まで縮小されます。

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

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

    • Qwen3-VL シリーズqwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-081516777216 (各 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_images

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

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

Java SDK では、このパラメーターの名前は vlEnableImageHwOutput です。最小 Java SDK バージョンは 2.20.8 です。HTTP 呼び出しを行う場合は、vl_enable_image_hw_outputparameters オブジェクトに配置します。

max_input_tokens integer (任意)

入力の最大許容トークン長。このパラメーターは現在、qwen-plus-0728 および qwen-plus-latest モデルでのみサポートされています。

  • qwen-plus-latest のデフォルト値:129,024

    デフォルト値は将来的に 1,000,000 に調整される可能性があります。
  • qwen-plus-2025-07-28 のデフォルト値:1,000,000

Java SDK は現在このパラメーターをサポートしていません。HTTP を使用して呼び出しを行う場合は、max_input_tokensparameters オブジェクトに配置します。

max_tokens integer (任意)

応答の最大トークン数。この制限に達すると生成が停止し、返される finish_reasonlength になります。

デフォルト値と最大値は、モデルの最大出力長です。詳細については、「モデル」をご参照ください。

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

max_tokens がトリガーされると、応答の finish_reason フィールドは length になります。

max_tokens は思考連鎖の長さを制限しません。
Java SDK では、このパラメーターは maxTokens です。Qwen-VL モデルの場合、Java SDK では 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-SSEenable として指定します。
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"}:テキスト応答を出力します。

  • {"type": "json_object"}:標準の JSON 文字列を出力します。

  • {"type": "json_schema","json_schema": {...} }:指定されたフォーマットで JSON 文字列を出力します。

詳細については、「構造化出力」をご参照ください。
サポートされているモデルについては、「サポートされているモデル」をご参照ください。
このパラメーターを {"type": "json_object"} に設定した場合、プロンプトでモデルに JSON を出力するように明示的に指示する必要があります。たとえば、「JSON 形式で出力してください」などのプロンプトを使用します。そうしないと、エラーが報告されます。
Java SDK では、このパラメーターの名前は responseFormat です。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 Schema の構築方法については、JSON Schema

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

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

  • true (推奨)

    モデルは、フィールドタイプ、必須フィールド、フォーマットなど、すべての制約に厳密に従います。これにより、出力の 100% の準拠が保証されます。

  • false (非推奨)

    モデルはスキーマに緩やかに従うだけです。これにより、非準拠の出力が生成され、検証が失敗する可能性があります。

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

返されるデータのフォーマット。このパラメーターを message に設定すると、マルチターン対話が簡素化されます。

プラットフォームは、将来のリリースでデフォルト値を message に更新します。
Java SDK では、このパラメーターの名前は resultFormat です。HTTP 経由で呼び出しを行う場合は、result_format parameters オブジェクトに配置します。
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 オープンソースモデル

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 を使用して呼び出しを行う場合は、stopparameters オブジェクトに配置します。

tools array (任意)

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

tools パラメーターを使用する場合、result_format パラメーターを message に設定します。

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

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

ツール関数の名前。名前には、文字、数字、アンダースコア (_)、およびハイフン (-) のみを含める必要があります。最大長は 64 文字です。

description string (必須)

ツール関数の説明。これにより、モデルはツール関数をいつ、どのように呼び出すかを決定できます。

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

ツールのパラメーターの説明。値は有効な JSON スキーマである必要があります。「JSON スキーマ」をご参照ください。parameters パラメーターが空の場合、関数には入力パラメーターがありません。

より正確なツール呼び出しのために parameters を指定してください。
HTTP 呼び出しを行う場合は、toolsparameters オブジェクトに配置します。このパラメーターは現在、qwen-vl シリーズモデルではサポートされていません。

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

ツール選択ポリシー。このパラメーターを設定して、特定の種類の質問に対してツール呼び出しを強制します。たとえば、常に特定のツールを使用したり、すべてのツールを無効にしたりします。

  • auto

    モデルは自動的にツールを選択します。

  • 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_code および message パラメーターの内容を含む例外がスローされます。

request_id string

この呼び出しの一意の ID。

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

code string

エラーコード。呼び出しが成功した場合、このパラメーターは空です。

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

output object

呼び出しの結果。

プロパティ

text string

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

finish_reason string

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

次の 4 つのシナリオを考慮してください:

  • この値は生成時に null です。

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

  • length:出力が最大長を超えたため、生成が終了しました。

  • tool_calls:ツール呼び出しがトリガーされました。

choices array

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

プロパティ

finish_reason string

4 つのケースは次のとおりです:

  • 生成中の値は 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` パラメーターが有効になっている場合、次のケースが適用されます:

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

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

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

Qwen3 モデルの思考プロセスのトークン数。

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 です。それ以外の場合、このパラメーターは返されません。

エラーコード

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