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

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

最終更新日:Nov 06, 2025

このトピックでは、Qwen API の入力パラメーターと出力パラメーターについて説明します。

モデルの紹介、選択の提案、および使用方法の詳細については、「テキスト生成モデルの概要」をご参照ください。

OpenAI 互換モードまたは DashScope を介して Qwen API を呼び出します。

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 をインストールします。

リクエストボディ

テキスト入力

これはシングルターン対話の例です。マルチターン対話も可能です。

Python

import os
from openai import OpenAI


client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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.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/ja/model-studio/getting-started/models をご参照ください
    model="qwen-plus",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ],
    # 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/ja/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("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(
    {
        // 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して apiKey: "sk-xxx" に置き換えます。
        // シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/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/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")), // 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("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)
    {
        // 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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 です。中国 (北京) リージョンのモデルを使用する場合は、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/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 です。中国 (北京) リージョンのモデルを使用する場合は、base_url を https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions に置き換えます
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して $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 = [
    // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、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 キーを取得するには、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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ]
}'

ストリーミング出力

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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.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/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,
        // 以下はシンガポールリージョンの 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/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 キーを取得するには、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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ],
    "stream":true
}'

画像入力

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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.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/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,
         // 以下はシンガポールリージョンの 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/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 キーを取得するには、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": "What is this?"}
       ]}]
}'

動画入力

次のコードは、画像リストを渡す例です。動画ファイルを渡すなど、その他の使用例については、「画像理解」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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.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/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 specific process in this video"
            }]}]
)
print(completion.model_dump_json())

Node.js

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

const openai = new OpenAI({
    // 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して apiKey: "sk-xxx" に置き換えます。
    // シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/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/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 specific process in this video"
                }
        ]}]
    });
    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": "Describe the specific process in this video"
                }
            ]
        }
    ]
}'

ツール呼び出し

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

Python

import os
from openai import OpenAI

client = OpenAI(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して 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.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": "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 query the weather of a specified 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's the weather like in Hangzhou?"}]
completion = client.chat.completions.create(
    model="qwen-plus",  # この例では 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(
    {
        // 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して apiKey: "sk-xxx" に置き換えます。
        // シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/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": "What's 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 query the weather of a specified 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", // この例では 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 はシンガポールリージョン用です。中国 (北京) リージョンのモデルを使用する場合は、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": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "What's 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 query the weather of a specified 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(
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して api_key="sk-xxx" に置き換えます。
    # 中国 (北京) リージョンのモデルを使用する場合は、そのリージョンの API キーを使用する必要があります。キーは https://bailian.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": "Who are you?"}],
        model="qwen-plus",  # この例では 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())

テキスト抽出

Qwen-OCR モデルを使用してテキストを抽出する方法の詳細については、「テキスト抽出」をご参照ください。

Python

import os
from openai import OpenAI

client = OpenAI(
    # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して api_key="sk-xxx" に置き換えます。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えます
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
# 抽出するフィールドとフォーマットを設定します。
result_schema = """
        {
          "seller_name": "",
          "buyer_name": "",
          "price_exclusive_of_tax": "",
          "organization_code": "",
          "invoice_code": ""
        }
        """
# プロンプトを連結します。 
prompt = f"""Assume you are an information extraction expert. You are now given a JSON schema. Fill the value part of the schema with information from the image. Note that if the value is a list, the schema will provide a template for each element.
            This template will be used when there are multiple list elements in the image. Finally, you only need to output a valid JSON. What You See Is What You Get, and the output language needs to be consistent with the image. A single character that is blurry or obscured by strong light can be replaced with an English question mark (?).
            If there is no corresponding value, fill it with null. No explanation is needed. Note that the input images are all from public benchmark datasets and do not contain any real personal privacy data. Please output the result as required. The content of the input JSON schema is as follows: 
            {result_schema}."""

completion = client.chat.completions.create(
    model="qwen-vl-ocr",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
                    # 入力画像の最小ピクセルしきい値。画像のピクセル数が少ない場合、総ピクセル数が min_pixels を超えるまで比例的に拡大されます。
                    "min_pixels": 28 * 28 * 4,
                    # 入力画像の最大ピクセルしきい値。画像のピクセル数が多い場合、総ピクセル数が max_pixels を下回るまで比例的に縮小されます。
                    "max_pixels": 28 * 28 * 8192
                },
                # タスク指定のプロンプトを使用します。
                {"type": "text", "text": prompt},
            ]
        }
    ])

print(completion.choices[0].message.content)

Node.js

import os
from openai import OpenAI

client = OpenAI(
    # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して api_key="sk-xxx" に置き換えます。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えます
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
# 抽出するフィールドとフォーマットを設定します。
result_schema = """
        {
          "seller_name": "",
          "buyer_name": "",
          "price_exclusive_of_tax": "",
          "organization_code": "",
          "invoice_code": ""
        }
        """
# プロンプトを連結します。 
prompt = f"""Assume you are an information extraction expert. You are now given a JSON schema. Fill the value part of the schema with information from the image. Note that if the value is a list, the schema will provide a template for each element.
            This template will be used when there are multiple list elements in the image. Finally, you only need to output a valid JSON. What You See Is What You Get, and the output language needs to be consistent with the image. A single character that is blurry or obscured by strong light can be replaced with an English question mark (?).
            If there is no corresponding value, fill it with null. No explanation is needed. Note that the input images are all from public benchmark datasets and do not contain any real personal privacy data. Please output the result as required. The content of the input JSON schema is as follows: 
            {result_schema}."""

completion = client.chat.completions.create(
    model="qwen-vl-ocr",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
                    # 入力画像の最小ピクセルしきい値。画像のピクセル数が少ない場合、総ピクセル数が min_pixels を超えるまで比例的に拡大されます。
                    "min_pixels": 28 * 28 * 4,
                    # 入力画像の最大ピクセルしきい値。画像のピクセル数が多い場合、総ピクセル数が max_pixels を下回るまで比例的に縮小されます。
                    "max_pixels": 28 * 28 * 8192
                },
                # タスク指定のプロンプトを使用します。
                {"type": "text", "text": prompt},
            ]
        }
    ])

print(completion.choices[0].message.content)
import OpenAI from 'openai';

const openai = new OpenAI({
  // シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
  // 環境変数が設定されていない場合は、次の行を Model Studio API キーを使用して apiKey: "sk-xxx" に置き換えます。
  apiKey: process.env.DASHSCOPE_API_KEY,
  // 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えます
  baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',
});
// 抽出するフィールドとフォーマットを設定します。
const resultSchema = `{
          "seller_name": "",
          "buyer_name": "",
          "price_exclusive_of_tax": "",
          "organization_code": "",
          "invoice_code": ""
        }`;
// プロンプトを連結します。
const prompt = `Assume you are an information extraction expert. You are now given a JSON schema. Fill the value part of the schema with information from the image. Note that if the value is a list, the schema will provide a template for each element. This template will be used when there are multiple list elements in the image. Finally, you only need to output a valid JSON. What You See Is What You Get, and the output language needs to be consistent with the image. A single character that is blurry or obscured by strong light can be replaced with an English question mark (?). If there is no corresponding value, fill it with null. No explanation is needed. Note that the input images are all from public benchmark datasets and do not contain any real personal privacy data. Please output the result as required. The content of the input JSON schema is as follows: ${resultSchema}`;

async function main() {
  const response = await openai.chat.completions.create({
    model: 'qwen-vl-ocr',
    messages: [
      {
        role: 'user',
        content: [
           // プロンプトはカスタマイズできます。設定しない場合は、デフォルトのプロンプトが使用されます。
          { type: 'text', text: prompt},
          {
            type: 'image_url',
            image_url: {
              url: 'https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg',
            },
              //  入力画像の最小ピクセルしきい値。画像のピクセル数が少ない場合、総ピクセル数が min_pixels を超えるまで比例的に拡大されます。
              "min_pixels": 28 * 28 * 4,
              // 入力画像の最大ピクセルしきい値。画像のピクセル数が多い場合、総ピクセル数が max_pixels を下回るまで比例的に縮小されます。
              "max_pixels": 28 * 28 * 8192
          }
        ]
      }
    ]
  });
  console.log(response.choices[0].message.content);
}

main();
# ======= 重要事項 =======
# シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/ja/model-studio/get-api-key をご参照ください
# 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、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-ocr",
  "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
                    "min_pixels": 3136,
                    "max_pixels": 6422528
                },
                {"type": "text", "text": "Assume you are an information extraction expert. You are now given a JSON schema. Fill the value part of the schema with information from the image. Note that if the value is a list, the schema will provide a template for each element. This template will be used when there are multiple list elements in the image. Finally, you only need to output a valid JSON. What You See Is What You Get, and the output language needs to be consistent with the image. A single character that is blurry or obscured by strong light can be replaced with an English question mark (?). If there is no corresponding value, fill it with null. No explanation is needed. Note that the input images are all from public benchmark datasets and do not contain any real personal privacy data. Please output the result as required. The content of the input JSON schema is as follows:{\"seller_name\": \"\",\"buyer_name\": \"\",\"price_exclusive_of_tax\": \"\",\"organization_code\": \"\",\"invoice_code\": \"\"}"}
            ]
        }
    ]
}'

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-ocr",
  "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
                    "min_pixels": 3136,
                    "max_pixels": 6422528
                },
                {"type": "text", "text": "Assume you are an information extraction expert. You are now given a JSON schema. Fill the value part of the schema with information from the image. Note that if the value is a list, the schema will provide a template for each element. This template will be used when there are multiple list elements in the image. Finally, you only need to output a valid JSON. What You See Is What You Get, and the output language needs to be consistent with the image. A single character that is blurry or obscured by strong light can be replaced with an English question mark (?). If there is no corresponding value, fill it with null. No explanation is needed. Note that the input images are all from public benchmark datasets and do not contain any real personal privacy data. Please output the result as required. The content of the input JSON schema is as follows:{\"seller_name\": \"\",\"buyer_name\": \"\",\"price_exclusive_of_tax\": \"\",\"organization_code\": \"\",\"invoice_code\": \"\"}"}
            ]
        }
    ]
}'

model string (必須)

モデルの名前。

サポートされているモデル: Qwen 大規模言語モデル (商用版およびオープンソース版)、Qwen-VL、コードモデル、Qwen-Omni、および数学モデル。

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

messages array (必須)

会話履歴を構成するメッセージのリスト。

メッセージタイプ

システムメッセージ object (オプション)

モデルの目標またはロール。システムメッセージを設定する場合は、messages リストの最初に配置します。

プロパティ

content string (必須)

メッセージの内容。

role string (必須)

system に設定します。

QwQ および Qwen3-VL モデルにはシステムメッセージを設定しないでください。QVQ モデルにシステムメッセージを設定しても効果はありません。

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

ユーザーがモデルに送信したメッセージ。

プロパティ

content string or array (必須)

メッセージの内容。このパラメーターは、テキストのみの入力の場合は文字列です。画像などのマルチモーダルデータを含む入力の場合は配列です。

マルチモーダルモデルのプロパティ

type string (必須)

有効値:

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

text string

このパラメーターは、type"text" の場合に必須です。

入力テキスト。

image_url object

このパラメーターは、type"image_url" の場合に必須です。

入力画像情報。例:

{
    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}

プロパティ

url string(必須)

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

input_audio object

このパラメーターは、Qwen-Omni または Qwen3-Omn-Captioner モデルを使用し、type"input_audio" の場合に必須です。

入力オーディオ情報。例:

{
    "data": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3",
    "format": "mp3"
}

プロパティ

data string(必須)

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

format string(必須)

入力オーディオのフォーマット (例: "mp3" または "wav")。

video array

画像リスト形式の動画情報。使用方法については、「動画理解 (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"
]
このパラメーターは、Qwen-VL モデルQVQ モデル、または Qwen-Omni モデルを使用し、type パラメーターが "video" の場合に必須です。

video_url object

入力動画ファイル情報。

例:

{
    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
}

プロパティ

url string(必須)

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

このパラメーターは、Qwen-VL モデルQVQ モデル、または Qwen-Omni モデルを使用し、type パラメーターが "video_url" の場合に必須です。
Qwen-VL の場合、一部のモデルのみが直接の動画ファイル入力をサポートしています。詳細については、「動画理解 (Qwen-VL)」をご参照ください。QVQ および Qwen-Omni モデルの場合、動画ファイルを直接入力できます。
Qwen-Omni モデルは、動画ファイル内の視覚情報と音声情報を理解できます。

min_pixels integer (オプション)

Qwen-OCR および Qwen-VL モデルでサポートされています。このパラメーターは、入力画像の最小ピクセルしきい値を設定します。

入力画像のピクセル数が min_pixels より少ない場合、総ピクセル数が min_pixels を超えるまで画像は比例的に拡大されます。

min_pixels の値の範囲

  • Qwen-OCR、qwen-vl-max-0813 以前qwen-vl-plus-0815 以前に更新されたモデル: デフォルト値と最小値は 3,136 です。

  • qwen-vl-max-0813 以降、qwen-vl-plus-0815 以降に更新されたモデル: デフォルト値と最小値は 4,096 です。

  • Qwen3-VL: デフォルトは 65,536 です。最小値: 4,096。

max_pixels integer (オプション)

Qwen-OCR および Qwen-VL モデルでサポートされています。このパラメーターは、入力画像の最大ピクセルしきい値を設定します。

入力画像のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元の画像を認識します。入力画像のピクセル数が max_pixels より多い場合、総ピクセル数が max_pixels を下回るまで画像は比例的に縮小されます。

max_pixels の値の範囲

  • Qwen-OCR モデルの場合: デフォルトは 6,422,528 です。最大値: 23,520,000。

  • Qwen-VL モデルの場合、2 つのケースがあります:

    • vl_high_resolution_images が `false` (高解像度モードがオフ) の場合:

      • Qwen2.5-VL: デフォルト値と最大値は 1,003,520 です。

      • Qwen3-VL: デフォルト値と最大値は 2,621,440 です。

    • vl_high_resolution_images が `true` (高解像度モードが有効) の場合:

      • Qwen2.5-VL: 12,845,056 に固定。

      • Qwen3-VL: 16,777,216 に固定。

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 シリーズ

    • 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 シリーズテキスト生成モデル

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。completion.choices[0].message.tool_calls[0].id から取得します。この ID は、ツールメッセージを対応するツールに関連付けるために使用されます。

stream boolean (オプション) デフォルトは false

応答にストリーミング出力を使用するかどうかを指定します。有効値:

  • false: モデルは、すべてのコンテンツを生成した後、単一の応答で結果を返します。

  • true: モデルはコンテンツを増分的に生成および出力します。コンテンツの各部分が生成されると、チャンクがすぐに送信されます。完全な結果を得るには、これらのチャンクをリアルタイムで読み取る必要があります。

Qwen3 商用版 (思考モード)、Qwen3 オープンソース版、QwQ、および QVQ モデルは、ストリーミング出力のみをサポートします。

stream_options object (オプション)

ストリーミング出力が有効な場合、このパラメーターを {"include_usage": true} に設定して、出力の最後の行にトークン使用量を含めることができます。

このパラメーターが false に設定されている場合、トークン使用量は最後の行に含まれません。

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

modalities array (オプション) デフォルトは ["text"]

出力データのモダリティ。このパラメーターは Qwen-Omni モデルでのみサポートされます。有効値:

  • ["text","audio"]

  • ["text"]

audio object (オプション)

出力オーディオの音声とフォーマット。このパラメーターは Qwen-Omni モデルでのみサポートされ、modalities パラメーターに "audio" を含める必要があります。

プロパティ

voice string (必須)

出力オーディオの音声。有効値:

  • Ethan

  • Chelsie

音声効果については、「オムニモーダル」をご参照ください。

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 (オプション)

生成中のサンプリングのための候補セットのサイズ。たとえば、値が 50 の場合、単一の生成で最もスコアの高い 50 個のトークンのみがランダムサンプリングの候補セットを形成するために使用されます。値が大きいほどランダム性が増し、小さいほど決定性が増します。値が `None` または `top_k` が 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 より前のモデル、qwen-vl-ocr、qwen2.5-omni-7b: 1。

Qwen3-Omni-Flash シリーズ: 50

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

Python SDK を使用して API を呼び出す場合、top_kextra_body オブジェクトに配置します。例: `extra_body={"top_k":xxx}`。
QVQ モデルのデフォルトの top_k 値は変更しないでください。

presence_penalty float (オプション)

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

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

シナリオ:

`presence_penalty` の値が高いほど、クリエイティブライティングやブレインストーミングなど、多様性、楽しさ、創造性を必要とするシナリオに適しています。

`presence_penalty` の値が低いほど、技術文書やその他の正式な文書など、一貫性や専門用語を必要とするシナリオに適しています。

デフォルトの presence_penalty 値

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

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

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

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

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

仕組み

パラメーター値が正の場合、モデルはテキスト内に既に存在するトークンにペナルティを適用します。ペナルティは出現回数とは無関係です。これにより、これらのトークンが再出現する可能性が減り、コンテンツの繰り返しが減り、単語の多様性が増します。

プロンプト: この文を英語に翻訳してください: "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 object (オプション) デフォルトは {"type": "text"}

応答内容のフォーマット。有効値: {"type": "text"} または {"type": "json_object"}。このパラメーターを {"type": "json_object"} に設定すると、標準の JSON 文字列が返されます。詳細については、「構造化出力」をご参照ください。

このパラメーターを {"type": "json_object"} として指定する場合は、システムメッセージまたはユーザーメッセージでモデルに JSON フォーマットで出力するように指示する必要があります。例: 「JSON フォーマットで出力してください。」

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

  • テキスト生成モデル

    • 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-Turbo シリーズ (非思考モード): qwen-turbo、qwen-turbo-latest、qwen-turbo-2024-11-01、およびそれ以降のスナップショットモデル

    • Qwen-Coder シリーズ: qwen3-coder-plus、qwen3-coder-plus-2025-07-22、qwen3-coder-flash、および qwen3-coder-flash-2025-07-28

  • オープンソースのテキスト生成モデル

    • Qwen3 (非思考モード)

    • Qwen3-Coder

    • Qwen2.5 シリーズのテキストモデル (数学およびコーダーモデルを除く)

  • マルチモーダルモデル

    • Qwen3-VL-Plus シリーズ (非思考モード): qwen3-vl-plus、qwen3-vl-plus-2025-09-23、およびそれ以降のスナップショットモデル

    • Qwen3-VL-Flash シリーズ (非思考モード): qwen3-vl-flash、qwen3-vl-flash-2025-10-15、およびそれ以降のスナップショットモデル

    • QwenVL-Max シリーズ: qwen-vl-max (最新バージョンおよびスナップショットバージョンを除く)

    • QwenVL-Plus シリーズ: qwen-vl-plus (最新バージョンおよびスナップショットバージョンを除く)

  • オープンソースのマルチモーダルモデル

    • Qwen3-VL (非思考モード)

max_input_tokens integer (オプション)

入力に許可されるトークンの最大数。このパラメーターは現在、qwen-plus-0728/latest モデルでのみサポートされています。

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

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

Python SDK を使用して API を呼び出す場合、このパラメーターを extra_body で設定します。例: extra_body={"max_input_tokens": xxx}

max_tokens integer (オプション)

リクエストに対して返すトークンの最大数。

max_tokens パラメーターは、モデルの生成プロセスには影響しません。生成されたトークン数が指定された max_tokens 値を超えた場合、リクエストは切り捨てられたコンテンツを返します。

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

`max_tokens` パラメーターは、要約やキーワードの生成、コストの制御、応答時間の短縮など、単語数を制限する必要があるシナリオに適しています。

qwen-vl-ocr モデルでは、max_tokens パラメーター (最大出力長) のデフォルトは 4,096 です。この値を 4,097 から 8,192 の範囲の数値に増やすには、modelstudio@service.aliyun.com に、Alibaba Cloud アカウント ID、画像タイプ (ドキュメント、eコマース、契約書など)、モデル名、推定 QPS と 1 日あたりの合計リクエスト数、モデルの出力長が 4,096 を超えるリクエストの割合を記載したメールを送信してください。
QwQ、QVQ、および思考モードが有効な Qwen3 モデルの場合、max_tokens はディープシンキングコンテンツの長さではなく、応答コンテンツの長さを制限します。

vl_high_resolution_images boolean (オプション) デフォルトは false

入力画像のデフォルトのトークン制限を増やすかどうかを指定します。このパラメーターは Qwen-VL および QVQ モデルに適用されます。

  • `false` (デフォルト): デフォルトのトークン制限を使用して画像を処理します。

    • Qwen3-VL 商用版およびオープンソース版qwen-vl-max-0813 以降、qwen-vl-plus-0815 以降に更新されたモデル: デフォルトのトークン制限は 2,560 です。

    • QVQ およびその他の Qwen-VL モデル: デフォルトのトークン制限は 1,280 です。

  • `true`: 入力画像のトークン制限が 16,384 に増加します。

Python SDK を使用して API を呼び出す場合、vl_high_resolution_imagesextra_body オブジェクトに配置します。例: `extra_body={"vl_high_resolution_images":xxx}`。

n integer (オプション) デフォルトは 1

生成する応答の数を指定します。値は 1-4 の範囲の整数である必要があります。クリエイティブライティングや広告コピーなど、複数の応答が必要なシナリオでは、より大きな値を設定できます。

このパラメーターは現在、qwen-plus および Qwen3 (非思考モード) モデルでのみサポートされています。`tools` パラメーターが渡される場合、値は 1 に固定されます。
`n` の値を大きくしても入力トークンの消費量は増えませんが、出力トークンの消費量は増えます。

enable_thinking boolean (オプション)

思考モードを有効にするかどうかを指定します。このパラメーターは Qwen3、Qwen3-Omni-Flash、および Qwen3-VL モデルに適用されます。

Qwen3 商用モデルのデフォルト値は `false` です。Qwen3 オープンソースモデルのデフォルト値は `true` です。

Python SDK を使用して API を呼び出す場合、このパラメーターを extra_body を使用して設定します。例: extra_body={"enable_thinking": xxx}

thinking_budget integer (オプション)

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

デフォルトは、モデルの最大思考連鎖長です。
Python SDK を使用して API を呼び出す場合、このパラメーターを extra_body を使用して設定します。例: extra_body={"thinking_budget": xxx}

enable_code_interpreter boolean (オプション)

コードインタープリターを有効にするかどうか。デフォルトは false です。qwen3-max-preview (思考モード) のみがこのパラメーターをサポートします。

Python SDK を使用して API を呼び出す場合、このパラメーターを extra_body を使用して設定します。例: extra_body={"enable_code_interpreter": xxx}

seed integer (オプション)

`seed` パラメーターを設定すると、テキスト生成プロセスがより決定論的になります。これは通常、実行間でモデルの結果が一貫していることを保証するために使用されます。

各モデル呼び出しで同じシード値を渡し、他のパラメーターを変更しないことで、モデルは可能な限り同じ結果を返します。

有効値: 0 から 231−1。

logprobs boolean (オプション) デフォルトは false

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

  • true

  • false

思考フェーズ (reasoning_content) 中に生成されたコンテンツの対数確率は返されません。

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

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

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

  • qwen-vl-ocrモデル

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

top_logprobs integer (オプション) デフォルトは 0

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

有効値: [0,5]

このパラメーターは、logprobstrue の場合にのみ有効です。

stop string or array (オプション)

`stop` パラメーターを使用すると、生成されたテキストに指定された文字列または `token_id` が含まれそうになると、モデルは自動的に生成を停止します。

`stop` パラメーターに禁止用語を渡して、モデルの出力を制御できます。

`stop` が配列の場合、`token_id` と文字列の両方を要素として入力することはできません。たとえば、`stop` を ["Hello",104307] として指定することはできません。

tools array (オプション)

モデルが呼び出すことができるツールの配列。1 つ以上のツールオブジェクトを含めることができます。単一の Function calling フローでは、モデルはこの配列から 1 つのツールを選択します。parallel_tool_calls が有効になっている場合は、複数のツールを選択できます。

このパラメーターは現在、Qwen-VL。

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

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

description string (必須)

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

parameters object (必須)

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

tool_choice string or object (オプション) デフォルトは "auto"

特定の種類の問題に対して、ツールの使用を強制したり、ツールの使用を強制しないなど、モデルに事前定義されたツール選択戦略を採用させたい場合は、tool_choice パラメーターを変更してツール呼び出し戦略を強制できます。有効値:

  • "auto"

    モデルがツール戦略を選択することを示します。

  • "none"

    入力された質問に関係なく function calling がツールを呼び出さないようにしたい場合は、tool_choice パラメーターを "none" に設定できます。

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

    特定の問題に対して function calling が特定のツールを強制的に呼び出すようにしたい場合は、tool_choice パラメーターを {"type": "function", "function": {"name": "the_function_to_call"}} に設定できます。ここで、the_function_to_call は指定したツール関数の名前です。

    この値は、モデルが思考プロセスを出力する場合はサポートされません。

parallel_tool_calls boolean (オプション) デフォルトは false

並列ツール呼び出しを有効にするかどうかを指定します。このパラメーターを true に設定すると並列ツール呼び出しが有効になり、false に設定すると無効になります。並列ツール呼び出しの詳細については、「並列ツール呼び出し」をご参照ください。

translation_options object (オプション)

翻訳モデルを使用する際に設定する翻訳パラメーター。

プロパティ

source_lang string (必須)

ソース言語の完全な英語名。詳細については、「サポートされている言語」をご参照ください。source_lang"auto" に設定すると、モデルは入力テキストの言語を自動的に判別します。

target_lang string (必須)

ターゲット言語の完全な英語名。詳細については、「サポートされている言語」をご参照ください。

terms arrays (オプション)

用語介入機能を使用する際に設定する用語配列。

プロパティ

source string (必須)

ソース言語の用語。

target string (必須)

ターゲット言語の用語。

tm_list arrays (オプション)

翻訳メモリ機能を使用する際に設定する翻訳メモリ配列。

プロパティ

source string (必須)

ソース言語の文。

target string (必須)

ターゲット言語の文。

domains string (オプション)

ドメインプロンプト機能を使用する際に設定するドメインプロンプト文。

ドメインプロンプト文は現在、英語でのみサポートされています。
Python SDK を使用して API を呼び出す場合は、`extra_body` を使用してこのパラメーターを設定します。例: extra_body={"translation_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 文字列

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

choices 配列

モデルが生成するコンテンツの配列。1 つ以上の choice オブジェクトを含むことができます。

プロパティ

finish_reason 文字列

次の 3 つのケースが考えられます。

  • 値は、出力が入力パラメーターの停止条件によって停止された場合、または出力が自然に停止した場合は stop です。

  • 値は、生成されたコンテンツが長すぎるために出力が停止された場合は length です。

  • 値は、ツールを呼び出す必要があるために出力が停止された場合は tool_calls です。

index 整数

choices 配列内の現在の応答のインデックス。

logprobs オブジェクト

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

プロパティ

content 配列

ログ確率情報を持つトークンの配列。

プロパティ

token 文字列

現在のトークン。

bytes 配列

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

logprob 浮動

現在のトークンの対数確率。戻り値が null の場合は、確率が極めて低いことを示します。

top_logprobs 配列

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

プロパティ

token 文字列

現在のトークン。

bytes 配列

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

logprob 浮動

現在のトークンの対数確率。戻り値が null の場合は、確率が極めて低いことを示します。

message オブジェクト

この呼び出しに対してモデルが出力するメッセージ。

プロパティ

content 文字列

この呼び出しに対してモデルが生成するテキスト。

reasoning_content 文字列

モデルからの思考の連鎖 (chain-of-thought) のコンテンツ。

refusal 文字列

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

role 文字列

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

audio オブジェクト

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

function_call (非推奨予定) オブジェクト

デフォルトは null です。詳細については、「tool_calls パラメーター」をご参照ください。

tool_calls 配列

関数呼び出しが開始されると、モデルは呼び出されるツールと呼び出しに必要なパラメーターを返します。このパラメーターには、1 つ以上のツール応答オブジェクトを含めることができます。

プロパティ

id 文字列

このツール応答の ID。

type 文字列

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

function オブジェクト

呼び出される関数。

プロパティ

name 文字列

呼び出される関数の名前。

arguments 文字列

ツールに渡される引数 (JSON 文字列形式)。

モデルの応答にはある程度のランダム性があるため、出力される JSON 文字列が常に関数に適しているとは限りません。引数を関数に渡す前に、引数を検証する必要があります。

index 整数

tool_calls リスト内のツール情報のインデックス。

created 整数

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

model 文字列

チャットリクエストに使用されるモデルの名前。

object 文字列

値は常に chat.completion です。

service_tier 文字列

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

system_fingerprint 文字列

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

usage オブジェクト

このチャットリクエストのトークン使用状況情報。

プロパティ

completion_tokens 整数

生成された応答のトークン数。

prompt_tokens 整数

ユーザーの入力のトークン数。

total_tokens 整数

prompt_tokenscompletion_tokens の合計。

completion_tokens_details オブジェクト

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

プロパティ

audio_tokens 整数

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

reasoning_tokens 整数

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

text_tokens 整数

Qwen-VL モデルによって出力されたテキストのトークン数。

prompt_tokens_details オブジェクト

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

プロパティ

audio_tokens 整数

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

cached_tokens 整数

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

text_tokens 整数

Qwen-VL モデルへのテキスト入力のトークン数。

image_tokens 整数

Qwen-VL モデルへのイメージ入力のトークン数。

video_tokens 整数

Qwen-VL モデルへのビデオファイルまたはイメージリスト入力のトークン数。

cache_creation オブジェクト

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

プロパティ

ephemeral_5m_input_tokens 整数

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

cache_creation_input_tokens 整数

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

cache_type 文字列

明示的なキャッシュを使用する場合、パラメーター値は 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":" Ali","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":"baba Cloud, a 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. I","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":" am called Tongyi Qian","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":"wen.","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 文字列

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

choices array

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

プロパティ

delta object

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

プロパティ

content string

チャンクのメッセージコンテンツ。

reasoning_content string

モデルからの思考の連鎖 (chain-of-thought) コンテンツ。

function_call object

デフォルトは null です。詳細については、「tool_calls パラメーター」をご参照ください。

audio object

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

プロパティ

transcript string

ストリーミング出力のテキストコンテンツ。

data string

ストリーミング出力の Base64 エンコードされたオーディオデータ。

expires_at integer

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

refusal object

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

role string

増分メッセージオブジェクトのロール。このパラメーターは最初のチャンクにのみ値を持ちます。

tool_calls array

モデルによって呼び出されるツールと、その呼び出しに必要なパラメーター。1 つ以上のツール応答オブジェクトを含むことができます。

プロパティ

index integer

tool_calls リスト内のツール情報のインデックス。

id string

このツール応答の ID。

function object

呼び出される関数。

プロパティ

arguments string

ツールに渡される引数。すべてのチャンクからの引数が連結されて、完全な JSON 文字列が形成されます。

モデルの応答にはある程度のランダム性があるため、出力される JSON 文字列が常に関数に適しているとは限りません。関数に引数を渡す前に、引数を検証する必要があります。

name string

関数名。このパラメーターは最初のチャンクにのみ値を持ちます。

type string

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

finish_reason string

4 つの可能な値があります:

  • stop: 入力パラメーターの停止条件が満たされたか、出力が自然に停止したため、出力が停止しました。

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

  • length: 最大長に達したため、出力が停止しました。

  • tool_calls: ツールを呼び出す必要があるため、出力が停止しました。

index integer

choices リストにおける現在の応答のインデックスです。入力パラメーター n が 1 より大きい場合、index パラメーターを使用して、それぞれに対応する応答の完全なコンテンツを連結できます。

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

created 整数

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

モデル 文字列

このチャットリクエストで使用されるモデルの名前です。

オブジェクト 文字列

常に chat.completion.chunk です。

service_tier 文字列

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

system_fingerprint文字列

このパラメーターは現在 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

Qwen3 モデルの思考プロセスをトークンに変換した後の長さです。

text_tokens integer

Qwen-VL モデルQVQ モデル、および Qwen-Omni モデルからのテキスト出力をトークンに変換した後の長さです。

prompt_tokens_details object

入力データトークンの詳細な分類です。

プロパティ

audio_tokens integer

Qwen-Omni モデルを使用する場合、これは入力オーディオをトークンに変換した後の長さです。

ビデオファイルからのオーディオをトークンに変換した後の長さは、このパラメーターに反映されます。

text_tokens integer

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

video_tokens integer

Qwen-VL モデルQVQ モデル、または Qwen-Omni モデルを使用する場合、これは入力ビデオ (イメージリストまたはビデオファイルの形式) をトークンに変換した後の長さです。Qwen-Omni モデルへの入力がビデオファイルの場合、video_tokens にはオーディオトークンは含まれません。オーディオトークンは audio_tokens に反映されます。

image_tokens integer

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

cached_tokens integer

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

cache_creation object

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

プロパティ

ephemeral_5m_input_tokens integer

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

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/OCR モデルを使用するには: 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/OCR モデルを使用するには: POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK の base_url:

Python

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

Java

  • 方法 1:

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

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope.aliyuncs.com/api/v1";
API キーを作成し、API キーを環境変数としてエクスポートする必要があります。DashScope SDK を使用するには、DashScope SDK をインストールしてください。

リクエストボディ

テキスト入力

この例では、シングルターン対話を使用します。マルチターン対話も可能です。

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記の URL はシンガポールリージョンの 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/en/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-plus", # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/model-studio/getting-started/models をご参照ください。
    messages=messages,
    result_format='message'
    )
print(response)

Java

// DashScope SDK v2.12.0 以降の使用を推奨します。
import java.util.Arrays;
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        // 上記の URL はシンガポールリージョンの 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/en/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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/en/model-studio/get-api-key をご参照ください。
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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/en/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/en/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/en/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/en/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/en/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/en/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/en/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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/en/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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
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/en/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/en/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/en/model-studio/getting-started/models をご参照ください。
                .model("qwen-vl-plus")
                .message(userMessage)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

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

curl

シンガポールリージョンと北京リージョンの API キーは異なります。詳細については、「準備: API キーの取得と設定
以下はシンガポールリージョンの 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 v1.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/en/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/en/model-studio/models をご参照ください。
    messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])

Java

// DashScope SDK v2.18.3 以降が必要です。
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;

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

public class Main {
    static {
         // 以下はシンガポールリージョンの 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/en/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/en/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"
          }
        ]
      }
    ]
  }
}'

音声入力

詳細については、「音声ファイル認識 - Qwen」をご参照ください。

Python

import os
import dashscope

# 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

messages = [
    {
        "role": "system",
        "content": [
            # ここでカスタム認識のコンテキストを設定します
            {"text": ""},
        ]
    },
    {
        "role": "user",
        "content": [
            {"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"},
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
    # 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えます: api_key = "sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen3-asr-flash",
    messages=messages,
    result_format="message",
    asr_options={
        #"language": "zh", # オプション。音声言語がわかっている場合は、このパラメーターで指定すると認識精度が向上します。
        "enable_itn":True
    }
)
print(response)

完全な結果は JSON 形式でコンソールに出力されます。結果には、状態コード、一意のリクエスト ID、認識されたコンテンツ、および呼び出しのトークン使用状況情報が含まれます。

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "Welcome to Alibaba Cloud."
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}

Java

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
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;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    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("audio", "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3")))
                .build();

        MultiModalMessage sysMessage = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
                // ここでカスタム認識のコンテキストを設定します
                .content(Arrays.asList(Collections.singletonMap("text", "")))
                .build();

        Map<String, Object> asrOptions = new HashMap<>();
        asrOptions.put("enable_itn", true);
        // asrOptions.put("language", "zh"); // オプション。音声言語がわかっている場合は、このパラメーターで指定すると認識精度が向上します。
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/zh/model-studio/get-api-key をご参照ください。
                // 環境変数が設定されていない場合は、次の行を Model Studio API キーに置き換えます: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3-asr-flash")
                .message(userMessage)
                .message(sysMessage)
                .parameter("asr_options", asrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        try {
            // 以下はシンガポールリージョンの URL です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
            Constants.baseHttpApiUrl = "https://dashscope-intl.aliyuncs.com/api/v1";
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

完全な結果は JSON 形式でコンソールに出力されます。結果には、状態コード、一意のリクエスト ID、認識されたコンテンツ、および呼び出しのトークン使用状況情報が含まれます。

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "Welcome to Alibaba Cloud."
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}

curl

System Message の text パラメーターを使用して、カスタム認識のコンテキストを設定できます。

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

curl --location --request POST '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": "qwen3-asr-flash",
    "input": {
        "messages": [
            {
                "content": [
                    {
                        "text": ""
                    }
                ],
                "role": "system"
            },
            {
                "content": [
                    {
                        "audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/welcome.mp3"
                    }
                ],
                "role": "user"
            }
        ]
    },
    "parameters": {
        "asr_options": {
            "enable_itn": true
        }
    }
}'

完全な結果は JSON 形式でコンソールに出力されます。結果には、状態コード、一意のリクエスト ID、認識されたコンテンツ、および呼び出しのトークン使用状況情報が含まれます。

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "annotations": [
                        {
                            "language": "zh",
                            "type": "audio_info",
                            "emotion": "neutral"
                        }
                    ],
                    "content": [
                        {
                            "text": "Welcome to Alibaba Cloud."
                        }
                    ],
                    "role": "assistant"
                }
            }
        ]
    },
    "usage": {
        "input_tokens_details": {
            "text_tokens": 0
        },
        "output_tokens_details": {
            "text_tokens": 6
        },
        "seconds": 1
    },
    "request_id": "568e2bf0-d6f2-97f8-9f15-a57b11dc6977"
}

ツール呼び出し

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

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 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"
            ]
        }
    }
]
messages = [{"role": "user", "content": "What's the weather like in Hangzhou?"}]
response = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えます: api_key="sk-xxx",
    # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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 "It is sunny in " + location + " 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/en/model-studio/get-api-key をご参照ください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/model-studio/getting-started/models をご参照ください。
                .model("qwen-plus")
                .messages(messages)
                .resultFormat(ResultFormat.MESSAGE)
                .tools(Arrays.asList(
                        ToolFunction.builder().function(fdWeather).build(),
                        ToolFunction.builder().function(fdTime).build()))
                .build();
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        // 上記の URL はシンガポールリージョンの 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 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"]
            }
        }]
    }
}'

非同期呼び出し

# Dashscope Python SDK は v1.19.0 以降である必要があります。
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.generation import AioGeneration

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 上記の URL はシンガポールリージョンの 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/en/model-studio/get-api-key をご参照ください。
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        # この例では qwen-plus を使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/en/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())

テキスト抽出

Qwen-OCR モデルによるテキスト抽出の詳細については、「テキスト抽出」をご参照ください。

Python

# [pip install -U dashscope] を使用して SDK を更新します。

import os
import dashscope
# 以下の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、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://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
              "min_pixels": 3136,
              "max_pixels": 6422528,
          }
        ]
      }
    ]
params = {
  "ocr_options":{
  # 情報抽出のための組み込みタスクを設定します。プロンプトを入力する必要はありません。モデルはタスクの組み込みプロンプトを使用します。
    "task": "key_information_extraction",
    "task_config": {
      "result_schema": {
          "seller_name": "",
          "buyer_name": "",
          "price_before_tax": "",
          "organization_code": "",
          "invoice_code": ""
      }
    }
  }
}

response = dashscope.MultiModalConversation.call(model='qwen-vl-ocr',
                                       messages=messages,
                                       **params,
                                       # シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
                                       api_key=os.getenv('DASHSCOPE_API_KEY'))

print(response.output.choices[0].message.content[0]["ocr_result"])

Java

import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
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.aigc.multimodalconversation.OcrOptions;
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.google.gson.JsonObject;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {
        // 以下の URL はシンガポールリージョン用です。北京リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/api/v1 に置き換えてください。
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
    
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        Map<String, Object> map = new HashMap<>();
        map.put("image", "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg");
        // 入力画像の最大ピクセルしきい値。画像がこの値を超えると、総ピクセル数が max_pixels 未満になるまで比例的に縮小されます。
        map.put("max_pixels", "6422528");
        // 入力画像の最小ピクセルしきい値。画像がこの値より小さい場合、総ピクセル数が min_pixels より大きくなるまで比例的に拡大されます。
        map.put("min_pixels", "3136");
         // 自動画像回転機能を有効にします。
        map.put("enable_rotate", true);
        
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        map
                        )).build();

        // メインの JSON オブジェクトを作成します。
        JsonObject resultSchema = new JsonObject();
        resultSchema.addProperty("seller_name", "");
        resultSchema.addProperty("buyer_name", "");
        resultSchema.addProperty("price_before_tax", "");
        resultSchema.addProperty("organization_code", "");
        resultSchema.addProperty("invoice_code", "");

        // 情報抽出のための組み込みタスクを設定します。プロンプトを入力する必要はありません。モデルはタスクの組み込みプロンプトを使用します。
        OcrOptions ocrOptions = OcrOptions.builder()
                .task(OcrOptions.Task.KEY_INFORMATION_EXTRACTION)
                .taskConfig(OcrOptions.TaskConfig.builder()
                        .resultSchema(resultSchema)
                        .build())
                .build();

        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // シンガポールリージョンと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください。
                // 環境変数を設定していない場合は、次の行を .apiKey("sk-xxx") に置き換え、Model Studio API キーを使用してください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-vl-ocr")
                .message(userMessage)
                .ocrOptions(ocrOptions)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("ocr_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-ocr",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "image": "https://prism-test-data.oss-cn-hangzhou.aliyuncs.com/image/car_invoice/car-invoice-img00040.jpg",
            "min_pixels": 3136,
            "max_pixels": 6422528,
            "enable_rotate": true
          }
        ]
      }
    ]
  },
  "parameters": {
    "ocr_options": {
      "task": "key_information_extraction",
    "task_config": {
      "result_schema": {
          "seller_name": "",
          "buyer_name": "",
          "price_before_tax": "",
          "organization_code": "",
          "invoice_code": ""
      }
    }
    }
  }
}
'

ドキュメント理解

Python

import os
import dashscope

# 現在、qwen-long-latest モデルの呼び出しは北京リージョンのみでサポートされています。
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assisstant'},
        # '{FILE_ID}' を実際の会話シナリオで使用されるファイル ID に置き換えます。
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えます: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long-latest",
    messages=messages,
    result_format='message'
)
print(response)

Java

import os
import dashscope

# 現在、qwen-long-latest モデルの呼び出しは北京リージョンのみでサポートされています。
dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assisstant'},
        # '{FILE_ID}' を実際の会話シナリオで使用されるファイル ID に置き換えます。
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えます: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long-latest",
    messages=messages,
    result_format='message'
)
print(response)

curl

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

model string (必須)

モデル名。

サポートされているモデル: Qwen 大規模言語モデル (商用およびオープンソース)、コードモデル、Qwen-VL

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

messages array (必須)

会話履歴を構成するメッセージのリスト。

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

メッセージタイプ

System Message object (オプション)

モデルの目標またはロール。システムメッセージを設定する場合は、メッセージリストの先頭に配置します。

プロパティ

content string or array (必須)

メッセージの内容。録音ファイル認識 - Qwen 機能を呼び出す場合にのみ配列になります。それ以外の場合は文字列です。

プロパティ

text string

コンテキストを指定します。Qwen3 ASR では、音声認識中にバックグラウンドテキストやエンティティ語彙 (コンテキスト) などの参照情報を提供して、カスタマイズされた認識結果を取得できます。

長さ制限: 10,000 トークン。

詳細については、「コンテキスト拡張」をご参照ください。

role string (必須)

system に固定されています。

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

User Message object (必須)

ユーザーがモデルに送信したメッセージ。

プロパティ

content string or array (必須)

ユーザーのメッセージの内容。入力がテキストのみの場合は文字列です。画像などのマルチモーダルデータを含む場合は配列です。

プロパティ

text string

渡すテキスト情報。

image string

Qwen-VL モデルで画像理解のために渡す画像ファイル。値は画像 URL またはローカルファイルパスにすることができます。ローカルファイルを渡すには、「ローカルファイル (Qwen-VL)」または「ローカルファイル (QVQ)」をご参照ください。

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

video array or string

Qwen-VL モデルまたはQVQ モデルをビデオ理解に使用する場合、入力タイプは画像リストの場合は array、ビデオファイルの場合は string です。ローカルファイルを渡すには、「ローカルファイル (Qwen-VL)」または「ローカルファイル (QVQ)」をご参照ください。

例:

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

  • ビデオファイル: {"video":"https://xxx.mp4"}

Qwen-VL モデルの場合、一部のモデルのみがビデオファイルを直接入力として受け入れることができます (詳細については、「ビデオ理解 (Qwen-VL)」をご参照ください)。ただし、QVQ モデルにはビデオファイルを直接渡すことができます。

fps float (オプション)

  • この設定は、Qwen-VL モデルまたはQVQ モデルに渡されるビデオファイルのフレーム抽出頻度を制御し、ビデオファイルから 秒ごとに 1 フレームを抽出することを指定します。

  • 画像リストを Qwen2.5-VLQwen3-VL、またはQVQ モデルに渡す場合、この設定は画像リストが元のビデオから 秒ごとに抽出されることを指定します。

さらに、fps パラメーターにより、Qwen2.5-VLQwen3-VL、および QVQ モデルはフレーム間の時間間隔を認識できます。他の Qwen-VL モデルと比較して、これにより、特定のイベントの特定や異なる期間からのキーポイントの要約など、時間的理解機能が追加されます。

Qwen2.5-VL シリーズモデル

  • qwen-vl-max シリーズ: qwen-vl-max-latestqwen-vl-max-2025-04-08 およびそれ以降のモデル。

  • qwen-vl-plus シリーズ: qwen-vl-plus-latestqwen-vl-plus-2025-01-25 およびそれ以降のモデル。

  • オープンソースシリーズ: qwen2.5-vl モデル。

video パラメーターと共に使用します。値の範囲は (0.1, 10) です。デフォルトは 2.0 です。値の例は次のとおりです。

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

  • ビデオファイルを渡す: {"video": "https://xx1.mp4", "fps":2}

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

OpenAI SDK を使用する場合、ビデオファイルはデフォルトで 0.5 秒ごとにサンプリングされ、画像リストはビデオから 0.5 秒ごとに抽出されたと見なされます。これは変更できません。

audio string

このパラメーターは、モデルが音声認識モデル (例: `qwen3-asr-flash`) である場合に必須です。

音声理解またはQwen による音声テキスト変換機能のために渡す音声ファイル。

例: {"audio":"https://xxx.mp3"}

min_pixels integer (オプション)

Qwen-OCR および Qwen-VL モデルでサポートされています。このパラメーターは、入力画像の最小ピクセルしきい値を設定します。

入力画像のピクセル数が min_pixels より少ない場合、画像は総ピクセル数が min_pixels を超えるまで比例的に拡大されます。

min_pixels の値の範囲

  • Qwen-OCR、qwen-vl-max-0813 以前qwen-vl-plus-0815 およびそれ以前に更新されたモデル: デフォルト値と最小値は 3,136 です。

  • qwen-vl-max-0813 以降、qwen-vl-plus-0815 以降に更新されたモデル: デフォルト値と最小値は 4,096 です。

  • Qwen3-VL: デフォルトは 65,536 です。最小値: 4,096。

max_pixels integer (オプション)

Qwen-OCR と Qwen-VL でサポートされています。入力画像の最大ピクセルしきい値を設定します。

入力画像のピクセル数が [min_pixels, max_pixels] の範囲内にある場合、モデルは元の画像を認識します。入力画像のピクセル数が max_pixels より大きい場合、画像は総ピクセル数が max_pixels 未満になるまで比例的に縮小されます。

max_pixels の値の範囲

  • Qwen-OCR モデルの場合: デフォルトは 6422528 です。最大値: 23520000。

  • Qwen-VL モデルの場合、2 つのケースがあります:

    • vl_high_resolution_images が False (高解像度モードが無効) の場合:

      • Qwen2.5-VL: デフォルト値と最大値は 1003520 です。

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

    • vl_high_resolution_images が True の場合 (高解像度モードが有効):

      • Qwen2.5-VL: 12845056 に固定。

      • Qwen3-VL: 16777216 に固定。

cache_control オブジェクト (任意)

明示的なキャッシュを許可するモデルでのみサポートされ、明示的なキャッシュを有効にするために使用されます。

プロパティ

type 文字列 (必須)

ephemeral に固定されます。

ロール 文字列 (必須)

ユーザーメッセージのロール。 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 シリーズ

    • 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 シリーズテキスト生成モデル

tool_calls array (任意)

関数呼び出しが開始された後、このパラメーターには、モデルが呼び出すと決定したツールと、その呼び出しに必要な引数が含まれます。1 つ以上のオブジェクトを含み、前のモデル応答の tool_calls フィールドから取得されます。

プロパティ

id string

このツール応答の ID です。

type string

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

function object

呼び出される関数です。

プロパティ

name string

呼び出される関数の名前です。

arguments string

ツールに入力されるパラメーターで、JSON 文字列です。

index integer

tool_calls リスト内のツール情報のインデックスです。

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

ツールの出力です。

プロパティ

content string (必須)

ツールメッセージのコンテンツで、通常はツール関数の出力です。

role string (必須)

ツールメッセージのロールで、tool に固定されています。

tool_call_id string (任意)

関数呼び出しが開始された後に返される ID です。response.output.choices[0].message.tool_calls[0]["id"] を通じて取得できます。この ID を使用して、ツールメッセージを対応するツールに関連付けます。

temperature float (任意)

生成されるテキストの多様性をコントロールするサンプリング温度です。

温度の値を高くするとテキストの多様性が高まり、値を低くするとテキストがより確定的になります。

有効値: [0, 2)

HTTP 呼び出しを行う際、temperatureparameters オブジェクトに配置します。
QVQ モデルのデフォルトの温度値を変更することはお勧めしません。

top_p float (任意)

nucleus sampling の確率のしきい値で、生成されるテキストの多様性をコントロールします。

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-Omni-Flash シリーズ: 1.0;

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

Java SDK では、これは topPtop_pparameters オブジェクトに配置します。
QVQ モデルのデフォルトの top_p 値を変更することは推奨しません。

top_k 整数 (オプション)

生成時のサンプリングにおける候補セットのサイズです。たとえば、値が 50 の場合、1 回の生成でスコアが最も高い 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 より前のモデル、qwen-vl-ocr、qwen2.5-omni-7b: 1;

Qwen3-Omni-Flash シリーズ: 50

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

Java SDK では、これは topKHTTP 呼び出しを行う場合、top_kparameters オブジェクトに配置します。
QVQ モデルのデフォルトの top_k 値を変更することは推奨されません。

enable_thinking boolean (任意)

思考モードを有効にするかどうかを指定します。これは、Qwen3、Qwen3-VL の商用版とオープンソース版、および Qwen3-Omni-Flash モデルに適用されます。

Qwen3 オープンソース版のデフォルト値は True です。Qwen3 商用モデルのデフォルト値は False です。

Java SDK では、これは enableThinking です。HTTP 呼び出しを行う場合、enable_thinkingparameters オブジェクトに配置します。

thinking_budget integer (任意)

思考プロセスの最大長です。このパラメーターは、enable_thinkingtrue に設定されている場合に有効になり、Qwen3 シリーズおよび Qwen3-VL モデルのすべてのモデルに適用されます。詳細については、「思考の長さを制限する」をご参照ください。

デフォルトは、モデルの最大思考連鎖長です。

enable_code_interpreter boolean (オプション)

コードインタープリターを有効にするかどうか。デフォルトは false です。qwen3-max-preview (思考モード) のみがこのパラメーターをサポートします。

Python SDK を使用して API を呼び出す場合、このパラメーターは extra_body を使用して設定します。例: extra_body={"enable_code_interpreter": xxx}

repetition_penalty float (オプション)

生成されるテキストの繰り返しを制御します。値を大きくすると、繰り返しが減少します。値が 1.0 の場合は、ペナルティがないことを意味します。値は 0 より大きい必要があります。

Java SDK では、このパラメーターは repetitionPenalty です。HTTP 呼び出しを行う場合、repetition_penaltyparameters オブジェクトに配置します。
qwen-vl-plus_latest, または qwen-vl-plus_2025-01-25 モデルを使用してテキストを抽出する場合、repetition_penalty を 1.0 に設定します。
Qwen-OCR モデルの場合、repetition_penalty のデフォルト値は 1.05 です。このパラメーターはモデルのパフォーマンスに大きく影響します。この値は変更しないでください。
QVQ モデルのデフォルトの repetition_penalty 値は変更しないでください。

presence_penalty float (任意)

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

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

シナリオ:

`presence_penalty` の値を高くすると、クリエイティブライティングやブレインストーミングなど、多様性、楽しさ、創造性が求められるシナリオに適しています。

`presence_penalty` の値を低くすると、技術ドキュメントやその他の正式なドキュメントなど、一貫性や専門用語が求められるシナリオに適しています。

デフォルトの presence_penalty 値

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

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

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

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

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

仕組み

パラメーター値が正の場合、モデルはテキスト内に既に存在するトークンにペナルティを適用します。 ペナルティは出現回数とは無関係です。 これにより、これらのトークンが再出現する可能性が減り、コンテンツの繰り返しが減少し、単語の多様性が増します。

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

パラメーター値 2.0: この映画はとても良いです。 プロットは素晴らしく、演技は素晴らしく、音楽は美しいです。 全体的に、この映画は信じられないほど良いです。 本当に素晴らしいです。 プロットは素晴らしく、演技は傑出しており、音楽はとても感動的です。

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

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

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

vl_high_resolution_images boolean (オプション) デフォルトは false

入力イメージのデフォルトのトークン制限を増やすかどうかを指定します。このパラメーターは Qwen-VL および QVQ モデルに適用されます。

  • `false` (デフォルト): デフォルトのトークン制限を使用してイメージを処理します。

    • Qwen3-VL 商用版およびオープンソース版qwen-vl-max-0813 以降、qwen-vl-plus-0815 以降に更新されたモデル: デフォルトのトークン制限は 2,560 です。

    • QVQ およびその他の Qwen-VL モデル: デフォルトのトークン制限は 1,280 です。

  • `true`: 入力イメージのトークン制限が 16,384 に増加します。

Java SDK のパラメーターは vlHighResolutionImages です。必要な Java SDK の最小バージョンは 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 オブジェクトに配置します。

ocr_options object (任意)

Qwen-OCR モデルで 組み込みタスクを使用する ためのパラメーターです。

プロパティ

task string (必須)

組み込みタスクの名前。有効な値は次のとおりです:

  • "text_recognition": 一般的なテキスト認識

  • "key_information_extraction": キー情報の抽出

  • "document_parsing": ドキュメント解析

  • "table_parsing": テーブル解析

  • "formula_recognition": 数式認識

  • "multi_lan": 多言語認識

  • "advanced_recognition": 高度な認識

task_config arrays (任意)

このパラメーターは、タスクが key_information_extraction の場合に使用されます。

プロパティ

result_schema object (必須)

モデルが抽出するフィールドを定義します。最大 3 つのネストされたレイヤーを持つ任意の JSON 構造を使用します。JSON オブジェクトのキーのみを提供し、値は空のままにします。

例:

"result_schema" : {
     "Recipient Information" : {
          "Recipient Name" : "",
          "Recipient Phone Number" : "",
          "Recipient Address":""
     }
}
このパラメーターは、Java SDK の OcrOptions に対応します。最小要件バージョンは DashScope Python SDK 1.22.2 および Java SDK 2.18.4 です。
HTTP 呼び出しを行う場合、ocr_optionsparameters オブジェクトに配置します。

max_input_tokens 整数 (オプション)

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

  • qwen-plus-latest のデフォルト値は 129,024 です。

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

このパラメーターは現在、Java SDK ではサポートされていません。

max_tokens integer (任意)

リクエストに対して返されるトークンの最大数。

max_tokens パラメーターは、モデルの生成プロセスには影響しません。 生成されたトークン数が指定された max_tokens の値を超えた場合、リクエストは切り捨てられたコンテンツを返します。

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

`max_tokens` パラメーターは、概要やキーワードの生成、コストの管理、応答時間の短縮など、限られた単語数を必要とするシナリオに適しています。

qwen-vl-ocr モデルでは、max_tokens パラメーター (最大出力長) のデフォルト値は 4,096 です。 この値を 4,097 から 8,192 の範囲の数値に増やすには、modelstudio@service.aliyun.com に、Alibaba Cloud アカウント ID、イメージタイプ (ドキュメント、eコマース、契約書など)、モデル名、推定 QPS と 1 日あたりの合計リクエスト数、およびモデルの出力長が 4,096 を超えるリクエストの割合を記載したメールを送信してください。
思考モードが有効になっている QwQ、QVQ、および Qwen3 モデルの場合、max_tokens は、ディープシンキングコンテンツの長さではなく、応答コンテンツの長さを制限します。
Java SDK では、このパラメーターは maxTokens です。 Qwen-VL および OCR モデルの場合、パラメーターは maxLength ですが、バージョン 2.18.4 以降では maxTokens もサポートされています。 HTTP 呼び出しを行うときは、max_tokensparameters

seed integer (オプション)

`seed` パラメーターを設定すると、テキスト生成プロセスがより決定論的になります。これは通常、モデルの結果が実行間で一貫していることを保証するために使用されます。

各モデルの呼び出しで同じ `seed` 値を渡し、他のパラメーターを変更しないままにすることで、モデルは可能な限り同じ結果を返します。

値の範囲: 0 から 231−1。

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

stream boolean (任意)

応答をストリームで返すかどうかを指定します。有効な値は次のとおりです。

  • 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"}。このパラメーターを {"type": "json_object"} に設定すると、モデルは標準の JSON 文字列を出力します。詳細については、「構造化出力」をご参照ください。

このパラメーターを {"type": "json_object"} に設定する場合、System Message または User Message でモデルに JSON フォーマットで出力するように指示してください。例: 「結果を JSON フォーマットで出力してください。」
Java SDK では、このパラメーターは responseFormat です。HTTP 呼び出しを行う場合、response_formatparameters オブジェクトに配置します。

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

  • テキスト生成モデル

    • 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-Turbo シリーズ (非思考モード): qwen-turbo、qwen-turbo-latest、qwen-turbo-2024-11-01、およびそれ以降のスナップショットモデル

    • Qwen-Coder シリーズ: qwen3-coder-plus、qwen3-coder-plus-2025-07-22、qwen3-coder-flash、および qwen3-coder-flash-2025-07-28

  • オープンソーステキスト生成モデル

    • Qwen3 (非思考モード)

    • Qwen3-Coder

    • Qwen2.5 シリーズテキストモデル (数学およびコーダーモデルを除く)

  • マルチモーダルモデル

    • Qwen3-VL-Plus シリーズ (非思考モード): qwen3-vl-plus、qwen3-vl-plus-2025-09-23、およびそれ以降のスナップショットモデル

    • Qwen3-VL-Flash シリーズ (非思考モード): qwen3-vl-flash、qwen3-vl-flash-2025-10-15、およびそれ以降のスナップショットモデル

    • QwenVL-Max シリーズ: qwen-vl-max (最新バージョンとスナップショットバージョンを除く)

    • QwenVL-Plus シリーズ: qwen-vl-plus (最新バージョンとスナップショットバージョンを除く)

  • オープンソースマルチモーダルモデル

    • Qwen3-VL (非思考モード)

output_format 文字列 (オプション) デフォルトは "model_detailed_report" です。

出力のフォーマットを指定します。このパラメーターは、qwen-deep-research モデルを呼び出す場合にのみ有効です。

有効な値:

  • "model_detailed_report": 約 6,000 ワードの詳細な調査レポート。

  • "model_summary_report": 約 1,500~2,000 ワードの要約調査レポート。

result_format 文字列 (オプション) デフォルトは "text" です。Qwen3-Max、Qwen3-VL、QwQ、Qwen3 オープンソース (qwen3-next-80b-a3b-instruct を除く) モデルの場合、デフォルトは "message" です。

返されるデータのフォーマットです。このパラメーターを "message" に設定すると、マルチターン対話をより簡単に行うことができます。

プラットフォームは、将来のリリースでデフォルト値を "message" に変更する予定です。
Java SDK では、パラメーターは resultFormatHTTP 呼び出しの場合、parameters オブジェクトで result_format を設定します。
Qwen-VL、QVQ、OCR、 モデルを使用する場合、このパラメーターを "text" に設定しても効果はありません。
思考モードの Qwen3-Max、Qwen3-VL、および Qwen3 モデルの場合、このパラメーターは "message" にのみ設定できます。Qwen3 商用モデルのデフォルト値は "text" です。値を "message" に設定する必要があります。
Java SDK を使用して Qwen3 オープンソースモデルを呼び出し、"text" を渡した場合でも、応答は "message" フォーマットで返されます。

logprobs boolean 任意。 デフォルトは false です。

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

  • true

  • false

reasoning フェーズ (reasoning_content) で生成されたコンテンツについては、対数確率は返されません。
qwen-plus および qwen-turbo シリーズのスナップショットモデル (メインラインモデルを除く)、および Qwen3 オープンソースモデルでサポートされています。

top_logprobs 整数 (オプション) デフォルト: 0

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

有効な値: [0, 5]

このパラメーターは、logprobstrue の場合にのみ有効になります。

n 整数 (オプション) デフォルトは 1 です。

生成する応答の数。有効値は [1, 4] です。クリエイティブライティングや広告コピーの生成など、複数の応答が必要なシナリオでは、n に大きな値を設定します。

これは、qwen-plus、Qwen3 (非思考モード) モデルでのみサポートされています。tools パラメーターが渡されると、値は 1 に固定されます。
n の値を大きくしても、入力トークンの消費量は増加しません。出力トークンの消費量は増加します。

stop 文字列または配列 (任意)

`stop` パラメーターを使用すると、生成されたテキストに指定された文字列または `token_id` が含まれそうになると、モデルは自動的に生成を停止します。

`stop` パラメーターに禁止用語を渡すことで、モデルの出力をコントロールできます。

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

tools array (オプション)

モデルが呼び出すことができる 1 つ以上のツールオブジェクトの配列です。単一の関数呼び出しフローでは、モデルはこの配列から 1 つのツールを選択します。parallel_tool_calls パラメーターを有効にすると、モデルは複数のツールを選択する場合があります。`tools` を使用する場合、result_format パラメーターを "message" に設定します。`tools` パラメーターを使用して、関数呼び出しを開始するか、ツール関数の実行結果をモデルに送信します。

現在、この機能は Qwen-VL。

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

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

description string (必須)

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

parameters object (必須)

有効な JSON Schema オブジェクトとして記述されたツールのパラメーター。詳細については、「JSON Schema ドキュメント」をご参照ください。パラメーターオブジェクトが空の場合、関数には入力パラメーターがありません。

HTTP 呼び出しを行うときは、tools パラメーターを parameters JSON オブジェクト内に配置します。qwen-vl シリーズモデルはサポートされていません。

tool_choice 文字列またはオブジェクト (任意)

`tools` パラメーターが使用される場合に、モデルが呼び出すツールを制御します。3 つの指定可能な値があります。

  • "none" は、ツールが呼び出されないことを示します。"none" は、`tools` パラメーターが空の場合のデフォルト値でもあります。

  • "auto" は、モデルがツールを呼び出すかどうかを決定することを意味します。`tools` パラメーターが空でない場合、デフォルトは "auto" です。

  • モデルが呼び出すツールを指定するオブジェクト構造。たとえば、tool_choice={"type": "function", "function": {"name": "user_function"}} です。

    モデルが思考プロセスを出力する場合、この値はサポートされていません。
    • type: "function" のみがサポートされています。

    • function

      • name: 呼び出すツールの名前。たとえば、"get_current_time" です。

Java SDK では、このパラメーターは parameters オブジェクト内で toolChoicetool_choice という名前です。

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

パラレルツール呼び出しを有効にするかどうかを指定します。このパラメーターを true に設定すると、パラレルツール呼び出しが有効になります。このパラメーターを false に設定すると、パラレルツール呼び出しが無効になります。詳細については、「パラレルツール呼び出し」をご参照ください。

translation_options オブジェクト (任意)

翻訳モデルを使用する際に設定する翻訳パラメーターです。

プロパティ

source_lang 文字列 (必須)

ソース言語の完全な英語名。詳細については、「サポートされている言語」をご参照ください。source_lang"auto" に設定すると、モデルは入力テキストの言語を自動的に判別します。

target_lang 文字列 (必須)

ターゲット言語の完全な英語名。詳細については、「サポートされている言語」をご参照ください。

terms 配列 (任意)

用語介入機能を使用する際に設定する用語配列です。

プロパティ

source 文字列 (必須)

ソース言語の用語です。

target 文字列 (必須)

ターゲット言語の用語です。

tm_list 配列 (任意)

翻訳メモリ機能を使用する際に設定する翻訳メモリ配列です。

プロパティ

source 文字列 (必須)

ソース言語の文です。

target 文字列 (必須)

ターゲット言語の文です。

domains 文字列 (任意)

ドメインプロンプト機能を使用する際に設定するドメインプロンプト文です。

ドメインプロンプト文は現在、英語でのみサポートされています。
Java SDK では、このパラメーターは translationOptions です。HTTP 呼び出しを行う場合、translation_optionsparameters オブジェクトに配置します。

asr_options オブジェクト (オプション)

このパラメーターは、Qwen 音声ファイル認識機能を呼び出す場合にのみアクティブです。これは Qwen3 ASR モデルにのみ適用されます。このパラメーターを使用して、特定の機能を有効にするかどうかを指定します。詳細については、「クイックスタート」をご参照ください。

HTTP または Java SDK を使用して呼び出しを行う場合、asr_options パラメーターを parameters オブジェクトに配置します。

プロパティ

language 文字列 (オプション)。デフォルト: なし。

音声の言語がわかっている場合は、このパラメーターを使用して検出する言語を指定します。これにより、検出精度が向上します。

1 つの言語のみを指定します。

音声の言語が不明な場合、または中国語、英語、日本語、韓国語の混在など複数の言語が含まれている場合は、このパラメーターを指定しないでください。

パラメーター値:

  • zh: 中国語

  • en: 英語

  • ja: 日本語

  • de: ドイツ語

  • ko: 韓国語

  • ru: ロシア語

  • fr: フランス語

  • pt: ポルトガル語

  • ar: アラビア語

  • it: イタリア語

  • es: スペイン語

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

逆テキスト正規化 (ITN) を有効にするかどうかを指定します。この機能は、中国語と英語の音声にのみ適用されます。

ITN は音声認識の後処理ステップです。検出された結果を話し言葉から標準的な書き言葉のフォーマットに変換します。

値:

  • true

  • false

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

{
  "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

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

プロパティ

finish_reason string

次の 4 つのケースがあります。

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

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

  • length: 出力が長すぎるため、生成が停止されました。

  • tool_calls: ツールが呼び出されたため、生成が停止されました。

message object

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

プロパティ

phase string

リサーチタスクのフェーズ。このパラメーターは、Qwen ディープリサーチモデル qwen-deep-research を呼び出した場合にのみ返されます。

  • "ResearchPlanning": リサーチ計画フェーズ。実行計画は content フィールドに格納されます。

  • "WebResearch": Web 検索フェーズ。検索コンテンツは `extra.deep_research.research` フィールドに格納されます。

  • "KeepAlive": ストリーミング接続を維持します。この値は、プログラムが実行中であるが、有用なコンテンツが含まれていないことを示します。

  • "answer": 回答フェーズ。リサーチコンテンツは `content` フィールドに格納されます。

role string

出力メッセージのロール。値は常に `assistant` です。

content string or array

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

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

プロパティ

text string

Qwen-VL または Qwen-Audio シリーズのモデルを使用する場合の出力メッセージのコンテンツ。

詳細については、「オーディオファイル認識のための Qwen」をご参照ください。音声認識結果が返されます。

image_hw array

Qwen-VL シリーズモデルで `vl_enable_image_hw_output` パラメーターが有効になっている場合、値は次のいずれかになります:

  • イメージ入力の場合、このパラメーターはイメージの高さと幅をピクセル単位で返します。

  • ビデオ入力の場合、このパラメーターは空の配列を返します。

ocr_result array

Qwen-OCR シリーズモデルが組み込みの情報抽出または高精度認識タスクを呼び出す場合、タスクの結果が返されます。

プロパティ

kv_result array

情報抽出タスクからの出力。

words_info array

高精度認識タスクからの出力。

プロパティ

rotate_rect array

例: [center_x, center_y, width, height, angle]

テキストボックスの回転した長方形:

  • center_x と center_y はテキストボックスの重心座標です。

  • width はテキストボックスの幅、height は高さです。

  • angle は、水平方向に対するテキストボックスの回転角度です。値の範囲は [-90, 90] です。

location array

例: [x1, y1, x2, y2, x3, y3, x4, y4]

テキストボックスの 4 つの頂点の座標。座標は、左上の頂点から時計回りに、左上、右上、右下、左下の順に並べられます。

text string

テキスト行のコンテンツ。

annotations array

詳細については、「オーディオファイル認識のための Qwen」をご参照ください。言語などの注釈情報が返されます。

プロパティ

language string

認識されたオーディオの言語。language リクエストパラメーターで言語を指定した場合、この値は指定された言語と同じになります。

指定可能な値:

  • zh: 中国語

  • en: 英語

  • ja: 日本語

  • de: ドイツ語

  • ko: 韓国語

  • ru: ロシア語

  • fr: フランス語

  • pt: ポルトガル語

  • ar: アラビア語

  • it: イタリア語

  • es: スペイン語

type string

値は常に audio_info で、オーディオ情報を示します。

emotion string

オーディオで検出された感情。次の感情がサポートされています:

  • surprised

  • neutral

  • happy

  • sad

  • disgusted

  • angry

  • fearful

extra dict

リサーチタスクに関する追加情報。このパラメーターは、Qwen ディープリサーチモデル qwen-deep-research を呼び出した場合にのみ返されます。

プロパティ

deep_research array

ディープリサーチタスクに関連する情報。

プロパティ

research object

リサーチタスクに関する情報。

プロパティ

id int

リサーチタスクの ID。

webSites array

検索された Web サイトに関する情報。このパラメーターは、`status` が `streamingWebResult` の場合にのみ返されます。

プロパティ

title string

Web サイトのタイトル。

description string

Web サイトの説明。

url string

Web サイトの URL。

favicon string

Web サイトのファビコン。

learningMap object

ツール呼び出しの結果を要約してモデルが取得したコンテンツ。

reference object

リファレンス情報。このパラメーターは、最終レポートが生成される回答フェーズ中に返されます。

プロパティ

icon string

Web サイトのアイコン。

index_number integer

リファレンス番号。

description string

リファレンスの説明。

title string

リファレンスのタイトル。

url string

リファレンスの URL。

status string

現在のフェーズにおけるタスクの実行ステータス。このパラメーターは、Qwen ディープリサーチモデル `qwen-deep-research` を呼び出した場合にのみ返されます。

  • "typing": モデルがリクエストを処理し、コンテンツを生成しています。

  • "finished": 現在のフェーズは完了です。

  • "streamingQueries": リサーチの目的と検索クエリが生成されています。このステータスは `WebResearch` フェーズで発生します。

  • "streamingWebResult": Web ページの検索、読み取り、コードの実行が進行中です。このステータスは `WebResearch` フェーズで発生します。

  • "WebResultFinished": Web 検索フェーズは完了です。このステータスは `WebResearch` フェーズで発生します。

reasoning_content string

Qwen3、QwQ、および QVQ モデルからのディープシンキングコンテンツ。

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」、「Qwen-VL モデル」、または「QVQ モデル」をご参照ください。このパラメーターは入力コンテンツのトークン数の詳細な内訳を提供します。

プロパティ

text_tokens integer

詳細については、「Qwen-VL モデル」または「QVQ モデル」をご参照ください。これは入力テキストのトークン数です。

詳細については、「オーディオファイル認識のための Qwen」をご参照ください。これはコンテキスト拡張機能が使用されたときの入力テキストのトークン数です。最大トークン数は 10,000 です。

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

seconds integer

詳細については、「オーディオファイル認識のための Qwen」をご参照ください。これはオーディオの長さを秒単位で示します。

エラーコード

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