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

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

最終更新日:Dec 23, 2025

このトピックでは、Qwen API の入力パラメーターと出力パラメーターについて説明します。また、Python などの一般的なプログラミング言語での典型的なシナリオの呼び出し例も提供します。

モデルの概要、選択に関するアドバイス、および使用方法については、「テキスト生成モデルの概要」をご参照ください。

Qwen API は、OpenAI 互換プロトコルまたは DashScope プロトコルを使用して呼び出すことができます。

OpenAI 互換

シンガポールリージョン

SDK の base_url: https://dashscope-intl.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント: POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions

中国 (北京) リージョン

SDK 用の base_url: https://dashscope.aliyuncs.com/compatible-mode/v1

HTTP リクエストエンドポイント: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions

まず API キーを作成し、API キーを環境変数としてエクスポートします。OpenAI SDK を使用する場合は、SDK をインストールします。

リクエストボディ

POST /chat/completions

OpenAI 互換 API をオンラインでデバッグ

POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions

テキスト入力

Python

import os
from openai import OpenAI


client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)

completion = client.chat.completions.create(
    # この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    model="qwen-plus",
    messages=[
        {"role": "system", "content": "あなたは役立つアシスタントです。"},
        {"role": "user", "content": "あなたは誰ですか?"},
    ],
    # Qwen3 モデルでは、enable_thinking パラメーターを使用して思考プロセスを制御します (オープンソースモデルではデフォルトで True、商用モデルでは False)。
    # Qwen3 オープンソースモデルをストリーミング出力なしで使用する場合は、エラーを避けるために次の行のコメントを解除してください。
    # extra_body={"enable_thinking": False},
)
print(completion.model_dump_json())

Java

リクエスト例

// このコードは OpenAI SDK バージョン 2.6.0 を使用しています
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;

public class Main {
    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.builder()
                // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
                .baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1") 
                .build();

        ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
                .addUserMessage("あなたは誰ですか?")
                .model("qwen-plus")
                .build();

        try {
            ChatCompletion chatCompletion = client.chat().completions().create(params);
            System.out.println(chatCompletion);
        } catch (Exception e) {
            System.err.println("Error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // 環境変数が設定されていない場合は、次の行を apiKey: "sk-xxx" に置き換えてください
        // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" 
    }
);

async function main() {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus",  //この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        messages: [
            { role: "system", content: "あなたは役立つアシスタントです。" },
            { role: "user", content: "あなたは誰ですか?" }
        ],
    });
    console.log(JSON.stringify(completion))
}

main();

Go

package main

import (
	"context"
	"os"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
	        // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
		option.WithAPIKey(os.Getenv("DASHSCOPE_API_KEY")), // defaults to os.LookupEnv("OPENAI_API_KEY")
		// 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/ に置き換えてください
		option.WithBaseURL("https://dashscope-intl.aliyuncs.com/compatible-mode/v1/"), 
	)
	chatCompletion, err := client.Chat.Completions.New(
		context.TODO(), openai.ChatCompletionNewParams{
			Messages: openai.F(
				[]openai.ChatCompletionMessageParamUnion{
					openai.UserMessage("あなたは誰ですか?"),
				},
			),
			Model: openai.F("qwen-plus"),
		},
	)

	if err != nil {
		panic(err.Error())
	}

	println(chatCompletion.Choices[0].Message.Content)
}

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)
    {
        // 環境変数が設定されていない場合は、次の行を 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("API Key is not set. Make sure the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }

        // リクエスト URL とコンテンツを設定します
        // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えてください
        string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
        // この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""あなたは役立つアシスタントです。""
                },
                {
                    ""role"": ""user"", 
                    ""content"": ""あなたは誰ですか?""
                }
            ]
        }";

        // リクエストを送信し、応答を取得します
        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}";
            }
        }
    }
}

PHP (HTTP)

<?php
// リクエスト URL を設定します
// 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えてください
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// 環境変数が設定されていない場合は、次の行を $apiKey = "sk-xxx"; に置き換えてください
// シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
$apiKey = getenv('DASHSCOPE_API_KEY');
// リクエストヘッダーを設定します
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// リクエストボディを設定します
$data = [
    // この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    "model" => "qwen-plus",
    "messages" => [
        [
            "role" => "system",
            "content" => "あなたは役立つアシスタントです。"
        ],
        [
            "role" => "user",
            "content" => "あなたは誰ですか?"
        ]
    ]
];
// cURL セッションを初期化します
$ch = curl_init();
// cURL オプションを設定します
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// cURL セッションを実行します
$response = curl_exec($ch);
// エラーを確認します
if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}
// cURL リソースを閉じます
curl_close($ch);
// 応答を出力します
echo $response;
?>

curl

シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。北京リージョンのモデルを使用する場合は、URL を `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` に置き換えてください。
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "messages": [
        {
            "role": "system",
            "content": "あなたは役立つアシスタントです。"
        },
        {
            "role": "user", 
            "content": "あなたは誰ですか?"
        }
    ]
}'

ストリーミング出力

詳細については、「ストリーミング」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",  # この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    messages=[{'role': 'system', 'content': 'あなたは役立つアシスタントです。'},
                {'role': 'user', 'content': 'あなたは誰ですか?'}],
    stream=True,
    stream_options={"include_usage": True}
    )
for chunk in completion:
    print(chunk.model_dump_json())

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

async function main() {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus", // この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        messages: [
            {"role": "system", "content": "あなたは役立つアシスタントです。"},
            {"role": "user", "content": "あなたは誰ですか?"}
        ],
        stream: true,
    });
    for await (const chunk of completion) {
        console.log(JSON.stringify(chunk));
    }
}

main();

curl

シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。 北京リージョンのモデルを使用する場合は、URL を `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` に置き換えてください。
curl --location "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-plus",
    "messages": [
        {
            "role": "system",
            "content": "あなたは役立つアシスタントです。"
        },
        {
            "role": "user", 
            "content": "あなたは誰ですか?"
        }
    ],
    "stream":true
}'

画像入力

大規模言語モデルを使用して画像を分析する方法の詳細については、「画像理解」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-vl-plus",  # この例では qwen-vl-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
    messages=[{"role": "user","content": [
            {"type": "image_url",
             "image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
            {"type": "text", "text": "これは何ですか?"},
            ]}]
    )
print(completion.model_dump_json())

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
         // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

async function main() {
    const response = await openai.chat.completions.create({
        model: "qwen-vl-max", // この例では qwen-vl-max を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
        messages: [{role: "user",content: [
            { type: "image_url",image_url: {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
            { type: "text", text: "これは何ですか?" },
        ]}]
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください。 北京リージョンのモデルを使用する場合は、URL を `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` に置き換えてください。
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen-vl-plus",
  "messages": [{
      "role": "user",
      "content": [
       {"type": "image_url","image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
       {"type": "text","text": "これは何ですか?"}
       ]}]
}'

動画入力

以下は、画像のリストを渡す例です。動画ファイルの受け渡しなど、その他の使用方法については、「画像理解」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)
completion = client.chat.completions.create(
    # この例では qwen-vl-max を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
    model="qwen-vl-max",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "video",
                "video": [
                    "https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
                    "https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
                    "https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
                    "https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"]
            },
            {
                "type": "text",
                "text": "この動画のプロセスを説明してください。"
            }]}]
)
print(completion.model_dump_json())

Node.js

// package.json で "type": "module" を指定していることを確認してください。
import OpenAI from "openai"; 

const openai = new OpenAI({
    // 環境変数が設定されていない場合は、次の行を apiKey: "sk-xxx" に置き換えてください
    // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    apiKey: process.env.DASHSCOPE_API_KEY, 
    // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"    
});

async function main() {
    const response = await openai.chat.completions.create({
        // この例では qwen-vl-max を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください 
        model: "qwen-vl-max",
        messages: [{
            role: "user",
            content: [
                {
                    type: "video",
                    video: [
                        "https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"
                    ]
                },
                {
                    type: "text",
                    text: "この動画のプロセスを説明してください。"
                }
        ]}]
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポールリージョンと北京リージョンの API キーは異なります。詳細については、「API キーの取得と設定」をご参照ください。`base_url` はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、`base_url` を `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` に置き換える必要があります。
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
    "model": "qwen-vl-max",
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "video",
                    "video": [
                        "https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
                        "https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"
                    ]
                },
                {
                    "type": "text",
                    "text": "この動画のプロセスを説明してください。"
                }
            ]
        }
    ]
}'

ツール呼び出し

関数呼び出しの完全なワークフローコードについては、「関数呼び出し」をご参照ください。
Qwen3 (思考モード) および QwQ モデルの関数呼び出しコードについては、「ディープシンキング」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)

tools = [
    # ツール 1: 現在時刻を取得
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "現在時刻を知りたいときに便利です。",
            "parameters": {}  # 現在時刻の取得には入力が不要なため、parameters は空の辞書です
        }
    },  
    # ツール 2: 指定された都市の天気を取得
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "特定の都市の天気を調べたいときに便利です。",
            "parameters": {  
                "type": "object",
                "properties": {
                    # 天気を調べるには場所が必要なため、パラメーターは location に設定されています
                    "location": {
                        "type": "string",
                        "description": "北京、杭州、余杭区などの都市または地区。"
                    }
                },
                "required": ["location"]
            }
        }
    }
]
messages = [{"role": "user", "content": "杭州の天気はどうですか?"}]
completion = client.chat.completions.create(
    model="qwen-plus",  # この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    messages=messages,
    tools=tools
)

print(completion.model_dump_json())

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // 環境変数が設定されていない場合は、次の行を apiKey: "sk-xxx" に置き換えてください
        // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        // 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

const messages = [{"role": "user", "content": "杭州の天気はどうですか?"}];
const tools = [
// ツール 1: 現在時刻を取得
{
    "type": "function",
    "function": {
        "name": "get_current_time",
        "description": "現在時刻を知りたいときに便利です。",
        // 現在時刻の取得には入力が不要なため、parameters は空です
        "parameters": {}  
    }
},  
// ツール 2: 指定された都市の天気を取得
{
    "type": "function",
    "function": {
        "name": "get_current_weather",
        "description": "特定の都市の天気を調べたいときに便利です。",
        "parameters": {  
            "type": "object",
            "properties": {
                // 天気を調べるには場所が必要なため、パラメーターは location に設定されています
                "location": {
                    "type": "string",
                    "description": "北京、杭州、余杭区などの都市または地区。"
                }
            },
            "required": ["location"]
        }
    }
}
];

async function main() {
    const response = await openai.chat.completions.create({
        model: "qwen-plus", // この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        messages: messages,
        tools: tools,
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポールリージョンと北京リージョンの API キーは異なります。詳細については、「API キーの取得と設定」をご参照ください。以下の `base_url` はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、`base_url` を `https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions` に置き換える必要があります。
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-plus",
    "messages": [
        {
            "role": "system",
            "content": "あなたは役立つアシスタントです。"
        },
        {
            "role": "user", 
            "content": "杭州の天気はどうですか?"
        }
    ],
    "tools": [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "現在時刻を知りたいときに便利です。",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "特定の都市の天気を調べたいときに便利です。",
            "parameters": {
                "type": "object",
                "properties": {
                    "location":{
                        "type": "string",
                        "description": "北京、杭州、余杭区などの都市または地区。"
                    }
                },
                "required": ["location"]
            }
        }
    }
  ]
}'

非同期呼び出し

import os
import asyncio
from openai import AsyncOpenAI
import platform

client = AsyncOpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # 中国 (北京) リージョンのモデルを使用する場合は、そのリージョンの API KEY を使用する必要があります。こちらから取得してください: https://modelstudio.console.alibabacloud.com/?tab=model#/api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

async def main():
    response = await client.chat.completions.create(
        messages=[{"role": "user", "content": "あなたは誰ですか?"}],
        model="qwen-plus",  # この例では qwen-plus を使用しています。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    )
    print(response.model_dump_json())

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

model string (必須)

使用するモデルの名前。

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

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

messages array (必須)

大規模言語モデルに渡すコンテキストを、会話の順序で配置します。

メッセージタイプ

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

大規模言語モデルのロール、トーン、タスク目標、または制約を設定するために使用されるシステムメッセージです。通常、messages 配列の先頭に配置されます。

システムメッセージは QwQ モデルには推奨されず、QVQ モデルには効果がありません。

プロパティ

content string (必須)

モデルのロール、動作、応答スタイル、およびタスクの制約を定義するシステム命令。

role string (必須)

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

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

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

プロパティ

content string or array (必須)

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

マルチモーダルモデルまたは明示的なキャッシュのプロパティ

type string (必須)

有効な値:

  • text

    テキスト入力用に text に設定します。

  • image_url

    画像入力には、image_url に設定します。

  • input_audio

    音声入力の場合は input_audio に設定します。

  • video

    ビデオ入力がイメージのリストである場合、video に設定します。

  • video_url

    ビデオファイルの入力の場合、video_url に設定します。

    一部の Qwen-VL モデルのみが動画ファイルを入力として受け入れることができます。詳細については、「動画理解 (Qwen-VL)」をご参照ください。QVQ および Qwen-Omni モデルは、直接の動画ファイル入力をサポートしています。

text string

入力テキスト。このパラメーターは、typetext の場合に必須です。

image_url object

入力画像情報です。このパラメーターは、typeimage_url の場合に必須です。

プロパティ

url string(必須)

画像の URL または Base64 エンコードされたデータ URL。ローカルファイルを渡すには、「画像理解」をご参照ください。

input_audio object

入力音声情報です。このパラメーターは typeinput_audio の場合に必須です。

プロパティ

data string(必須)

音声の URL または Base64 エンコードされたデータ URL。ローカルファイルを渡すには、「Base64 エンコードされたローカルファイルの入力」をご参照ください。

format string(必須)

入力オーディオのフォーマット。mp3wav など。

video array

イメージリスト形式のビデオ情報。このパラメーターは typevideo の場合に必須です。使用方法については、ビデオ理解 (Qwen-VL)ビデオ理解 (QVQ)、または ビデオ理解 (Qwen-Omni) をご参照ください。

値の例:

[
    "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"
]

video_url object

入力ビデオファイルの情報です。このパラメーターは、 typevideo_url の場合に必須です。

Qwen-VL は動画ファイル内の視覚情報のみを理解できます。Qwen-Omni は視覚情報と音声情報の両方を理解できます。

プロパティ

url string (必須)

動画ファイルの公開 URL または Base64 エンコードされたデータ URL。ローカル動画ファイルを入力するには、「Base64 エンコードされたローカルファイルの入力」をご参照ください。

min_pixels integer (任意)

入力イメージの最小ピクセルしきい値を設定します。入力イメージまたはビデオフレームのピクセル数が min_pixels より少ない場合、総ピクセル数が min_pixels を超えるまで拡大されます。

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

  • 値の範囲: 以下の通り

    min_pixels の値の範囲

    • Qwen3-VL: デフォルト値と最小値は 65536 です。

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

    • QVQ およびその他の Qwen2.5-VL モデル: デフォルト値と最小値は 3136 です。

  • 値の例: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536}

max_pixels integer (任意)

入力イメージまたはビデオフレームの最大ピクセルしきい値を設定します。入力イメージのピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元のイメージを認識します。ピクセル数が max_pixels を超える場合、イメージは総ピクセル数が max_pixels 未満になるまでダウンスケールされます。

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

  • 値の範囲: 以下の通り

    max_pixels の値の範囲

    max_pixels の値は、<a baseurl="t2614691_v57_5_1.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="#0edad44583knr" id="c4daac7bc1pvl">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 です。

      • QVQ やその他の Qwen2.5-VL モデルでは、デフォルト値は 1003520 で、最大値は 12845056 です。

    • vl_high_resolution_imagesTrue の場合:

      • Qwen3-VLqwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latestqwen-vl-plus-0815 では、max_pixels は無効です。入力イメージの最大ピクセル数は 16777216 に固定されています。

      • QVQ およびその他の Qwen2.5-VL モデル: max_pixels は無効です。入力イメージの最大ピクセル数は 12845056 に固定されています。

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

cache_control object (任意)

明示的なキャッシュを有効にします。詳細については、「明示的なキャッシュ」をご参照ください。

プロパティ

type string (必須)

ephemeral のみがサポートされています。

role string (必須)

ユーザーメッセージのロール。値は user です。

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

モデルの返信。これは通常、マルチターン対話のコンテキストとしてモデルに返送されます。

プロパティ

content string (任意)

モデルの応答のテキスト内容です。tool_calls が含まれる場合、content は空でもかまいません。それ以外の場合、content は必須です。

role string (必須)

アシスタントメッセージのロールは assistant です。

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

パーシャルモードを有効にします。

有効な値:

  • true

  • false

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

  • 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 (必須)

ツール関数の出力コンテンツ。文字列である必要があります。ツールが JSON などの構造化データを返す場合は、文字列にシリアル化する必要があります。

role string (必須)

tool に固定されています。

tool_call_id string (必須)

関数呼び出しを開始した後に返される ID。`completion.choices[0].message.tool_calls[$index].id` から取得されます。この ID は、ツールメッセージを対応するツールに関連付けるために使用されます。

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

ストリーミング出力モードで応答するかどうかを指定します。詳細については、「ストリーミング」をご参照ください。

有効な値:

  • false: モデルは生成後、完全なコンテンツを一度に返します。

  • true: 出力は増分的に生成され、送信されます。コンテンツの一部が生成されると、データブロック (チャンク) が返されます。完全な応答を組み立てるには、これらのチャンクをリアルタイムで読み取る必要があります。

ユーザーエクスペリエンスを向上させ、タイムアウトのリスクを低減させるには、このパラメーターを true に設定することをお勧めします。

stream_options object (任意)

ストリーミング出力用の設定オプション。このパラメーターは、streamtrue に設定されている場合のみ有効です。

プロパティ

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

応答の最後のデータブロックにトークン消費量情報を含めるかどうかを指定します。

有効な値:

  • true

  • false

ストリーミング出力の場合、トークン消費量情報は応答の最後のデータブロックにのみ表示されます。

modalities 配列 (オプション) デフォルト値: ["text"]

出力データのモダリティ。このパラメーターは Qwen-Omni モデルにのみ適用されます。詳細については、「オムニモーダル」をご参照ください。

有効な値:

  • ["text","audio"]

  • ["text"]

audio object (任意)

出力音声の音声とフォーマット。このパラメーターは Qwen-Omni モデルにのみ適用され、modalities パラメーターを ["text","audio"] に設定する必要があります。詳細については、「Omni-modal」をご参照ください。

プロパティ

voice string (必須)

出力音声の音声。詳細については、「音声リスト」をご参照ください。

format string (必須)

出力音声のフォーマットです。wav のみがサポートされています。

temperature float (任意)

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

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

値の範囲: [0, 2)

`temperature` と `top_p` はどちらも生成されるテキストの多様性を制御します。どちらか一方のみを設定することを推奨します。詳細については、「テキスト生成モデルの概要」をご参照ください。

QVQ モデルのデフォルトの temperature 値を変更することは推奨しません。

top_p float (任意)

ニュークリアスサンプリングの確率しきい値。モデルによって生成されるテキストの多様性を制御します。

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

値の範囲: (0, 1.0]

`temperature` と `top_p` はどちらも生成されるテキストの多様性を制御します。どちらか一方のみを設定することを推奨します。詳細については、「テキスト生成モデルの概要」をご参照ください。

QVQ モデルのデフォルトの top_p 値を変更することは推奨しません。

top_k integer (任意)

生成時にサンプリングする候補トークンの数です。値が大きいほど出力はよりランダムになり、値が小さいほど出力はより決定論的になります。このパラメーターが 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。

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う場合、このパラメーターを extra_body オブジェクトに配置してください。パラメーターは次のように構成されます: `extra_body={"top_k":xxx}`。
QVQ モデルのデフォルトの top_k 値を変更することは推奨しません。

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 値を変更することは推奨しません。

response_format オブジェクト (任意) デフォルト値: {"type": "text"}

返されるコンテンツのフォーマット。有効な値:

  • {"type": "text"}: テキスト応答を出力します。

  • {"type": "json_object"}: 標準フォーマットの JSON 文字列を出力します。

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

リファレンス: 「構造化出力」。
{"type": "json_object"} を指定する場合、プロンプトで、たとえば「Please output in JSON format」のように、モデルに JSON を出力するように明示的に指示する必要があります。そうしないと、エラーが発生します。
サポートされているモデルのリストについては、「サポートされているモデル」をご参照ください。

プロパティ

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 ブール値 (オプション) デフォルト値: false

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

  • true (推奨)

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

  • false (非推奨)

    モデルはスキーマに緩やかに従います。出力が仕様に準拠せず、検証に失敗する可能性があります。

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

このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う場合、パラメーターを[extra_body] オブジェクトに格納します。構成は次のとおりです: extra_body={"max_input_tokens": xxx}

max_tokens integer (任意)

モデルの出力の最大トークン数を制限します。生成コンテンツがこの値を超えた場合、生成は途中で停止し、返されるfinish_reasonlength になります。

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

このパラメーターは、要約やキーワードの生成など、出力長を制御する必要があるシナリオや、コストと応答時間を削減する場合に役立ちます。

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

max_tokens は、思考モデルの思考の連鎖の長さを制限しません。

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

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

  • vl_high_resolution_images: true: 固定解像度方式が使用され、max_pixels 設定は無視されます。イメージがこの解像度を超えた場合、その総ピクセル数はこの上限までダウンスケールされます。

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

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

    • Qwen3-VL seriesqwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latest、および qwen-vl-plus-0815: 16777216 (各 トークン32*32 ピクセルに相当します。すなわち、16384*32*32 です)

    • QVQ シリーズ、その他の Qwen2.5-VL モデル: 12845056 (各 トークン28*28 ピクセルに対応。すなわち 16384*28*28)

  • vl_high_resolution_imagesfalse の場合: 実際の解像度は、max_pixels とデフォルトの上限の最大値によって決定されます。イメージがこのピクセル上限を超えた場合、ダウンスケールされます。

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

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

    • Qwen3-VL series: 2621440 (2560*32*32、つまりデフォルトの トークン 上限は 2560 となります)

    • qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latest、および qwen-vl-plus-0815: 13107201280*32*32、デフォルトの token 制限は 1280

    • QVQ シリーズ、その他の Qwen2.5-VL モデル: 1003520 (1280*28*28、つまりデフォルトのトークン上限は 1280)

このパラメーターは標準の OpenAI パラメーターではありません。Python SDK で呼び出しを行う場合、このパラメーターを extra_body オブジェクトに配置してください。構成は次のとおりです: `extra_body={"vl_high_resolution_images":xxx}`。

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

生成する応答の数を指定します。値は 1-4 の範囲です。これは、クリエイティブライティングや広告コピーなど、複数の候補となる応答を必要とするシナリオで役立ちます。

qwen-plus および Qwen3 (非思考モード) モデルのみがサポートされています。
tools パラメーターを渡す場合は、n を 1 に設定する必要があります。
`n` を増やすと、入力トークンの消費量は増えませんが、出力トークンの消費量が増えます。

enable_thinking boolean (任意)

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

有効な値:

  • true

    有効にすると、思考コンテンツは reasoning_content フィールドに返されます。
  • false

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

このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う際は、extra_body オブジェクトに配置します。次のように設定します: extra_body={"enable_thinking": xxx}

thinking_budget integer (任意)

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

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

このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用する場合、このパラメーターを extra_body オブジェクトに配置します。 パラメーターを次のように設定します: extra_body={"thinking_budget": xxx}.

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

コードインタープリター機能を有効にするかどうかを指定します。これは、modelqwen3-max-preview で、かつ enable_thinkingtrue の場合にのみ有効になります。詳細については、「コードインタープリター」をご参照ください。

有効な値:

  • true

  • false

このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う場合、このパラメーターを[extra_body] オブジェクトに配置します。 構成は次のとおりです: extra_body={"enable_code_interpreter": xxx}

seed integer (任意)

乱数シードです。このパラメーターは、同じ入力とパラメーターに対して結果の再現性を保証します。呼び出しで同じ seed 値を渡し、他のパラメーターが変更されない場合、モデルは可能な限り同じ結果を返します。

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

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

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

  • true

  • false

思考フェーズで生成されるコンテンツ(reasoning_content)は、対数確率を返しません。

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

  • qwen-plus シリーズのスナップショットモデル (メインモデルを除く)

  • qwen-turbo シリーズのスナップショットモデル (メインモデルを除く)

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

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

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

値の範囲: [0, 5]

このパラメーターは、logprobstrue に設定されている場合にのみ有効です。

stop string or array (任意)

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

モデルの出力を制御するために、禁止用語を渡すことができます。

`stop` が配列の場合、token_id と文字列を要素として同時に使用することはできません。 例えば、["Hello",104307] のように指定することはできません。

tools array (任意)

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

`tools` が設定され、モデルがツールを呼び出す必要があると判断した場合、応答は `tool_calls` フィールドにツール情報を返します。

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

ツール名には、英字、数字、アンダースコア (_)、およびハイフン (-) のみを使用できます。最大長は 64 トークンです。

description string (必須)

ツールの説明。モデルがいつ、どのようにツールを呼び出すかを決定するのに役立ちます。

parameters object (必須)

ツールのパラメーターを記述するための、有効な JSON Schema です。JSON Schema の説明については、このリンクをご参照ください。parameters パラメーターが空の場合、そのツールには時間クエリツールなどの入力パラメーターがないことを意味します。

tool_choice 文字列またはオブジェクト (任意) デフォルト値: 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 は指定されたツール関数の名前です。

    思考モードのモデルは、特定のツールへの呼び出しを強制することをサポートしていません。

parallel_tool_calls ブール値 (オプション) デフォルト値: false

並列ツール呼び出しを有効にするかどうかを指定します。詳細については、「並列ツール呼び出し」をご参照ください。

有効な値:

  • true

  • false

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

Web 検索を有効にするかどうかを指定します。詳細については、「Web 検索」をご参照ください。

有効な値:

  • true

    有効にした後、Web 検索がトリガーされない場合は、プロンプトを最適化するか、search_optionsforced_search パラメーターを設定して強制検索を有効にすることができます。
  • false

Web 検索機能を有効にすると、トークンの消費量が増加する可能性があります。
このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う場合、このパラメーターを extra_body オブジェクトに含めてください。次のように設定できます: extra_body={"enable_search": True}

search_options object (任意)

Web 検索戦略。詳細については、「Web 検索」をご参照ください。

プロパティ

forced_search boolean (オプション) デフォルト値: false

Web 検索を強制するかどうかを指定します。この設定は、enable_searchtrue の場合にのみ有効です。

有効な値:

  • true

  • false: モデルは Web 検索を使用するかどうかを決定します。

search_strategy 文字列 (任意) デフォルト値: turbo

検索ボリューム戦略。これは、enable_searchtrue の場合にのみ有効です。

有効な値:

  • turbo (デフォルト): 応答速度と検索効果のバランスを取り、ほとんどのシナリオに適しています。

  • max: より包括的な検索戦略を採用して複数の検索エンジンを呼び出し、より詳細な結果を取得します。ただし、応答時間が長くなる場合があります。

  • agent: Web 検索ツールと大規模言語モデルを複数回呼び出して、複数ラウンドの情報取得とコンテンツの統合を実現できます。

    agent 戦略は qwen3-max と qwen3-max-2025-09-23 にのみ適用可能です。
    agent 戦略は、他の Web 検索戦略と同時に設定できません。

enable_search_extension boolean (オプション) デフォルト値: false

ドメイン固有の検索を有効にするかどうかを指定します。このパラメーターは、enable_searchtrue の場合にのみ有効になります。

有効な値:

  • true

  • false

このパラメーターは、標準の OpenAI パラメーターではありません。Python SDK を使用して呼び出しを行う場合、このパラメーターを extra_body オブジェクトに配置します。構成は次のとおりです: extra_body={"search_options": xxx}.

チャット応答オブジェクト (非ストリーミング出力)

{
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "私は Alibaba Cloud によって開発された大規模言語モデルです。私の名前は Qwen です。"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 3019,
        "completion_tokens": 104,
        "total_tokens": 3123,
        "prompt_tokens_details": {
            "cached_tokens": 2048
        }
    },
    "created": 1735120033,
    "system_fingerprint": null,
    "model": "qwen-plus",
    "id": "chatcmpl-6ada9ed2-7f33-9de2-8bb0-78bd4035025a"
}

id string

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

choices array

モデルによって生成されたコンテンツの配列。

プロパティ

finish_reason string

モデルが生成を停止した理由を示します。

以下の 3 つのケースがあります:

  • stop:モデルの出力が自然に停止するか、入力の stop パラメーターがトリガーされます。

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

  • tool_calls:ツールを呼び出す必要があります。

index integer

choices 配列内のカレントオブジェクトのインデックス。

logprobs object

モデルの出力のトークン確率情報。

プロパティ

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 の戻り値は、非常に低い確率を示します。

message object

モデルによって出力されるメッセージ。

プロパティ

content string

モデルの返信の内容。

reasoning_content string

モデルの思考連鎖の内容。

refusal string

このパラメーターは現在 null に固定されています。

role string

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

audio object

このパラメーターは現在 null に固定されています。

function_call (非推奨予定) object

この値は null に固定されています。tool_calls パラメーターをご参照ください。

tool_calls array

関数呼び出しを開始した後にモデルによって生成されるツールと入力パラメーター情報。

プロパティ

id string

このツール応答の一意の ID。

type string

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

function object

ツール情報。

プロパティ

name string

ツール名。

arguments string

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

大規模言語モデルの応答のランダム性のため、出力パラメーター情報が関数シグネチャに準拠しない場合があります。関数を呼び出す前にパラメーターを検証する必要があります。

index integer

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

created integer

リクエストが作成されたときの UNIX タイムスタンプ (秒単位)。

model string

このリクエストに使用されるモデル。

object string

値は常に chat.completion です。

service_tier string

このパラメーターは、現時点では null に固定されています。

system_fingerprint string

このパラメーターは現在、null に固定されています。

usage object

このリクエストのトークン消費量情報。

プロパティ

completion_tokens integer

モデルの出力に含まれるトークンの数。

prompt_tokens integer

入力に含まれるトークンの数。

total_tokens integer

消費されたトークンの総数であり、prompt_tokenscompletion_tokens の合計値です。

completion_tokens_details object

Qwen-VL モデルを使用する場合の出力トークンの詳細な内訳。

プロパティ

audio_tokens integer

このパラメーターは現在 null に固定されています。

reasoning_tokens integer

このパラメーターは、現時点では null に固定されています。

text_tokens integer

Qwen-VL モデルの出力に含まれるテキストトークンの数。

prompt_tokens_details object

入力トークンの詳細な内訳。

プロパティ

audio_tokens integer

このパラメーターは現在 null に固定されています。

cached_tokens integer

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

text_tokens integer

Qwen-VL モデルの入力に含まれるテキストトークンの数。

image_tokens integer

Qwen-VL モデルの入力に含まれる画像トークンの数。

video_tokens integer

Qwen-VL モデルの入力動画ファイルまたは画像リストのトークン数。

cache_creation object

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

プロパティ

ephemeral_5m_input_tokens integer

明示的なキャッシュの作成に使用されるトークンの数。

cache_creation_input_tokens integer

明示的なキャッシュの作成に使用されるトークンの数。

cache_type string

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

チャット応答チャンクオブジェクト (ストリーミング出力)

{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"","function_call":null,"refusal":null,"role":"assistant","tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"I am","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"from","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"Alibaba","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"Cloud's large-scale","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"language model. My name","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"is Qwen","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"."},"finish_reason":null,"index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[{"delta":{"content":"","function_call":null,"refusal":null,"role":null,"tool_calls":null},"finish_reason":"stop","index":0,"logprobs":null}],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":null}
{"id":"chatcmpl-e30f5ae7-3063-93c4-90fe-beb5f900bd57","choices":[],"created":1735113344,"model":"qwen-plus","object":"chat.completion.chunk","service_tier":null,"system_fingerprint":null,"usage":{"completion_tokens":17,"prompt_tokens":22,"total_tokens":39,"completion_tokens_details":null,"prompt_tokens_details":{"audio_tokens":null,"cached_tokens":0}}}

id string

この呼び出しの一意の ID。各チャンクオブジェクトは同じ ID を持ちます。

choices array

モデルによって生成されるコンテンツの配列であり、1 つ以上のオブジェクトを含むことができます。include_usage パラメーターが true に設定されている場合、最後のチャンクでは choices は空の配列になります。

プロパティ

delta object

リクエストの増分オブジェクト。

プロパティ

content string

増分メッセージコンテンツ。

reasoning_content string

増分思考連鎖コンテンツ。

function_call object

この値のデフォルトは null です。 tool_calls パラメーターをご参照ください。

audio object

Qwen-Omni モデルを使用するときに生成される応答。

プロパティ

data string

増分 Base64 エンコードされた音声データ。

expires_at integer

リクエストが作成されたときのタイムスタンプ。

refusal object

このパラメーターは現在、null に固定されています。

role string

増分メッセージオブジェクトのロール。最初のチャンクにのみ値があります。

tool_calls array

関数呼び出しを開始した後にモデルによって生成されるツールと入力パラメーター情報。

プロパティ

index integer

tool_calls 配列内にある現在のツールのインデックス。

id string

このツール応答の一意の ID。

function object

呼び出されたツールの情報。

プロパティ

arguments string

増分の入力パラメーター情報です。完全な入力パラメーターは、すべてのチャンクからの arguments を連結したものです。

大規模言語モデルの応答のランダム性のため、出力パラメーター情報が関数シグネチャに準拠しない場合があります。関数を呼び出す前にパラメーターを検証する必要があります。

name string

ツール名。最初のチャンクにのみ値があります。

type string

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

finish_reason string

モデルは次の 4 つの理由で生成を停止します:

  • stop: モデルの出力が自然に停止するか、入力の stop パラメーターがトリガーされます。

  • null: 生成が完了していません。

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

  • tool_calls:ツールの呼び出しが必要です。

index integer

choices 配列内の現在の応答のインデックスです。入力パラメーター n が 1 より大きい場合、このパラメーターを使用して、異なる応答に対する完全なコンテンツを連結する必要があります。

logprobs object

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

プロパティ

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 の戻り値は、非常に低い確率を示します。

created integer

このリクエストが作成されたときのタイムスタンプ。各チャンクは同じタイムスタンプを持ちます。

model string

このリクエストに使用されるモデル。

object string

値は常に chat.completion.chunk です。

service_tier string

このパラメーターは現在 null に固定されています。

system_fingerprintstring

このパラメーターは現在 nullに固定されています。

usage object

このリクエストで消費されるトークン。include_usagetrueの場合にのみ、最後のチャンクに表示されます。

プロパティ

completion_tokens integer

モデルの出力に含まれるトークンの数。

prompt_tokens integer

入力トークンの数。

total_tokens integer

合計トークン数。prompt_tokenscompletion_tokens の合計値です。

completion_tokens_details object

出力トークンの詳細情報。

プロパティ

audio_tokens integer

Qwen-Omni モデルの出力に含まれる音声トークンの数。

reasoning_tokens integer

思考プロセスにおけるトークンの数。

text_tokens integer

出力テキストトークンの数。

prompt_tokens_details object

入力トークンの詳細な内訳。

プロパティ

audio_tokens integer

入力音声のトークン数。

動画ファイル内の音声トークンの数は、このパラメーターで返されます。

text_tokens integer

入力テキストのトークン数。

video_tokens integer

入力動画 (画像リストまたは動画ファイル) のトークン数。

image_tokens integer

入力画像のトークン数。

cached_tokens integer

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

cache_creation object

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

プロパティ

ephemeral_5m_input_tokens integer

明示的なキャッシュの作成に使用されるトークンの数。

cache_creation_input_tokens integer

明示的なキャッシュの作成に使用されるトークンの数。

cache_type string

キャッシュのタイプです。値は ephemeral に固定されています。

DashScope

シンガポールリージョン

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.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 キーを環境変数としてエクスポートします。DashScope SDK を使用する場合は、DashScope SDK をインストールします

リクエストボディ

テキスト入力

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
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 バージョン 2.12.0 以降の使用を推奨します。
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        // 上記の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        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 はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
$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', {
// 上記の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.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("API key not set. Make sure the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }

        // リクエスト URL とコンテンツを設定します。
        // 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
        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 リクエストを作成します。
	// 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
	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 キーの取得と設定
次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
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

# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
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 {
            // 次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
            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

# ======= 重要 =======
# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
# === 実行前にこのコメントを削除してください ====

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
# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/api/v1 に置き換えてください。
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 content:")
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 {
        // 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        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

# ======= 重要 =======
# シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に置き換えてください。
# === 実行前にこのコメントを削除してください ===

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
    "model": "qwen3-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

# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'  
messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://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 をご参照ください。
    # 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
    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";  // 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.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") に置き換えてください。
                // 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
                .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 キーの取得と設定
次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に置き換えてください。
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
                    {"text": "What are these?"}
                ]
            }
        ]
    }
}'

ビデオ入力

次のコードは、ビデオフレームを渡す方法の例を示しています。ビデオファイルを渡すなど、他の使用方法の詳細については、「視覚理解」をご参照ください。

Python

import os
# DashScope SDK バージョン 1.20.10 以降が必要です。
import dashscope
# 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{"role": "user",
             "content": [
                  # モデルが Qwen2.5-VL シリーズで、イメージリストが渡される場合、fps パラメーターを設定できます。このパラメーターは、イメージリストが元のビデオから 1/fps 秒の間隔で抽出されることを示します。
                 {"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
                   "fps":2},
                 {"text": "Describe the specific process in this video"}]}]
response = dashscope.MultiModalConversation.call(
    # 環境変数が設定されていない場合は、次の行を 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

// DashScope SDK バージョン 2.18.3 以降が必要です。
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;

import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
         // 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        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 specific process 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 キーの取得と設定
次の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation に置き換えてください。
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen2.5-vl-72b-instruct",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "video": [
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
            ],
            "fps":2
                 
          },
          {
            "text": "Describe the specific process in this video"
          }
        ]
      }
    ]
  }
}'

ツール呼び出し

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

Python

import os
import dashscope
  # 次の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "Useful for when you want to know the current time.",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Useful for when you want to query the weather in a specific city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "A city or district, such as Beijing, Hangzhou, or Yuhang."
                    }
                }
            },
            "required": [
                "location"
            ]
        }
    }
]
messages = [{"role": "user", "content": "What is the weather like 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 for a specified area")
                .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 はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        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 はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation に置き換えてください。
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 like in Hangzhou?"
        }]
    },
    "parameters": {
        "result_format": "message",
        "tools": [{
            "type": "function",
            "function": {
                "name": "get_current_time",
                "description": "Useful for when you want to know the current time.",
                "parameters": {}
            }
        },{
            "type": "function",
            "function": {
                "name": "get_current_weather",
                "description": "Useful for when you want to query the weather in a specific city.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "A city or district, such as Beijing, Hangzhou, or Yuhang."
                        }
                    }
                },
                "required": ["location"]
            }
        }]
    }
}'

非同期呼び出し

# Dashscope Python SDK のバージョンは 1.19.0 以降である必要があります。
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.generation import AioGeneration

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記の base_url はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
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}' を実際の会話シナリオで使用される file-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}' を実際の会話シナリオで使用される file-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が含まれます。

具体的なモデル名と課金情報については、「モデルリスト」をご参照ください。

messages array (必須)

大規模言語モデルに渡すコンテキストを会話順に並べたものです。

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

メッセージタイプ

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

大規模言語モデルのロール、トーン、タスクの目的、または制約を設定するシステムメッセージです。このメッセージは通常、messages 配列の先頭に配置されます。

QwQ モデルにシステムメッセージを設定することは推奨しません。QVQ モデルにシステムメッセージを設定しても効果はありません。

プロパティ

content string (必須)

メッセージの内容です。

role string (必須)

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

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

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

プロパティ

content string または array (必須)

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

プロパティ

text string (必須)

入力テキストです。

image string (任意)

画像理解のために画像ファイルを指定します。画像は、次の 3 つの方法のいずれかで渡すことができます:

  • 画像のパブリック URL。

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

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

対象モデル: Qwen-VLQVQ

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

video array または 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 の値が小さいほど、長時間の動画や静的なシーンを含むコンテンツに適しています。

OpenAI 互換プロトコルはこのパラメーターをサポートしていません。動画ファイルの場合、デフォルトで 0.5 秒ごとに 1 フレームが抽出されます。画像リストの場合、フレームは同じ間隔で動画から抽出されたと見なされます。

min_pixels integer (任意)

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

  • 画像入力:

    • 対象モデル: QVQ および Qwen-VL モデルがサポートされています。

    • 値の範囲: 値の範囲は次のとおりです:

      min_pixels の値の範囲

      • Qwen3-VL: デフォルト値と最小値は 65536 です。

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

      • QVQ およびその他の Qwen2.5-VL モデル: デフォルト値と最小値は 3136 です。

    • 値の例: {"image":"https://xxxx.jpg", "min_pixels": 65536}

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

    • 対象モデル: このパラメーターは qwen3-vl-plus モデルでのみサポートされます。

    • 値の範囲: デフォルト値は 65536 です。最小値は 4096 です。

    • 値の例:

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

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

OpenAI 互換プロトコルは、画像を渡す場合にのみこのパラメーターをサポートします。

max_pixels integer (任意)

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

  • 画像入力:

    • 対象モデル: QVQ および Qwen-VL モデルがサポートされています。

    • 値の範囲: 値の範囲は次のとおりです:

      max_pixels の値の範囲

      max_pixels の値は、<a baseurl="t2614691_v57_3_0.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="#0edad44583knr" id="76947623cc33m">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 です。

        • QVQ およびその他の Qwen2.5-VL モデル: デフォルト値は 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 に固定されます。

        • QVQ およびその他の Qwen2.5-VL モデル: max_pixels パラメーターは無効です。入力画像の最大ピクセル数は 12845056 に固定されます。

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

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

    • 対象モデル: このパラメーターは qwen3-vl-plus モデルでのみサポートされます。

    • 値の範囲: デフォルト値は 655360 です。最大値は 2048000 です。

    • 値の例:

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

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

OpenAI 互換プロトコルは、画像を渡す場合にのみこのパラメーターをサポートします。

total_pixels integer (任意)

動画から抽出されるすべてのフレームの総ピクセル数を制限します。総ピクセル数は、次の数式を使用して計算されます:単一フレームのピクセル数 × 総フレーム数。

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

  • 対象モデル: このパラメーターは qwen3-vl-plus モデルでのみサポートされます。

  • 値の説明: デフォルト値と最小値は両方とも 134217728 です。これは 131072 個の画像トークンに相当します。1 つの画像トークンは 32 × 32 ピクセルに相当します。

  • 値の例:

    • 動画ファイルを入力する場合: {"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 (任意)

Function calling を開始した後に返されるツールと入力パラメーター情報です。このパラメーターには 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 (任意)

Function calling を開始した後に返される 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

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 個のトークンのみがランダムサンプリングの候補セットとして使用されます。値が大きいほどランダム性が高くなり、値が小さいほど決定性が高くなります。None または 100 より大きい値は top_k 戦略を無効にします。この場合、top_p 戦略のみが有効です。

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

デフォルトの top_k 値

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

QwQ シリーズ: 40

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

Qwen3-Omni-Flash シリーズ: 50

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

Java SDK では、このパラメーターは topK という名前です。HTTP を使用して呼び出しを行う場合、top_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-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。

仕組み

パラメーターの値が正の場合、モデルは現在のテキストに既に出現したトークンに対してペナルティを適用します。このペナルティは、トークンの出現回数とは無関係です。これにより、これらのトークンが再出現する確率が低下し、コンテンツの繰り返しが減少し、語彙の多様性が向上します。

プロンプト: Translate this sentence into English: "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: This movie is very good. The plot is great, the acting is great, the music is also very good, and overall, the whole movie is incredibly good. In fact, it is truly excellent. The plot is very exciting, the acting is outstanding, and the music is so beautiful.

パラメーター値 0.0: This movie is good. The plot is good, the acting is good, the music is also good, and overall, the whole movie is very good. In fact, it is really great. The plot is very good, the acting is also very outstanding, and the music is also excellent.

パラメーター値 -2.0: This movie is very good. The plot is very good, the acting is very good, the music is also very good, and overall, the whole movie is very good. In fact, it is really great. The plot is very good, the acting is also very good, and the music is also very good.

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-latest、および qwen-vl-plus-0815: 16777216 (各 token32*32 ピクセルに対応、つまり 16384*32*32)

    • QVQ シリーズ、その他の Qwen2.5-VL モデル: 12845056 (各 token28*28 ピクセルに対応、つまり 16384*28*28)

  • vl_high_resolution_imagesfalse の場合: 実際の解像度は max_pixels とデフォルトの制限の両方によって決定され、2 つのうち大きい方が使用されます。画像がこのピクセル制限を超えると、ダウンスケールされます。

    各モデルのデフォルトのピクセル制限を表示するにはクリックしてください

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

    • Qwen3-VL シリーズ: 2621440 (2560*32*32、つまりデフォルトの token 制限は 2560)

    • qwen-vl-max、qwen-vl-maxqwen-vl-max-latestqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-latest、および qwen-vl-plus-0815: 1310720 (1280*32*32、つまりデフォルトの token 制限は 1280)

    • QVQ シリーズ、その他の Qwen2.5-VL モデル: 1003520 (1280*28*28、つまりデフォルトの token 制限は 1280)

Java SDK では、このパラメーターは vlHighResolutionImages という名前です。最小必須バージョンは 2.20.8 です。HTTP を使用して呼び出しを行う場合、vl_high_resolution_imagesparameters オブジェクト内に配置します。

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 スキーマの構築方法の詳細については、「JSON スキーマ

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 オープンソースモデル

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

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

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

値の範囲: [0, 5]

このパラメーターは、logprobstrue に設定されている場合にのみ有効です。

Java SDK では、パラメーターは topLogprobs です。HTTP 呼び出しの場合、top_logprobsparameters オブジェクトで指定します。

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

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

現在、このパラメーターは qwen-plus および Qwen3 (非思考モード) モデルでのみサポートされています。tools パラメーターが渡される場合、値は 1 に固定されます。
より大きい n の値を設定しても入力トークンの消費量は増加しませんが、出力トークンの消費量は増加します。
HTTP を使用して呼び出しを行う場合、nparameters オブジェクト内に配置します。

stop string または 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 objcet (必須)

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

HTTP を使用して呼び出しを行う場合、toolsparameters オブジェクト内に配置します。このパラメーターは、qwen-vl シリーズモデルでは一時的にサポートされていません。

tool_choice string または 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_formattext に設定されている場合、このフィールドには返信内容が含まれます。

finish_reason string

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

シナリオは 4 つあります:

  • 生成中は値が null です。

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

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

  • ツールが呼び出されたため、値は tool_calls です。

choices array

モデルの出力に関する情報です。result_format が message に設定されている場合、choices パラメーターが返されます。

プロパティ

finish_reason string

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

  • null:生成が進行中です。

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

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

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

message object

モデルからのメッセージオブジェクトです。

プロパティ

role string

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

content string or array

出力メッセージのコンテンツです。Qwen-VL または Qwen-Audio シリーズのモデルを使用する場合、値は array です。それ以外の場合、値は string です。

Function calling を開始した場合、この値は空になります。

プロパティ

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

エラーコード

モデルの呼び出しでエラーメッセージが返された場合は、ソリューションについては「エラーメッセージ」をご参照ください。