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

Alibaba Cloud Model Studio:OpenAI Chat

最終更新日:Feb 25, 2026

OpenAI 互換の Chat API を使用して Qwen モデルを呼び出す方法について説明します。入力および出力パラメーターの説明とコード例も含まれています。

シンガポール

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

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

米国 (バージニア)

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

SDK の base_urlhttps://dashscope-us.aliyuncs.com/compatible-mode/v1

中国 (北京)

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

SDK の base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1

開始する前に、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/ja/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの base_url です。
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)

completion = client.chat.completions.create(
    model="qwen-plus",  # モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ],
    # 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/ja/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // 以下はシンガポールリージョンの base_url です。
                .baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1") 
                .build();

        ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
                .addUserMessage("Who are you?")
                .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/ja/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        // 以下はシンガポールリージョンの base_url です。
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" 
    }
);

async function main() {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus",  //モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
        messages: [
            { role: "system", content: "You are a helpful assistant." },
            { role: "user", content: "Who are you?" }
        ],
    });
    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/ja/model-studio/get-api-key をご参照ください
		option.WithAPIKey(os.Getenv("DASHSCOPE_API_KEY")), // デフォルトは os.LookupEnv("OPENAI_API_KEY") です
		// 以下はシンガポールリージョンの base_url です。
		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("Who are you?"),
				},
			),
			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/ja/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 です。
        string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
        // モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""You are a helpful assistant.""
                },
                {
                    ""role"": ""user"", 
                    ""content"": ""Who are you?""
                }
            ]
        }";

        // リクエストを送信し、応答を取得します
        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 です。
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// 環境変数が設定されていない場合は、次の行を $apiKey = "sk-xxx"; に置き換えてください
// シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
$apiKey = getenv('DASHSCOPE_API_KEY');
// リクエストヘッダーを設定します
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// リクエストボディを設定します
$data = [
    // モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
    "model" => "qwen-plus",
    "messages" => [
        [
            "role" => "system",
            "content" => "You are a helpful assistant."
        ],
        [
            "role" => "user",
            "content" => "Who are you?"
        ]
    ]
];
// 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 キーを取得するには、「API キーの取得」をご参照ください。北京リージョンのモデルを使用する場合は、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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ]
}'

ストリーミング出力

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-plus",  # モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
    messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
                {'role': 'user', 'content': 'Who are you?'},],
    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/ja/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

async function main() {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus", // モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
        messages: [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Who are you?"}
        ],
        stream: true,
    });
    for await (const chunk of completion) {
        console.log(JSON.stringify(chunk));
    }
}

main();

curl

シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、「API キーの取得」をご参照ください。
北京リージョンのモデルを使用する場合は、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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ],
    "stream":true
}'

画像入力

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-vl-plus",  # モデルリスト: https://www.alibabacloud.com/help/ja/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": "What is this?"},
            ]}]
    )
print(completion.model_dump_json())

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

async function main() {
    const response = await openai.chat.completions.create({
        model: "qwen-vl-max", // モデルリスト: https://www.alibabacloud.com/help/ja/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: "What is this?" },
        ]}]
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、「API キーの取得」をご参照ください。
北京リージョンのモデルを使用する場合は、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": "What is this?"}
       ]}]
}'

動画入力

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を api_key="sk-xxx" に置き換えてください
    # シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)
completion = client.chat.completions.create(
    # モデルリスト: https://www.alibabacloud.com/help/ja/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": "Describe the process in this video."
            }]}]
)
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/ja/model-studio/get-api-key をご参照ください
    apiKey: process.env.DASHSCOPE_API_KEY, 
    baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"    
});

async function main() {
    const response = await openai.chat.completions.create({
        // モデルリスト: https://www.alibabacloud.com/help/ja/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: "Describe the process in this video."
                }
        ]}]
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得してください。以下はシンガポールリージョンの base_url です。
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": "Describe the process in this video."
                }
            ]
        }
    ]
}'

ツール呼び出し

完全な関数呼び出しワークフローのコードについては、「関数呼び出し」をご参照ください。

Python

import os
from openai import OpenAI

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

tools = [
    # ツール 1: 現在時刻を取得
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "Useful when you want to know the current time.",
            "parameters": {}  # 現在時刻を取得するのに入力は不要なため、parameters は空の辞書です
        }
    },  
    # ツール 2: 指定された都市の現在の天気を取得
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Useful when you want to check the weather in a specific city.",
            "parameters": {  
                "type": "object",
                "properties": {
                    # 天気を確認するには場所が必要なため、パラメーターは location に設定されています
                    "location": {
                        "type": "string",
                        "description": "A city or district, such as Beijing, Hangzhou, or Yuhang District."
                    }
                },
                "required": ["location"]
            }
        }
    }
]
messages = [{"role": "user", "content": "What is the weather like in Hangzhou?"}]
completion = client.chat.completions.create(
    model="qwen-plus",  # モデルリスト: https://www.alibabacloud.com/help/ja/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/ja/model-studio/get-api-key をご参照ください
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
    }
);

const messages = [{"role": "user", "content": "What is the weather like in Hangzhou?"}];
const tools = [
// ツール 1: 現在時刻を取得
{
    "type": "function",
    "function": {
        "name": "get_current_time",
        "description": "Useful when you want to know the current time.",
        // 現在時刻を取得するのに入力は不要なため、parameters は空です
        "parameters": {}  
    }
},  
// ツール 2: 指定された都市の現在の天気を取得
{
    "type": "function",
    "function": {
        "name": "get_current_weather",
        "description": "Useful when you want to check the weather in a specific city.",
        "parameters": {  
            "type": "object",
            "properties": {
                // 天気を確認するには場所が必要なため、パラメーターは location に設定されています
                "location": {
                    "type": "string",
                    "description": "A city or district, such as Beijing, Hangzhou, or Yuhang District."
                }
            },
            "required": ["location"]
        }
    }
}
];

async function main() {
    const response = await openai.chat.completions.create({
        model: "qwen-plus", // モデルリスト: https://www.alibabacloud.com/help/ja/model-studio/getting-started/models
        messages: messages,
        tools: tools,
    });
    console.log(JSON.stringify(response));
}

main();

curl

シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得してください。以下はシンガポールリージョンの base_url です。
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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "What is the weather like in Hangzhou?"
        }
    ],
    "tools": [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "Useful when you want to know the current time.",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Useful when you want to check the weather in a specific city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location":{
                        "type": "string",
                        "description": "A city or district, such as Beijing, Hangzhou, or Yuhang District."
                    }
                },
                "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="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

async def main():
    response = await client.chat.completions.create(
        messages=[{"role": "user", "content": "Who are you?"}],
        model="qwen-plus",  # モデルリスト: https://www.alibabacloud.com/help/ja/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 が含まれます。

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

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 エンコードされたローカルファイルの入力」をご参照ください。

fps float (任意)

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

機能説明

Fps は以下の機能を提供します:

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

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

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

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

値の例

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

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

min_pixels integer (任意)

入力画像または動画フレームの最小ピクセルしきい値を設定します。入力画像または動画フレームのピクセル数が min_pixels より小さい場合、総ピクセル数が min_pixels を超えるまでスケールアップされます。Qwen-VL および QVQ モデルに適用されます。

値の範囲

  • 画像入力の場合:

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

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

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

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

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

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

値の例

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

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

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

max_pixels integer (任意)

入力画像または動画フレームの最大ピクセルしきい値を設定します。入力画像または動画のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元の画像を処理します。ピクセル数が max_pixels を超える場合、画像は総ピクセル数が max_pixels 未満になるまでスケールダウンされます。Qwen-VL および QVQ モデルに適用されます。

値の範囲

  • 画像入力の場合:

    max_pixels は、<a baseurl="t3230321_v3_0_0.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="t2614691.xdita#0edad44583knr" id="fe2728edcbo14">vl_high_resolution_images</a> パラメーターが有効かどうかに関係します。

    • vl_high_resolution_imagesFalse の場合:

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

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

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

    • vl_high_resolution_imagesTrue の場合:

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

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

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

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

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

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

値の例

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

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

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

total_pixels integer (任意)

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

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

値の範囲

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

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

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

値の例

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

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

cache_control object (任意)

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

プロパティ

type string (必須)

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

role string (必須)

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

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

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

プロパティ

content string (任意)

モデルの返信のテキスト内容。tool_calls が含まれている場合、content は空にすることができます。それ以外の場合、content は必須です。

role string (必須)

アシスタントメッセージのロール。値は assistant に固定されています。

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

パーシャルモードを有効にするかどうかを指定します。

有効値:

  • true

  • false

詳細については、「パーシャルモード」をご参照ください。

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 array (任意) デフォルト: ["text"]

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

有効値:

  • ["text","audio"]

  • ["text"]

audio object (任意)

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

プロパティ

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.5 (非思考モード)、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。

仕組み

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

プロンプト: この文を英語に翻訳してください。「この映画は素晴らしいです。ストーリーが素晴らしい、演技が素晴らしい、音楽が素晴らしい、そして全体として、この映画は単に素晴らしいです。実際、本当に素晴らしいのです。ストーリーはとても素晴らしいし、演技はとても素晴らしいし、音楽もとても素晴らしいです。」

パラメーター値 2.0:この映画はとても良いです。プロットは素晴らしく、演技も素晴らしく、音楽もとても良いです。全体として、この映画は非常に素晴らしいです。実際、本当に優れています。プロットは非常に興奮を誘い、演技は卓越しており、音楽はとても美しいです。

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

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

qwen-vl-plus-2025-01-25 モデルを使用してテキスト抽出を行う場合、presence_penalty を 1.5 に設定してください。
QVQ モデルのデフォルトの presence_penalty 値は変更しないでください。

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

応答内容のフォーマット。有効値:

  • {"type": "text"}: プレーンテキストの応答を返します。

  • {"type": "json_object"}: 標準の JSON 構文に準拠した JSON 文字列を返します。

  • {"type": "json_schema","json_schema": {...}}: カスタムスキーマに準拠した JSON 文字列を返します。

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

プロパティ

type string (必須)

応答内容のフォーマット。有効値:

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

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

  • json_schema: カスタムスキーマに準拠した JSON 文字列を返します。

json_schema object

構造化出力の構成を定義します。

プロパティ

name string (必須)

スキーマの一意の名前。名前には、文字 (大文字と小文字を区別しない)、数字、アンダースコア (_)、ハイフン (-) のみを含めることができます。最大長は 64 文字です。

description string (任意)

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

schema object (任意)

JSON スキーマ標準に準拠したオブジェクト。モデル出力のデータ構造を定義します。

JSON Schema の構築方法については、JSON Schema

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

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

  • true (推奨)

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

  • false (非推奨)

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

max_tokens 整数 (任意)

応答内の最大トークン数。この制限に達すると生成が停止し、応答の finish_reason フィールドが length に設定されます。

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

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

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.5 シリーズ, Qwen3-VL シリーズ, qwen-vl-max, qwen-vl-max-latest, qwen-vl-max-0813, qwen-vl-plus, qwen-vl-plus-latest, qwen-vl-plus-0815: 16,777,216 (各 Token32×32 ピクセルに対応。すなわち 16,384×32×32)

    • QVQ シリーズ およびその他の Qwen2.5-VL シリーズ モデル: 12,845,056 (各 Token28×28 ピクセル、つまり 16,384×28×28 に対応します)

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

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

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

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

このパラメーターは、Qwen3 (非思考モード) モデルのみがサポートしています。
tools パラメーターを渡す場合、n を 1 に設定してください。
n を増やすと、出力トークン消費量は増加しますが、入力トークン消費量には影響しません。

enable_thinking boolean (任意)

ハイブリッド思考モデルの思考モードを有効にします。このモードは、Qwen3.5、Qwen3、Qwen3-Omni-Flash、および Qwen3-VL モデルで利用できます。詳細については、「ディープシンキング」をご参照ください。

有効値:

  • true

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

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

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

thinking_budget integer (任意)

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

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

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

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

コードインタープリター機能を有効にするかどうかを指定します。詳細については、「コードインタープリター」をご参照ください。

有効値:

  • 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-vl-plus モデル(安定版モデルを含む)

  • Qwen3-vl-flash モデル(安定版モデルを含む)

  • 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 スキーマを使用して記述する必要があります。JSON スキーマの詳細については、この リンクをご参照ください。parameters パラメーターが空の場合、これは時刻クエリツールなど、ツールに入力パラメーターがないことを示します。

ツール呼び出しの精度を向上させるために、parameters を渡すことを推奨します。

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

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

有効値:

  • auto

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

  • none

    ツール呼び出しを無効にするには、tool_choice パラメーターを none に設定します。

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

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

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

parallel_tool_calls boolean (任意。デフォルトは 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 string (任意) デフォルト: turbo

検索スケール戦略。このパラメーターは、enable_searchtrue の場合にのみ有効です。

有効値:

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

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

  • agent: Web 検索ツールと大規模言語モデル (LLM) を複数回呼び出して、複数ラウンドで情報を取得および統合します。

    qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23、qwen3-max、qwen3-max-2026-01-23、および qwen3-max-2025-09-23 にのみ適用されます。
    有効にすると、この戦略は検索ソースの返却 (enable_source: true) のみをサポートします。その他すべての Web 検索機能は利用できません。
  • agent_maxagent 戦略に Web 抽出サポートを追加します。詳細については、「Web エクストラクター」をご参照ください。

    qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23、および qwen3-max と qwen3-max-2026-01-23 の思考モードにのみ適用されます。
    有効にすると、この戦略は検索ソースの返却 (enable_source: true) のみをサポートします。その他すべての 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": "I am a large-scale language model developed by Alibaba Cloud. My name is 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

このリクエストの一意の識別子。

choices array

モデルから生成されたコンテンツの配列。

プロパティ

finish_reason string

モデルが出力生成を停止した理由。

以下のシナリオが適用されます:

  • 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

このツール応答の一意の識別子。

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 a ","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":"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 ","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 Alibaba Cloud. 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":".","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":"","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 を共有します。

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

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

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

モデルが以下のいずれかの理由で生成を停止します:

  • stopstop 入力パラメーターがトリガーされたか、出力が自然に停止しました。

  • 生成が完了する前は 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

このリクエストが作成された UNIX タイムスタンプ。同じ応答内のすべてのチャンクは同じ作成タイムスタンプを共有します。

model string

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

object string

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

service_tier string

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

system_fingerprint string

このパラメーターは現在 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 に固定されています。