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

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

最終更新日:Feb 05, 2026

このトピックでは、DashScope API を使用して Qwen モデルを呼び出す方法について説明します。入力パラメーター、出力パラメーター、およびコード例が含まれます。

シンガポールリージョン

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 キーと API ホストを取得し、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 をご参照ください
$apiKey = getenv('DASHSCOPE_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 をご参照ください
$apiKey = getenv('DASHSCOPE_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/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 モデルが含まれます。

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

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

機能説明

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

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

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

    Qwen2.5-VLQwen3-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-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinkingqwen3-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 の指定をサポートしていません。特定のモデルのデフォルト値が使用されます。

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}

  • 動画ファイル入力: {"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-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 に固定されます。

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

    • qwen3-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinkingqwen3-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-vl-plus シリーズ、qwen3-vl-flash シリーズ、qwen3-vl-235b-a22b-thinkingqwen3-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 (任意)

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

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

  • 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。response.output.choices[0].message.tool_calls[$index]["id"] から 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

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

Java SDK では、パラメーターは topP です。HTTP 呼び出しを行う場合、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、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-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 whole movie is just good. It is really good, in fact. The plot is so good, and the acting is so good, and the music is so good.」

パラメーター値 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

入力画像の最大ピクセル制限を、16,384 トークンに対応するピクセル値まで増加させるかどうかを指定します。詳細については、「高解像度画像の処理」をご参照ください。

  • 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-0815、および モデル:16,777,216(各 Token32*32 ピクセルに対応し、すなわち 16384*32*32

    • QVQ シリーズおよびその他の Qwen2.5-VL シリーズ モデル:12,845,056(各 Token28*28 ピクセルに対応し、すなわち 16384*28*28

  • vl_high_resolution_imagesfalse の場合、ピクセル制限は max_pixels によって決定されます。max_pixels を超えるピクセル数を持つ入力画像の場合、画像は max_pixels を超えないようにダウンスケールされます。各モデルのデフォルトのピクセル制限は、max_pixels のデフォルト値です。

Java SDK では、バージョン 2.20.8 以降で vlHighResolutionImages をサポートしています HTTP 呼び出しの場合は、vl_high_resolution_imagesparameters オブジェクトに含めることができます。

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

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

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

max_tokens integer (任意)

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

デフォルト値および最大値は、モデルの最大出力長です。詳細については、「テキスト生成 – Qwen」をご参照ください。

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

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

max_tokens は思考の連鎖長を制限しません。
Java SDK では、このパラメーターは maxTokens です。Qwen-VL モデルの場合、Java SDK バージョン 2.18.4 より前のバージョンではパラメーターは 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 形式で出力してください」とモデルに指示する必要があります。そうしないとエラーが発生します。
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 Schema 標準に準拠したオブジェクト。モデルの出力のデータ構造を定義します。

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_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 では、このパラメーターは topLogprobstop_logprobs であり、parameters オブジェクト内にあります。

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

生成する応答の数。有効値:1–4。創造的な執筆や広告コピーの生成など、複数の応答が必要なシナリオでは、n の値を大きく設定できます。

このパラメーターは、Qwen3(非思考モード) モデルでのみサポートされています。tools パラメーターが指定されている場合、n は 1 に固定されます。
n の値を大きくしても、入力トークンの消費量は増えませんが、出力トークンの消費量は増えます。
HTTP 呼び出しでは、nparameters オブジェクトに含めてください。

stop string or array (任意)

停止語を指定します。モデルが生成したテキストに stop で指定された文字列または token_id が出現すると、生成は直ちに停止します。

センシティブな単語を渡して、モデルの出力を制御できます。

stop が配列の場合、token_id と文字列を同時に要素として使用しないでください。たとえば、["Hello",104307] は無効な値です。
HTTP 呼び出しでは、stop パラメーターを parameters オブジェクトに含めてください。

tools array (任意)

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

tools パラメーターを使用する場合、result_formatmessage に設定する必要があります。

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

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

ツール関数の名前。英字、数字、アンダースコア (_)、ハイフン (-) のみがサポートされます。最大長は 64 文字です。

description string (必須)

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

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

ツールのパラメーターの説明。これは有効な JSON スキーマである必要があります。JSON スキーマの詳細については、「Understanding JSON Schema」をご参照ください。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

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

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 パラメーターが有効になっている場合、以下の 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

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

エラーコード

モデル呼び出しがエラーメッセージを返す場合、「エラーメッセージ」をご参照ください。