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

Alibaba Cloud Model Studio:DashScope API Reference

最終更新日:Jul 14, 2026

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

シンガポール

HTTP リクエストアドレス:

  • プレーンテキストモデル (例:`qwen-plus`): POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル (例:`qwen3.7-plus` または `qwen3-vl-plus`): POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

米国 (バージニア)

HTTP リクエストアドレス:

  • プレーンテキストモデル: POST https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation

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

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

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

Java コード

  • 方法 1:

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

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://dashscope-us.aliyuncs.com/api/v1";

中国 (北京)

HTTP リクエストアドレス:

  • プレーンテキストモデル (例:`qwen-plus`): POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル (例:`qwen3.7-plus` または `qwen3-vl-plus`): POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

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

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";

香港 (中国)

HTTP リクエストアドレス:

  • プレーンテキストモデル (例:`qwen-plus`): POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル (例:`qwen3.7-plus` または `qwen3-vl-plus`): POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

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

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1";

ドイツ (フランクフルト)

HTTP リクエストアドレス:

  • プレーンテキストモデル (例:`qwen-plus`): POST https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs</u>.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル (例:`qwen3.7-plus` または `qwen3-vl-plus`): POST https://<u>{WorkspaceId}.eu-central-1.maas.aliyuncs</u>.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1";

日本 (東京)

HTTP リクエストアドレス:

  • プレーンテキストモデル (例:`qwen-plus`): POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation

  • マルチモーダルモデル (例:`qwen3.7-plus` または `qwen3-vl-plus`): POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

SDK 呼び出し設定の base_url は次のとおりです:

Python コード

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1'

Java コード

  • 方法 1:

    import com.alibaba.dashscope.protocol.Protocol;
    Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1");
  • 方法 2:

    import com.alibaba.dashscope.utils.Constants;
    Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1";

{WorkspaceId} を実際のワークスペース ID に置き換えてください。

API キーを取得し、環境変数として設定する必要があります。DashScope SDK を使用して呼び出しを行う場合は、DashScope SDK をインストールする必要もあります。

重要

Alibaba Cloud Model Studio は、中国 (北京)、シンガポール、および香港 (中国) リージョン向けにワークスペース固有のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します:

  • 中国 (北京): https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com

  • シンガポール: https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com

  • 香港 (中国): https://cn-hongkong.dashscope.aliyuncs.com から https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com

{WorkspaceId} は、Alibaba Cloud Model Studio コンソールの [ワークスペース詳細] ページで確認できるワークスペース ID です。既存のドメインも引き続き完全に機能します。

リクエストボディ

テキスト入力

Python

import os
import dashscope

# 以下はシンガポールリージョンの base_url です。呼び出しを行う際は、{WorkspaceId} を実際のワークスペース ID に置き換えてください。リージョンによって URL は異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': 'Who are you?'}
]
response = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
    # シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-plus", # この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    messages=messages,
    result_format='message'
    )
print(response)

Java

// DashScope SDK 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 {
        // 以下はシンガポールリージョンの base_url です。呼び出しを行う際は、{WorkspaceId} を実際のワークスペース ID に置き換えてください。リージョンによって URL は異なります。
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Who are you?")
                .build();
        GenerationParam param = GenerationParam.builder()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                // シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
                .model("qwen-plus")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // ロギングフレームワークを使用して例外情報を記録します。
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
        System.exit(0);
    }
}

PHP (HTTP)

<?php
$url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    "model" => "qwen-plus",
    "input" => [
        "messages" => [
            [
                "role" => "system",
                "content" => "You are a helpful assistant."
            ],
            [
                "role" => "user",
                "content" => "Who are you?"
            ]
        ]
    ],
    "parameters" => [
        "result_format" => "message"
    ]
];

$jsonData = json_encode($data);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($httpCode == 200) {
    echo "Response: " . $response;
} else {
    echo "Error: " . $httpCode . " - " . $response;
}

curl_close($ch);
?>

Node.js (HTTP)

DashScope は Node.js 環境向けの SDK を提供していません。OpenAI Node.js SDK を使用して呼び出しを行うには、このトピックの OpenAI セクションをご参照ください。

import fetch from 'node-fetch';
// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
const apiKey = process.env.DASHSCOPE_API_KEY;

const data = {
    model: "qwen-plus", // この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    input: {
        messages: [
            {
                role: "system",
                content: "You are a helpful assistant."
            },
            {
                role: "user",
                content: "Who are you?"
            }
        ]
    },
    parameters: {
        result_format: "message"
    }
};

fetch('https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
    console.log(JSON.stringify(data));
})
.catch(error => {
    console.error('Error:', error);
});

C# (HTTP)

using System.Net.Http.Headers;
using System.Text;

class Program
{
    private static readonly HttpClient httpClient = new HttpClient();

    static async Task Main(string[] args)
    {
        // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: string? apiKey = "sk-xxx";
        // シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

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

        // リクエスト URL とコンテンツを設定します。
        string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
        // この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        string jsonContent = @"{
            ""model"": ""qwen-plus"", 
            ""input"": {
                ""messages"": [
                    {
                        ""role"": ""system"",
                        ""content"": ""You are a helpful assistant.""
                    },
                    {
                        ""role"": ""user"",
                        ""content"": ""Who are you?""
                    }
                ]
            },
            ""parameters"": {
                ""result_format"": ""message""
            }
        }";

        // リクエストを送信し、レスポンスを取得します。
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // 結果を出力します。
        Console.WriteLine(result);
    }

    private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
    {
        using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
        {
            // リクエストヘッダーを設定します。
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // リクエストを送信し、レスポンスを取得します。
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // レスポンスを処理します。
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"Request failed: {response.StatusCode}";
            }
        }
    }
}

Go (HTTP)

DashScope は Go 用の SDK を提供していません。OpenAI Go SDK を使用して呼び出しを行うには、このトピックの OpenAI-Go セクションをご参照ください。

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

type Message struct {
	Role    string `json:"role"`
	Content string `json:"content"`
}

type Input struct {
	Messages []Message `json:"messages"`
}

type Parameters struct {
	ResultFormat string `json:"result_format"`
}

type RequestBody struct {
	Model      string     `json:"model"`
	Input      Input      `json:"input"`
	Parameters Parameters `json:"parameters"`
}

func main() {
	// HTTP クライアントを作成します。
	client := &http.Client{}

	// リクエストボディを構築します。
	requestBody := RequestBody{
		// この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
		Model: "qwen-plus",
		Input: Input{
			Messages: []Message{
				{
					Role:    "system",
					Content: "You are a helpful assistant.",
				},
				{
					Role:    "user",
					Content: "Who are you?",
				},
			},
		},
		Parameters: Parameters{
			ResultFormat: "message",
		},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		log.Fatal(err)
	}

	// POST リクエストを作成します。
	req, err := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation", bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}

	// リクエストヘッダーを設定します。
	// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey := "sk-xxx"
	// シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// リクエストを送信します。
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	// レスポンスボディを読み取ります。
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}

	// レスポンスコンテンツを出力します。
	fmt.Printf("%s\n", bodyText)
}

curl

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

シンガポール、米国 (バージニア)、および中国 (北京) リージョンの API キーは異なります。詳細については、「API キーの取得
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

ストリーミング出力

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

テキスト生成モデル

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
    {'role':'system','content':'you are a helpful assistant'},
    {'role': 'user','content': 'Who are you?'}
]
responses = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
    # シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    model="qwen-plus",
    messages=messages,
    result_format='message',
    stream=True,
    incremental_output=True
    )
for response in responses:
    print(response)  

Java

import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    private static void handleGenerationResult(GenerationResult message) {
        System.out.println(JsonUtils.toJson(message));
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        return GenerationParam.builder()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                // シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
                .model("qwen-plus")
                .messages(Arrays.asList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .incrementalOutput(true)
                .build();
    }
    public static void main(String[] args) {
        try {
            Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
            streamCallWithMessage(gen, userMsg);
        } catch (ApiException | NoApiKeyException | InputRequiredException  e) {
            logger.error("An exception occurred: {}", e.getMessage());
        }
        System.exit(0);
    }
}

curl

curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data '{
    "model": "qwen-plus",
    "input":{
        "messages":[      
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message",
        "incremental_output":true
    }
}'

マルチモーダルモデル

Python

import os
from dashscope import MultiModalConversation
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"text": "What is depicted in the image?"}
        ]
    }
]

responses = MultiModalConversation.call(
    # シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen3-vl-plus',  #  これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを修正できます。
    messages=messages,
    stream=True,
    incremental_output=True)
    
full_content = ""
print("Streaming output content:")
for response in responses:
    if response["output"]["choices"][0]["message"].content:
        print(response.output.choices[0].message.content[0]['text'])
        full_content += response.output.choices[0].message.content[0]['text']
print(f"Full content: {full_content}")

Java

import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    public static void streamCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        // 可変マップを作成する必要があります。
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
                        Collections.singletonMap("text", "What is depicted in the image?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // シンガポール/米国 (バージニア) と中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3-vl-plus")  //  これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを修正できます。
                .messages(Arrays.asList(userMessage))
                .incrementalOutput(true)
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(item -> {
            try {
                var content = item.getOutput().getChoices().get(0).getMessage().getContent();
                    // コンテンツが存在し、空でないことを確認します。
                if (content != null &&  !content.isEmpty()) {
                    System.out.println(content.get(0).get("text"));
                    }
            } catch (Exception e){
                System.exit(0);
            }
        });
    }

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

curl

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
    "model": "qwen3-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"text": "What is depicted in the image?"}
                ]
            }
        ]
    },
    "parameters": {
        "incremental_output": true
    }
}'

画像入力

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

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'  
messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
            {"text": "What are these?"}
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    # シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-vl-max を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    model='qwen-vl-max',
    messages=messages
    )
print(response)

Java

// Copyright (c) Alibaba, Inc. and its affiliates.

import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
public class Main {
    static {
     Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.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()
                // 環境変数を設定していない場合は、次の行を .apiKey("sk-xxx") に置き換え、Model Studio API キーを使用してください。
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-vl-plus を使用します。必要に応じて、別のモデル名に置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
                .model("qwen-vl-plus")
                .message(userMessage)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

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

curl

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

シンガポール、米国 (バージニア)、および中国 (北京) リージョンの API キーは異なります。API キーを取得するには、「API キーの取得
curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
                    {"text": "What are these?"}
                ]
            }
        ]
    }
}'

動画入力

以下の例は、ビデオフレームを入力する方法を示しています。動画ファイルの入力など、他の方法の詳細については、「視覚理解」をご参照ください。

Python

import os
# DashScope SDK のバージョンは 1.20.10 以降である必要があります。
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.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 events in this video"}]}]
response = dashscope.MultiModalConversation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
    # シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen-vl-max',  # この例では qwen-vl-max を使用します。必要に応じて別のモデル名に置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
    messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])

Java

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

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

public class Main {
    static {
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    private static final String MODEL_NAME = "qwen-vl-max"; // この例では qwen-vl-max を使用します。必要に応じて別のモデル名に置き換えてください。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください
    public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage systemMessage = MultiModalMessage.builder()
                .role(Role.SYSTEM.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
                .build();
        //  Qwen2.5-VL シリーズのモデルを使用し、画像のリストを入力する場合、fps パラメーターを設定できます。このパラメーターは、元の動画から 1/fps 秒ごとに画像が抽出されることを指定します。
        Map<String, Object> params = Map.of(
                "video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"),
                "fps",2);
        MultiModalMessage userMessage = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(
                        params,
                        Collections.singletonMap("text", "Describe the events in this video")))
                .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: .apiKey("sk-xxx")
                // シンガポール/バージニアと北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model(MODEL_NAME)
                .messages(Arrays.asList(systemMessage, userMessage)).build();
        MultiModalConversationResult result = conv.call(param);
        System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }
    public static void main(String[] args) {
        try {
            videoImageListSample();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

シンガポール、米国 (バージニア)、および中国 (北京) リージョンの API キーは異なります。詳細については、「API キーの取得
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen-vl-max",
  "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 events in this video"
          }
        ]
      }
    ]
  }
}'

Tool Calling

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

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "Useful for getting the current time.",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Useful for getting the weather in a specific city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city or district, such as Beijing, Hangzhou, or Yuhang District."
                    }
                }
            },
            "required": [
                "location"
            ]
        }
    }
]
messages = [{"role": "user", "content": "What is the weather like in Hangzhou?"}]
response = dashscope.Generation.call(
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx"
    # シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # この例では qwen-plus を使用します。必要に応じて別のモデルに置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
    model='qwen-plus',
    messages=messages,
    tools=tools,
    result_format='message'
)
print(response)

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.aigc.conversation.ConversationParam.ResultFormat;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.Option;
import com.github.victools.jsonschema.generator.OptionPreset;
import com.github.victools.jsonschema.generator.SchemaGenerator;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfig;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder;
import com.github.victools.jsonschema.generator.SchemaVersion;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public class GetWeatherTool {
        private String location;
        public GetWeatherTool(String location) {
            this.location = location;
        }
        public String call() {
            return location + " is sunny today.";
        }
    }
    public class GetTimeTool {
        public GetTimeTool() {
        }
        public String call() {
            LocalDateTime now = LocalDateTime.now();
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String currentTime = "Current time: " + now.format(formatter) + ".";
            return currentTime;
        }
    }
    public static void SelectTool()
            throws NoApiKeyException, ApiException, InputRequiredException {
        SchemaGeneratorConfigBuilder configBuilder =
                new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON);
        SchemaGeneratorConfig config = configBuilder.with(Option.EXTRA_OPEN_API_FORMAT_VALUES)
                .without(Option.FLATTENED_ENUMS_FROM_TOSTRING).build();
        SchemaGenerator generator = new SchemaGenerator(config);
        ObjectNode jsonSchema_weather = generator.generateSchema(GetWeatherTool.class);
        ObjectNode jsonSchema_time = generator.generateSchema(GetTimeTool.class);
        FunctionDefinition fdWeather = FunctionDefinition.builder().name("get_current_weather").description("Gets the weather for a specified area")
                .parameters(JsonUtils.parseString(jsonSchema_weather.toString()).getAsJsonObject()).build();
        FunctionDefinition fdTime = FunctionDefinition.builder().name("get_current_time").description("Gets the current time")
                .parameters(JsonUtils.parseString(jsonSchema_time.toString()).getAsJsonObject()).build();
        Message systemMsg = Message.builder().role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant. When asked a question, use tools wherever possible.")
                .build();
        Message userMsg = Message.builder().role(Role.USER.getValue()).content("Weather in Hangzhou").build();
        List<Message> messages = new ArrayList<>();
        messages.addAll(Arrays.asList(systemMsg, userMsg));
        GenerationParam param = GenerationParam.builder()
                // シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // この例では qwen-plus を使用します。必要に応じて別のモデルに置き換えることができます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
                .model("qwen-plus")
                .messages(messages)
                .resultFormat(ResultFormat.MESSAGE)
                .tools(Arrays.asList(
                        ToolFunction.builder().function(fdWeather).build(),
                        ToolFunction.builder().function(fdTime).build()))
                .build();
        // 以下はシンガポールリージョンのベース URL です。呼び出しを行う際は、{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.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

{WorkspaceId} を実際の ワークスペース ID に置き換えてください。

シンガポール、米国 (バージニア)、および中国 (北京) リージョンの API キーは異なります。詳細については、「API キーの取得
以下の URL はシンガポールリージョン用です。
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-plus",
    "input": {
        "messages": [{
            "role": "user",
            "content": "What is the weather like in Hangzhou?"
        }]
    },
    "parameters": {
        "result_format": "message",
        "tools": [{
            "type": "function",
            "function": {
                "name": "get_current_time",
                "description": "Useful for getting the current time.",
                "parameters": {}
            }
        },{
            "type": "function",
            "function": {
                "name": "get_current_weather",
                "description": "Useful for getting the weather in a specific city.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "The city or district, such as Beijing, Hangzhou, or Yuhang District."
                        }
                    }
                },
                "required": ["location"]
            }
        }]
    }
}'

非同期呼び出し

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

# 以下の base_url はシンガポールリージョン用です。{WorkspaceId} を実際のワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
async def main():
    response = await AioGeneration.call(
        # 環境変数を設定しない場合は、次の行を api_key="sk-xxx" に置き換えてください。sk-xxx は Model Studio API キーです。
        # シンガポール、バージニア、北京リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        # この例では qwen-plus モデルを使用します。必要に応じてモデル名を変更できます。モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください
        model="qwen-plus",
        messages=[{"role": "user", "content": "Who are you?"}],
        result_format="message",
    )
    print(response)

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

ドキュメント理解

Python

import os
import dashscope

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

Java

import os
import dashscope

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

curl

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

model string (必須)

使用するモデルの名前。

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

特定のモデル名と請求明細については、「モデルの選択」をご参照ください。

messages array (必須)

大規模言語モデル (LLM) に渡すコンテキストを、対話形式で配置します。

HTTP 経由で呼び出す場合、messagesinput オブジェクト内に配置します。

メッセージタイプ

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

LLM のロール、トーン、タスク目標、または制約を設定するために使用されるシステムメッセージです。通常、messages 配列の最初に配置されます。

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

プロパティ

content string (必須)

メッセージのコンテンツ。

role string (必須)

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

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

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

プロパティ

content string または array (必須)

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

プロパティ

text string (必須)

入力テキスト。

image string (任意)

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

  • パブリック URL:公にアクセス可能な画像リンク。

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

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

適用モデル: Qwen-VLQVQ

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

video array または string (任意)

Qwen-VL モデルまたは QVQ モデルを使用する際に渡す動画。

  • 画像リストを渡す場合、型は array です。

  • 動画ファイルを渡す場合、型は string です。

ローカルファイルを渡すには、「ローカルファイル (Qwen-VL)」または「ローカルファイル (QVQ)」をご参照ください。

例:

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

  • 動画ファイル: {"video":"https://xxx.mp4"}

fps float (任意)

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

説明

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

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

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

    これは Qwen3.7、Qwen3.6、Qwen3.5、Qwen3-VLQwen2.5-VL、および QVQ モデルでサポートされています。

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

  • 画像リストの受け渡し: {"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2}

  • 動画ファイルの受け渡し: {"video": "https://xx1.mp4","fps":2}

max_frames integer (任意)

動画から抽出できるフレームの最大数。fps に基づいて計算されたフレーム数が max_frames を超える場合、システムは max_frames の制限内で均等にフレームを抽出するように自動的に調整します。これにより、総フレーム数が制限を超えないようにします。

値の範囲

  • qwen3.7 シリーズ、qwen3.6 シリーズ、qwen3.5 シリーズ:最大値およびデフォルト値は 8000 です。

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

  • qwen-vl-maxqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-0815:最大値およびデフォルト値は 512 です。

サンプル値

{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_frame": 2000}

OpenAI 互換 API で呼び出す場合、max_frames パラメーターをカスタマイズすることはできません。API は各モデルのデフォルト値を自動的に使用します。

min_pixels integer (任意)

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

値の範囲

  • 画像入力:

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

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

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

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

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

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

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

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

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

max_pixels integer (任意)

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

有効範囲

  • 画像入力:

    max_pixels の値は、<a baseurl="t3230323_v1_0_0.xdita" data-node="4759789" data-root="85177" data-tag="xref" href="t2614691.xdita#0edad44583knr" id="758d486a79gkv">vl_high_resolution_images</a> パラメーターが有効になっているかどうかによって異なります。

    • vl_high_resolution_imagesFalse の場合:

      • Qwen3.7, Qwen3.6, Qwen3.5Qwen3-VL:デフォルト値は 2621440、最大値は 16777216 です。

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

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

    • vl_high_resolution_imagesTrue の場合:

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

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

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

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

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

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

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

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

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

total_pixels integer (任意)

動画から抽出されたすべてのフレームの総ピクセル数 (単一フレームのピクセル数 × 総フレーム数) を制限します。動画の総ピクセル数がこの制限を超える場合、システムはビデオフレームを縮小しますが、単一フレームのピクセル値が [min_pixels, max_pixels] の範囲内にあることを保証します。これは Qwen-VL および QVQ モデルに適用されます。

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

値の範囲

  • qwen3.7 シリーズ、qwen3.6 シリーズ、qwen3.5 シリーズ:デフォルト値および最大値は 819200000 です。この値は 800000 画像トークンに相当します (1 画像トークンあたり 32×32 ピクセル)。

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

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

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

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

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

cache_control object (任意)

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

プロパティ

type string (必須)

値は ephemeral である必要があります。

role 文字列 (必須)

ユーザーメッセージのロールです。値は user である必要があります。

Assistant Message object (オプション)

モデルからユーザーメッセージへの返信です。

プロパティ

content string (オプション)

メッセージのコンテンツです。 アシスタントメッセージで tool_calls パラメーターが指定されている場合にのみ、このパラメーターはオプションになります。

role string (必須)

値は assistant である必要があります。

partial boolean (オプション)

部分補完モードを有効にするかどうかを指定します。 詳細およびサポートされているモデルのリストについては、「部分補完モード」をご参照ください。

tool_calls array (オプション)

関数呼び出しを開始した後に返されるツールと入力パラメーターの情報です。 1 つ以上のオブジェクトが含まれます。 これは、前のモデル応答の tool_calls フィールドから取得されます。

プロパティ

id string

ツール応答の ID です。

type string

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

function object

ツールと入力パラメーターの情報です。

プロパティ

name string

ツール名です。

arguments string

JSON 文字列形式の入力パラメーター情報です。

index integer

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

Tool Message object (任意)

ツールの出力情報です。

プロパティ

content string (必須)

ツール関数の出力コンテンツです。文字列フォーマットである必要があります。

role string (必須)

値は tool である必要があります。

tool_call_id string (任意)

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

temperature float (任意)

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

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

有効値: [0, 2)

HTTP 経由で呼び出す場合、temperatureparameters オブジェクト内に配置します。
QVQ モデルのデフォルトの温度値を変更することは推奨しません。

top_p float (任意)

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

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

有効範囲: (0, 1.0].

Java SDK では、このパラメーターは topP です。HTTP 経由で呼び出す場合、top_pparameters オブジェクト内に配置します。
QVQ モデルのデフォルトの `top_p` 値を変更することは推奨しません。

top_k integer (任意)

生成中のサンプリングのためのサンプル候補セットのサイズ。たとえば、このパラメーターを 50 に設定すると、単一の生成で最もスコアの高い 50 個のトークンのみがランダムサンプリングのサンプル候補セットを形成するために使用されます。値が大きいほどランダム性が増し、小さいほど決定論的になります。`None` または 100 より大きい値は、`top_k` 戦略が有効になっておらず、`top_p` 戦略のみが有効であることを示します。

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

デフォルトの top_k 値

QVQ シリーズ:10

QwQ シリーズ:40

qwen-vl-plus シリーズの残りのモデルより前のモデル、:1

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

GLM シリーズ (Alibaba Cloud 提供):20

DeepSeek、Kimi、および MiniMax シリーズは `top_k` パラメーターをサポートしていません。

Java SDK では、このパラメーターは topK です。HTTP 経由で呼び出す場合、top_kparameters オブジェクト内に配置します。
QVQ モデルのデフォルトの `top_k` 値を変更することは推奨しません。

enable_thinking boolean (任意)

ハイブリッド思考モデルの思考モードを有効にするかどうかを指定します。これは、Qwen3.7、Qwen3.6、Qwen3.5、Qwen3、および Qwen3-VL モデル、ならびに DeepSeek-V4-Pro/V4-Flash シリーズ、DeepSeek-V3.2/V3.2-exp/V3.1 シリーズ、Kimi-K2.6/K2.5 シリーズ、および GLM シリーズに適用されます。DeepSeek-V4 シリーズでは、思考モードがデフォルトで有効になっています。reasoning_effort パラメーターで推論の労力を調整できます。

有効値:

  • true:この機能は有効です。

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

さまざまなモデルのデフォルト値については、「サポートされているモデル」をご参照ください。

Java SDK では、このパラメーターは `enableThinking` です。HTTP 経由で呼び出す場合、enable_thinkingparameters オブジェクト内に配置します。

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

会話履歴のアシスタントメッセージから reasoning_content をモデル入力に追加するかどうかを指定します。これは、モデルが過去の思考プロセスを参照する必要があるシナリオに適しています。

現在、qwen3.7-max、qwen3.7-max-2026-05-20 およびそれ以降のスナップショット、qwen3.6-max-preview、qwen3.7-plus、qwen3.7-plus-2026-05-26、qwen3.6-plus、qwen3.6-plus-2026-04-02、qwen3.6-flash、qwen3.6-flash-2026-04-16、kimi-k2.6 (Alibaba Cloud Model Studio にデプロイ)、kimi-k2.7-code (Alibaba Cloud Model Studio にデプロイ、デフォルトで有効)、kimi/kimi-k2.7-code-highspeed (Moonshot AI 提供、デフォルトで有効)、および kimi/kimi-k2.7-code (Moonshot AI 提供、デフォルトで有効) でサポートされています。

  • 過去のメッセージに reasoning_content が含まれていない場合、このパラメーターを有効にしてもエラーは発生しません。

  • 有効にすると、過去の会話の reasoning_content が入力トークン数に含まれ、課金対象となります。

HTTP 経由で呼び出す場合、preserve_thinkingparameters オブジェクト内に配置します。Java SDK はサポートされていません。

thinking_budget integer (任意)

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

デフォルト値は、モデルの最大 Chain-of-Thought 長です。詳細については、「モデルの選択」をご参照ください。

Java SDK では、このパラメーターは `thinkingBudget` です。HTTP 経由で呼び出す場合、thinking_budgetparameters オブジェクト内に配置します。
デフォルト値は、モデルの最大 Chain-of-Thought 長です。

reasoning_effort string (任意) デフォルト値は high です。

DeepSeek-V4 および GLM シリーズモデルの推論労力を制御します。有効な値は high (高労力推論) および max (最大労力推論) です。`low` および `medium` は `high` にマッピングされ、`xhigh` は `max` にマッピングされます。

これは、glm-5.2、glm-5.1、glm-5、deepseek-v4-pro、および deepseek-v4-flash に適用されます。

HTTP 経由で呼び出す場合、reasoning_effortparameters オブジェクト内に配置します。

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

このパラメーターは、複雑なツールパラメーターのストリーミング出力動作にのみ影響し、ストリーミング呼び出しでのみ有効です。すべてのパラメータータイプが文字列である単純なツールパラメーターは、ストリーミング呼び出しが有効である限りストリーミングできます。tool_stream はそれらに影響を与えません。複雑なツールとは、ツール定義の一部のパラメータータイプが配列またはオブジェクトであるツールです。現在、Qwen および GLM シリーズのみがこれをサポートしています。

Qwen シリーズのサポートリスト:

  • qwen-max シリーズ:qwen3.7-max シリーズのテキストモダリティ

  • qwen-plus シリーズ:qwen3.7-plus および qwen3.6-plus シリーズのテキストモダリティ、および qwen3.5-plus シリーズのすべてのモダリティ

  • qwen-flash シリーズ:qwen3.6-flash および qwen3.5-flash シリーズのすべてのモダリティ

Qwen シリーズの使用法リファレンス:

  • tool_stream=false:複雑なツールパラメーターは一度に出力されます。これはデフォルトの動作であり、複雑なフォーマットの方がより正確です。

  • tool_stream=true:複雑なツールパラメーターはストリーミングされます。これにより、複雑なフォーマットのタイムアウトのリスクを回避できます。

複雑なツールとは、ツール定義の一部のパラメータータイプが配列またはオブジェクトであるツールです。

GLM シリーズのサポートリスト: glm-4.6、glm-4.7、glm-5、および glm-5.1。

GLM シリーズの使用法リファレンス:

  • tool_stream=false:ツールパラメーターは一度に出力されます。これはデフォルトの動作であり、複雑なフォーマットの方がより正確です。

  • tool_stream=true:ツールパラメーターはストリーミングされます。これにより、複雑なフォーマットのタイムアウトのリスクを回避できます。

HTTP 経由で呼び出す場合、tool_streamparameters オブジェクト内に配置します。

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

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

有効値:

  • true:機能を有効にします。

  • false:機能を無効にします。

Java SDK はサポートされていません。HTTP 経由で呼び出す場合、enable_code_interpreterparameters オブジェクト内に配置します。

clear_thinking boolean (任意) デフォルト値は `false` です。

マルチターン対話において、モデルのコンテキスト入力として前のターンの reasoning_content (思考プロセス) を使用するかどうかを制御します。これは、GLM シリーズモデル glm-5.2、glm-5.1、glm-5、および glm-4.7 のみでサポートされています。

  • true:機能を有効にします。これにより、前のターンの reasoning_content が無視され、表示可能なテキスト、ツール呼び出し、および結果のみがコンテキスト入力として使用されます。これにより、コンテキストの長さとコストを削減できます。

  • false (デフォルト):機能を無効にします。これにより、前のターンの reasoning_content が保持され、コンテキストとともにモデルに提供されます。保存された思考を有効にしたい場合は、履歴の reasoning_content を完全、無修正、元の順序でメッセージに渡す必要があります。欠落、トリミング、書き換え、または並べ替えは、パフォーマンスを低下させるか、機能が有効にならない原因となります。

repetition_penalty float (任意)

モデル生成中の連続するシーケンスの繰り返しに対するペナルティ。`repetition_penalty` の値が高いほど、モデルの出力における繰り返しを減らすことができます。値 1.0 はペナルティなしを示します。値は 0 より大きい必要があります。

Java SDK では、このパラメーターは repetitionPenalty です。HTTP 経由で呼び出す場合、repetition_penaltyparameters オブジェクト内に配置します。
qwen-vl-plus_2025-01-25 モデルをテキスト抽出に使用する場合、`repetition_penalty` を 1.0 に設定することを推奨します。
QVQ モデルのデフォルトの `repetition_penalty` 値を変更することは推奨しません。

presence_penalty float (任意)

モデルがテキストを生成する際のコンテンツの繰り返しを制御します。

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

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

デフォルトの presence_penalty 値

Qwen3.7 (ノンシンキングモード)、Qwen3.6 (ノンシンキングモード)、Qwen3.5-Omni、Qwen3.5 (ノンシンキングモード)、qwen3-max-preview (思考モード)、Qwen3 (ノンシンキングモード)、Qwen3-Instruct シリーズ/1.7b/4b (思考モード)、QVQ シリーズ、qwen-max、qwen2.5-vl シリーズ、qwen-vl-max シリーズ、qwen-vl-plus、Qwen3-VL (ノンシンキング):1.5;

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

DeepSeek シリーズ (Alibaba Cloud 提供):deepseek-r1、deepseek-r1-0528、deepseek-r1-distill-qwen 蒸留版:1;

Kimi シリーズ (Alibaba Cloud 提供):kimi-k2.7-code、kimi-k2.6、kimi-k2.5:0.0;

Kimi シリーズ (Moonshot AI 提供):0.0;

MiniMax シリーズ (Alibaba Cloud 提供):MiniMax-M2.5、MiniMax-M2.1:0.0;

その他の DeepSeek、Kimi、GLM、および MiniMax モデルにはデフォルト値がありません。

仕組み

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

プロンプト: 次の文を中国語に翻訳してください: 「この映画は良いです。プロットも良く、演技も良く、音楽も良く、そして全体的に、映画全体がとにかく良いのです。実際、本当に良いです。プロットはとても良く、演技もとても良く、音楽もとても良いのです。」

パラメーター値 2.0:この映画は素晴らしいです。プロットは素晴らしく、演技は最高で、音楽も非常に美しいです。全体として、映画全体が信じられないほどです。実際、本当に傑出しています。ストーリーラインは非常にエキサイティングで、パフォーマンスは素晴らしく、サウンドトラックはとても感動的です。

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

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

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

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

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

  • vl_high_resolution_images: true は固定解像度戦略を使用し、max_pixels 設定を無視します。解像度を超えた場合、画像の総ピクセル数はこの制限内に収まるように縮小されます。

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

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

    • Qwen3.7 シリーズ、Qwen3.6 シリーズ、Qwen3.5 シリーズ、Qwen3-VL シリーズqwen-vl-maxqwen-vl-max-0813qwen-vl-plusqwen-vl-plus-0815、および モデルの場合、値は 16777216 です。(各 Token32*32 ピクセルに対応します。合計値は 16384*32*32 として計算されます。)

    • QVQ シリーズ、その他の Qwen2.5-VL シリーズ モデル:12845056 (1 token28*28 ピクセルに対応し、これは 16384*28*28 です)

  • vl_high_resolution_imagesfalse の場合、ピクセル制限は max_pixels によって決定されます。入力画像のピクセル数が max_pixels を超える場合、画像は max_pixels の制限内に収まるように縮小されます。各モデルのデフォルトのピクセル制限は、max_pixels のデフォルト値です。

Java SDK では、このパラメーターは vlHighResolutionImages (V2.20.8 以降が必要) です。HTTP 経由で呼び出す場合、vl_high_resolution_imagesparameters オブジェクト内に配置します。

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

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

Java SDK では、このパラメーターは vlEnableImageHwOutput です。必要な最小 Java SDK バージョンは 2.20.8 です。HTTP 経由で呼び出す場合、vl_enable_image_hw_outputparameters オブジェクト内に配置します。

max_tokens integer (任意、非推奨予定)

このパラメーターは非推奨になります。新しい統合では、max_completion_tokens を使用してください。

モデルの回答の最大長。Chain-of-Thought の内容は除外されます。つまり、モデルの回答 = モデルの出力 – Chain-of-Thought (もしあれば)。

デフォルト値と最大値は両方ともモデルの最大出力長です。

モデルの回答がこの値を超えると、生成は早期に停止し、返される finish_reasonlength になります。

Java SDK では、このパラメーターは maxTokens です。Qwen-VL モデルの場合、Java SDK では maxLength ですが、2.18.4 より後のバージョンでは `maxTokens` として設定することもサポートしていますHTTP 経由で呼び出す場合、max_tokensparameters オブジェクト内に配置します。

max_completion_tokens integer (任意)

Chain-of-Thought とモデルの回答を含む、モデルの出力の最大長。モデルの出力がこの値を超えると、生成は早期に停止し、返される finish_reasonlength になります。

デフォルト値と最大値は両方ともモデルの最大出力長です。

max_tokens との違い:max_completion_tokens は完全なモデル出力 (Chain-of-Thought + 回答) を制限しますが、max_tokens は回答部分のみを制限します。思考モデルには、max_completion_tokens を使用することを推奨します。

以下のモデルがサポートされています:

  • Qwen Max:Qwen3.7-Max およびそれ以降のモデル

  • Qwen Plus:Qwen3.5-Plus およびそれ以降のモデル

  • Qwen Flash:Qwen3.5-Flash およびそれ以降のモデル

  • Kimi:kimi-k2.5 およびそれ以降のモデル

  • GLM:glm-5 およびそれ以降のモデル

  • MiniMax:MiniMax-M2.5 およびそれ以降のモデル

  • DeepSeek:deepseek-v3、deepseek-r1、deepseek-r1-0528、deepseek-v3.1、deepseek-v3.2、deepseek-v3.2-exp、deepseek-v4-pro、deepseek-v4-flash、およびそれ以降のモデル

上記のモデルリストには、第三者から直接提供されるモデルは含まれていません。
実際の出力トークン数と指定された max_completion_tokens 値との間に最大 10 トークンの差がある場合があります。
Java SDK は現在このパラメーターをサポートしていません。HTTP 経由で呼び出す場合、max_completion_tokensparameters オブジェクト内に配置します。

seed integer (任意)

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

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

HTTP 経由で呼び出す場合、seedparameters オブジェクト内に配置します。

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

返信をストリーミングするかどうかを指定します。有効な値は次のとおりです:

  • false:モデルはすべてのコンテンツを生成してから、一度に結果を返します。

  • true:モデルはコンテンツをその場で生成して出力します。つまり、モデルは生成されるとすぐにコンテンツのチャンクを即座に出力します。

このパラメーターは Python SDK でのみサポートされています。Java SDK でストリーミング出力を実装するには、streamCall インターフェイスを呼び出します。HTTP 経由でストリーミング出力を実装するには、ヘッダーで X-DashScope-SSEenable として指定します。
Qwen3 商用版 (思考モード)、Qwen3 オープンソース版、QwQ、および QVQ はストリーミング出力のみをサポートします。

incremental_output boolean (任意) デフォルトは false です。Qwen3-Max、Qwen3-VL、Qwen3 オープンソース版QwQ、および QVQ モデルの場合、デフォルトは true です。

ストリーミング出力モードで増分出力を有効にするかどうかを指定します。このパラメーターを true に設定することを推奨します。

値:

  • false:各出力には、これまでに生成されたシーケンス全体が含まれます。最後の出力が完全な生成結果です。

    I
    I like
    I like apple
    I like apple.
  • true (推奨):出力は増分です。後続の出力には、以前に出力されたコンテンツは含まれません。完全な結果を得るには、これらのチャンクをリアルタイムで 1 つずつ読み取る必要があります。

    I
    like
    apple
    .
Java SDK では、このパラメーターは incrementalOutput です。HTTP 経由で呼び出す場合、incremental_outputparameters オブジェクト内に配置します。
QwQ モデルと思考モードの Qwen3 モデルは、このパラメーターを true に設定することのみをサポートします。Qwen3 商用版モデルのデフォルト値は false であるため、思考モードでは手動で true に設定する必要があります。
Qwen3 オープンソース版モデルは、このパラメーターを false に設定することをサポートしていません。

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

返されるコンテンツのフォーマット。有効な値は次のとおりです:

  • {"type": "text"}:テキストの返信を出力します。

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

詳細については、「構造化出力」をご参照ください。
サポートされているモデルの一覧については、「サポートされているモデル」をご参照ください。
{"type": "json_object"} を指定する場合、プロンプトでモデルに JSON を出力するように明示的に指示する必要があります (例:「JSON 形式で出力してください」)。そうしないと、エラーが発生します。
Java SDK では、このパラメーターは `responseFormat` です。HTTP 経由で呼び出す場合、response_formatparameters オブジェクト内に配置します。

プロパティ

type string (必須)

返されるコンテンツのフォーマット。有効な値は次のとおりです:

  • text:テキストの返信を出力します。

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

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

返されるデータのフォーマット。マルチターン対話を容易にするために、このパラメーターを message に設定することを推奨します。

プラットフォームは後でデフォルト値を message に統一します。
Java SDK では、このパラメーターは resultFormat です。HTTP 経由で呼び出す場合、result_formatparameters オブジェクト内に配置します。
モデルが Qwen-VL、QVQ の場合、値を text に設定しても効果はありません。
Qwen3-Max、Qwen3-VL、および Qwen3 モデルは、思考モードでは message にのみ設定できます。Qwen3 商用版モデルのデフォルト値は text であるため、message に設定する必要があります。
Java SDK を使用して Qwen3 オープンソースモデルを呼び出し、text を渡した場合、応答は message 形式で返されます。

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

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

  • true

    戻る

  • false

    返却できません。

以下のモデルがサポートされています:

  • qwen-plus シリーズのスナップショットモデル (安定版モデルを除く)

  • qwen-turbo シリーズのスナップショットモデル (安定版モデルを除く)

  • qwen3-vl-plus シリーズ (安定版モデルを含む)

  • qwen3-vl-flash シリーズ (安定版モデルを含む)

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

HTTP 経由で呼び出す場合、logprobsparameters オブジェクト内に配置します。

top_logprobs integer (任意) デフォルト値は 0 です。

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

有効値: [0, 5]

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

Java SDK では、このパラメーターは topLogprobs です。HTTP 経由で呼び出す場合、top_logprobsparameters オブジェクト内に配置します。

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

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

現在、Qwen3 (ノンシンキングモード) モデルのみがサポートされています。`tools` パラメーターが渡された場合、値は 1 に固定されます。
より大きな `n` 値を設定しても入力トークンの消費は増加しませんが、出力トークンの消費は増加します。
HTTP 経由で呼び出す場合、nparameters オブジェクト内に配置します。

stop string または array (任意)

ストップワードを指定するために使用されます。stop で指定された文字列または token_id が生成されたテキストに現れると、生成は即座に停止します。

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

stop が配列の場合、token_id と文字列の両方を要素として入力することはできません。たとえば、["Hello",104307] を指定することはできません。
HTTP 経由で呼び出す場合、stopparameters オブジェクト内に配置します。

tools array (任意)

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

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

関数呼び出しを開始するか、ツール実行結果を送信する場合、tools パラメーターを設定する必要があります。

プロパティ

type string (必須)

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

function object (必須)

プロパティ

name string (必須)

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

description string (必須)

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

parameters object (任意) デフォルト値は {} です。

ツールのパラメーターの説明。有効な JSON スキーマである必要があります。JSON スキーマの説明については、このリンクをご参照ください。parameters パラメーターが空の場合、時間クエリツールなど、ツールに入力パラメーターがないことを意味します。

ツール呼び出しの精度を向上させるために、parameters を渡すことを推奨します。
HTTP 経由で呼び出す場合、toolsparameters オブジェクト内に配置します。これは、qwen-vl シリーズモデルでは一時的にサポートされていません。

tool_choice string または object (任意) デフォルト値は auto です。

ツール選択戦略。このパラメーターを設定して、特定の種類の問題に対してツール呼び出しメソッドを強制することができます。たとえば、常に特定のツールを使用するか、すべてのツールを無効にするなどです。

  • auto

    LLM はツール戦略を自律的に選択します。

  • none

    特定のリクエストでツール呼び出しを一時的に無効にしたい場合は、tool_choice パラメーターを none に設定できます。

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

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

    思考モードのモデルは、特定のツールへの呼び出しを強制することをサポートしていません。
Java SDK では、このパラメーターは toolChoice です。HTTP 経由で呼び出す場合、tool_choiceparameters オブジェクト内に配置します。

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

並列ツール呼び出しを有効にするかどうかを指定します。

有効値:

  • true:有効

  • false:無効。

並列ツール呼び出しの詳細については、「並列ツール呼び出し」をご参照ください。

Java SDK では、このパラメーターは parallelToolCalls です。HTTP 経由で呼び出す場合、parallel_tool_callsparameters オブジェクト内に配置します。

チャット応答オブジェクト (ストリーミングおよび非ストリーミング出力フォーマットは一貫しています)

{
  "status_code": 200,
  "request_id": "902fee3b-f7f0-9a8c-96a1-6b4ea25af114",
  "code": "",
  "message": "",
  "output": {
    "text": null,
    "finish_reason": null,
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": "I am a large-scale language model developed by Alibaba Cloud, and my name is Qwen."
        }
      }
    ]
  },
  "usage": {
    "input_tokens": 22,
    "output_tokens": 17,
    "total_tokens": 39
  }
}

status_code string

リクエストの状態コード。値 200 はリクエストが成功したことを示します。それ以外の場合、リクエストは失敗しました。

Java SDK はこのパラメーターを返しません。呼び出しが失敗した場合、例外がスローされます。例外メッセージには status_codemessage の内容が含まれます。

request_id string

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

Java SDK では、パラメーターは requestId.

code string

エラーコード。呼び出しが成功した場合、このフィールドは空です。

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

output object

呼び出し結果に関する情報。

プロパティ

text string

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

finish_reason string

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

これは次の 4 つの状況で発生する可能性があります:

  • 生成中は null

  • モデルの出力が自然に終了するか、入力パラメーターの停止条件をトリガーした場合に停止

  • 生成された出力が長すぎるため、プロセスが終了しました。

  • ツール呼び出しが発生した場合、値は tool_calls です。

choices array

モデルの出力情報。`result_format` が `message` の場合、`choices` パラメーターが返されます。

プロパティ

finish_reason string

値は次のいずれかになります:

  • 生成中は null

  • モデルの出力が自然に終了するか、入力パラメーターの停止条件をトリガーした場合に停止

  • 出力が長すぎることを意味する `length` の理由で生成が終了します。

  • `tool_calls` の理由は、ツール呼び出しが発生したことを示します。

message object

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

プロパティ

role string

出力メッセージのロール。`assistant` である必要があります。

content string または array

出力メッセージのコンテンツ。qwen-vl または qwen-audio シリーズモデルを使用する場合は array、その他の場合は string です。

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

プロパティ

text string

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

image_hw array

Qwen-VL シリーズモデルで `vl_enable_image_hw_output` パラメーターが有効になっている場合、2 つのケースがあります:

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

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

reasoning_content string

モデルのディープシンキングコンテンツ。

tool_calls array

モデルがツールを呼び出す必要がある場合、`tool_calls` パラメーターが生成されます。

プロパティ

function object

呼び出されているツールの名前とその入力パラメーター。

プロパティ

name string

呼び出されているツールの名前。

arguments string

ツールに入力するパラメーター (JSON 文字列として)。

LLM の応答のランダム性により、出力される 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

入力コンテンツがトークンに変換された後の長さの詳細。

プロパティ

text_tokens integer

入力テキストがトークンに変換された後の長さ。

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

思考プロセスがトークンに変換された後の長さ。

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

エラーコード

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