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

Alibaba Cloud Model Studio:概要

最終更新日:Jul 15, 2026

テキスト生成モデルは、自然言語プロンプトからテキストを生成し、チャットボット、コンテンツ作成、ドキュメント要約、コード生成などのアプリケーションに利用されます。

入力は、単一のキーワードから、コンテキストを含む複雑な複数ステップのプロンプトまで多岐にわたります。一般的なユースケースは次のとおりです。

  • コンテンツ作成:ニュース記事、製品説明、ショート動画のスクリプトを生成します。

  • カスタマーサービス:24時間365日対応の自動チャットボットを構築し、よくある質問に回答します。

  • テキスト翻訳:複数の言語間でテキストを翻訳します。

  • 要約:長い記事、レポート、メールを要約します。

  • 法的文書の起草:契約書のテンプレートや法律意見書を作成します。

基本概念

テキスト生成モデルへの入力はプロンプトであり、それぞれがロールとコンテンツを含む1つ以上のメッセージオブジェクトで構成されます。

  • システムメッセージ:モデルのペルソナ、動作ガイドライン、またはタスク固有の命令を設定します。デフォルトは「あなたは役に立つアシスタントです。」です。

  • ユーザーメッセージ:ユーザーの質問、指示、またはモデルへの入力です。

  • アシスタントメッセージ:モデルの応答です。マルチターン対話では、コンテキストを維持するために過去のアシスタントメッセージを渡します。

モデルを呼び出すには、これらのメッセージオブジェクトの配列を messages という名前で構築します。一般的なリクエストは、動作ガイドラインを定義する system メッセージと、ユーザーの入力を含む user メッセージで構成されます。

system メッセージは任意ですが、推奨されます。モデルのロールと動作上の制約を定義することで、より一貫性があり予測可能な出力が得られます。
[
    {"role": "system", "content": "あなたは、ユーザーのさまざまなタスクや質問をサポートする準備ができている、正確で効率的、かつ洞察に満ちた応答を提供する、役に立つアシスタントです。"},
    {"role": "user", "content": "あなたは誰ですか?"}
]

応答には、assistant メッセージにモデルの返信が含まれます。

{
    "role": "assistant",
    "content": "こんにちは!私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答、テキスト作成、論理的推論、コーディングなどのタスクをお手伝いできます。複数の言語を理解し生成でき、マルチターン対話や複雑な指示にも対応できます。何かお手伝いできることがあれば、何でもお申し付けください!"
}

クイックスタート

前提条件:API キーを取得し、環境変数として設定します。SDK を使用する場合は、OpenAI または DashScope SDK もインストールします。

OpenAI 互換 Chat Completions API

Python

import os
from openai import OpenAI

try:
    client = OpenAI(
        # API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        # 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    )

    completion = client.chat.completions.create(
        model="qwen3.7-max",
        messages=[
            {"role": "system", "content": "あなたは役に立つアシスタントです。"},
            {"role": "user", "content": "あなたは誰ですか?"},
        ],
    )
    print(completion.choices[0].message.content)
    # 完全な応答を表示するには、次の行のコメントを解除してください。
    # print(completion.model_dump_json())
except Exception as e:
    print(f"エラーメッセージ: {e}")
    print("詳細については、ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code")

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Java

// OpenAI Java SDK v3.5.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) {
        try {
            OpenAIClient client = OpenAIOkHttpClient.builder()
                    // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
                    // 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:.apiKey("sk-xxx")
                    .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                    // アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
                    .baseUrl("https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1")
                    .build();

            // ChatCompletion パラメーターを作成します。
            ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
                    .model("qwen3.7-max")
                    .addSystemMessage("あなたは役に立つアシスタントです。")
                    .addUserMessage("あなたは誰ですか?")
                    .build();

            // リクエストを送信し、応答を受信します。
            ChatCompletion chatCompletion = client.chat().completions().create(params);
            String content = chatCompletion.choices().get(0).message().content().orElse("有効なコンテンツが返されませんでした");
            System.out.println(content);
            
        } catch (Exception e) {
            System.err.println("エラーメッセージ: " + e.getMessage());
            System.out.println("詳細については、ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code");
        }
    }
}

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Node.js

// このコードは Node.js v18+ が必要で、ES モジュール環境で実行する必要があります。
import OpenAI from "openai";

const openai = new OpenAI(
    {
        // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        // 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:apiKey: "sk-xxx",
        apiKey: process.env.DASHSCOPE_API_KEY,
        // アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
        
    }
);
const completion = await openai.chat.completions.create({
    model: "qwen3.7-max",
    messages: [
        { role: "system", content: "あなたは役に立つアシスタントです。" },
        { role: "user", content: "あなたは誰ですか?" }
    ],
});
console.log(completion.choices[0].message.content);
// 完全な応答を表示するには、次の行のコメントを解除してください。
// console.log(JSON.stringify(completion, null, 4));

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Go

// OpenAI Go SDK v2.4.0 以降の使用を推奨します。
package main

import (
	"context"
	// 完全な応答を表示するには、以下のインポートと末尾の関連コードのコメントを解除してください。
	// "encoding/json"
	"fmt"
	"os"

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

func main() {
	// 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:apiKey := "sk-xxx"
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	client := openai.NewClient(
		option.WithAPIKey(apiKey),
		// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
		// アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
		option.WithBaseURL("https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"),
	)
	chatCompletion, err := client.Chat.Completions.New(
		context.TODO(), openai.ChatCompletionNewParams{
			Messages: []openai.ChatCompletionMessageParamUnion{
				openai.SystemMessage("あなたは役に立つアシスタントです。"),
				openai.UserMessage("あなたは誰ですか?"),
			},
			Model: "qwen3.7-max",
		},
	)

	if err != nil {
		fmt.Fprintf(os.Stderr, "リクエストが失敗しました: %v\n", err)
		// 詳細については、ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code
		os.Exit(1)
	}

	if len(chatCompletion.Choices) > 0 {
		fmt.Println(chatCompletion.Choices[0].Message.Content)
	}
	// 完全な応答を表示するには、次の行のコメントを解除してください。
	// jsonData, _ := json.MarshalIndent(chatCompletion, "", "  ")
	// fmt.Println(string(jsonData))

}

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

C# (HTTP)

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

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

    static async Task Main(string[] args)
    {
        // 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:string? apiKey = "sk-xxx";
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
        // アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions";
        string jsonContent = @"{
            ""model"": ""qwen3.7-max"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""あなたは役に立つアシスタントです。""
                },
                {
                    ""role"": ""user"", 
                    ""content"": ""あなたは誰ですか?""
                }
            ]
        }";

        // リクエストを送信し、応答を受信します。
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);
        
        // 完全な応答を表示するには、次の行のコメントを解除してください。
        // Console.WriteLine(result);

        // JSON を解析してコンテンツを抽出し、出力します。
        using JsonDocument doc = JsonDocument.Parse(result);
        JsonElement root = doc.RootElement;
        
        if (root.TryGetProperty("choices", out JsonElement choices) && 
            choices.GetArrayLength() > 0)
        {
            JsonElement firstChoice = choices[0];
            if (firstChoice.TryGetProperty("message", out JsonElement message) &&
                message.TryGetProperty("content", out JsonElement content))
            {
                Console.WriteLine(content.GetString());
            }
        }
    }

    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
            {   
                // 詳細については、ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code
                return $"リクエストが失敗しました: {response.StatusCode}";
            }
        }
    }
}

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

PHP (HTTP)

<?php
// リクエスト URL を設定します。
// アジアパシフィック SE 1 (シンガポール) リージョンのエンドポイントです。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
$url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions';
// API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
// 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio API キーに置き換えてください:$apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// リクエストヘッダーを設定します。
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// リクエストボディを設定します。
$data = [
    "model" => "qwen3.7-max",
    "messages" => [
        [
            "role" => "system",
            "content" => "あなたは役に立つアシスタントです。"
        ],
        [
            "role" => "user",
            "content" => "あなたは誰ですか?"
        ]
    ]
];
// cURL セッションを初期化します。
$ch = curl_init();
// cURL オプションを設定します。
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// cURL セッションを実行します。
$response = curl_exec($ch);
// エラーを確認します。
// 詳細については、ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code
if (curl_errno($ch)) {
    echo 'Curl エラー: ' . curl_error($ch);
}
// cURL リソースを閉じます。
curl_close($ch);
// 応答コンテンツを解析して出力します。
$dataObject = json_decode($response);
$content = $dataObject->choices[0]->message->content;
echo $content;
// 完全な応答を表示するには、次の行のコメントを解除してください。
//echo $response;
?>

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

curl

「base_url」と API キーはリージョン固有です。エンドポイント URL については「OpenAI 互換 - チャット」、キーの取得については「API キーの取得」をご参照ください。

# お使いのリージョンに合わせてエンドポイント URL を変更してください。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-max",
    "messages": [
        {
            "role": "system",
            "content": "あなたは役に立つアシスタントです。"
        },
        {
            "role": "user", 
            "content": "あなたは誰ですか?"
        }
    ]
}'

応答

{
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 26,
        "completion_tokens": 66,
        "total_tokens": 92
    },
    "created": 1726127645,
    "system_fingerprint": null,
    "model": "qwen3.7-max",
    "id": "chatcmpl-81951b98-28b8-9659-ab07-xxxxxx"
}

OpenAI 互換 Responses API

Responses API は Chat Completions API の後継です。使用方法、コード例、移行ガイドについては、「OpenAI 互換 Responses」をご参照ください。

Python

import os
from openai import OpenAI

try:
    client = OpenAI(
        # API キーはリージョンによって異なります。API キーの取得先:https://www.alibabacloud.com/help/model-studio/get-api-key
        # 環境変数を設定しない場合は、API キーを直接指定してください:api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # ベース URL はリージョンによって異なります。ご利用のサービスリージョンに合わせて更新してください。
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    )

    response = client.responses.create(
        model="qwen3.7-max", 
        input="あなたができることを簡単に紹介してください。"
    )

    print(response)
except Exception as e:
    print(f"エラーが発生しました: {e}")
    print("詳細については、エラーコードのドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code")

応答

主要な応答フィールド:

  • id:応答 ID。

  • outputreasoningmessage オブジェクトを含むリスト。

    reasoning は、思考が有効な場合にのみ表示されます (Qwen3.6 シリーズではデフォルトで有効)。
  • usage:トークン使用量。

メッセージ本文のサンプルです。完全な応答については、curl セクションをご参照ください。

こんにちは!私は2026年現在の知識を持つ AI アシスタントです。私ができることの概要は以下の通りです。

*   **コンテンツ作成**:メール、記事、物語、スクリプトなどを執筆します。
*   **コーディング & 技術**:さまざまなプログラミング言語でコードを生成、デバッグ、説明します。
*   **分析 & 要約**:ドキュメントを処理し、データを解釈し、主要な洞察を抽出します。
*   **問題解決**:数学、論理、推論、戦略計画を支援します。
*   **学習 & 翻訳**:複雑なトピックを簡単に説明したり、複数の言語間で翻訳したりします。

何でもお気軽にご質問いただくか、タスクを与えて始めてみてください!

Node.js

// Node.js v18+ が必要です。このコードは ES モジュール環境で実行する必要があります。
import OpenAI from "openai";

const openai = new OpenAI({
    // API キーはリージョンによって異なります。API キーの取得先:https://www.alibabacloud.com/help/model-studio/get-api-key
    // 環境変数を設定しない場合は、API キーを直接指定してください:apiKey: "sk-xxx",
    apiKey: process.env.DASHSCOPE_API_KEY,
    // ベース URL はリージョンによって異なります。ご利用のサービスリージョンに合わせて更新してください。
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    try {
        const response = await openai.responses.create({
            model: "qwen3.7-max",
            input: "あなたができることを簡単に紹介してください。"
        });

        // モデルの応答を取得
        console.log(response);
    } catch (error) {
        console.error("エラーが発生しました:", error);
    }
}

main();

応答

主要な応答フィールド:

  • id:応答 ID。

  • outputreasoningmessage オブジェクトを含むリスト。

    reasoning は、思考が有効な場合にのみ表示されます (Qwen3.6 シリーズではデフォルトで有効)。
  • usage:トークン使用量。

メッセージ本文のサンプルです。完全な応答については、curl セクションをご参照ください。

こんにちは!私は2026年現在の知識を持つ AI アシスタントです。私ができることの概要は以下の通りです。

*   **コンテンツ作成**:メール、記事、物語、スクリプトなどを執筆します。
*   **コーディング & 技術**:さまざまなプログラミング言語でコードを生成、デバッグ、説明します。
*   **分析 & 要約**:ドキュメントを処理し、データを解釈し、主要な洞察を抽出します。
*   **問題解決**:数学、論理、推論、戦略計画を支援します。
*   **学習 & 翻訳**:複雑なトピックを簡単に説明したり、複数の言語間で翻訳したりします。

何でもお気軽にご質問いただくか、タスクを与えて始めてみてください!

curl

# エンドポイント URL はリージョンによって異なります。ご利用のサービスリージョンに合わせて更新してください。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-max",
    "input": "あなたができることを簡単に紹介してください。",
    "enable_thinking": true
}'

応答

{
    "created_at": 1772249518,
    "id": "7ad48c6b-3cc4-904f-9284-5f419c6c5xxx",
    "model": "qwen3.7-max",
    "object": "response",
    "output": [
        {
            "id": "msg_94805179-2801-45da-ac1c-a87e8ea20xxx",
            "summary": [
                {
                    "text": "ユーザーは私の能力について簡単な紹介を求めています。まず、システムメッセージに記載されている機能を思い出し、要点を簡潔に網羅するようにします。\n\nまず、強化された言語基盤とアーキテクチャの効率性について言及すべきです。次に、アップグレードされた論理的推論と数学的能力。チャートや数式を含む視覚分析は重要なポイントです。自律的なエージェント計画とコード生成も重要です。その他の機能には、より良いインタラクションのための人間とのアライメント最適化、最大256Kトークンまでの長文コンテキスト処理、OCR付きの多言語サポートなどがあります。\n\nユーザーは「簡単な」概要を求めているので、簡潔にする必要があります。いくつかのポイントをまとめ、各能力を1〜2文で要約し、可能な限り専門用語を避けます。適切な構造については、システムメッセージの例を確認します。\n\n実用的にするために、これらの機能が長いドキュメントの処理、数学の問題解決、画像の分析、コードの記述などの実際のタスクにどのように適用されるかを強調します。\n\n応答は、挨拶で始まり、特定のタスクでの手伝いを申し出て終わる、短い説明付きの主要な能力のリストとして構成します。\n\n私の紹介では、要求されたモデルであるqwen3.7-maxとして自己紹介します。\n\n関連性がない限り、知識のカットオフについては言及しません。現在の日付が2026年で、私の知識も2026年現在のものであるため、これは問題ありません。\n\n私のドラフトは、各能力を強調した、簡潔で、フレンドリーで、魅力的な応答になります。\n",
                    "type": "summary_text"
                }
            ],
            "type": "reasoning"
        },
        {
            "content": [
                {
                    "annotations": [],
                    "text": "私は**Qwen3.6-plus**です。幅広いタスクを支援するために設計された大規模言語モデルです。以下が私にできることです:  \n\n- **テキストの理解と生成**:複雑な指示、創造的な文章、複数ステップのタスクを、より高い精度で処理します。  \n- **問題解決**:高度な数学、論理パズル、科学的推論に、ステップバイステップの明快さで取り組みます。  \n- **視覚分析**:チャート、図、数式を解釈し、画像からテキストを抽出することもできます(OCR)。  \n- **計画と実行**:目標を実行可能なステップに分解し、コードを実行したり、ツールと自律的に対話したりします。  \n- **コードとデバッグ**:複数のプログラミング言語でコードを記述、説明、または修正します。  \n- **長文コンテキストの習得**:ドキュメント、書籍、ビデオを最大**256Kトークン**まで、重要な詳細を失うことなく処理します。  \n- **多言語サポート**:低リソース言語を含む**100以上の言語**で流暢にコミュニケーションします。  \n\n何か特定のことでお手伝いが必要ですか?お気軽にお尋ねください!",
                    "type": "output_text"
                }
            ],
            "id": "msg_35be06c6-ca4d-4f2b-9677-7897e488dxxx",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 54,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 662,
        "output_tokens_details": {
            "reasoning_tokens": 447
        },
        "total_tokens": 716,
        "x_details": [
            {
                "input_tokens": 54,
                "output_tokens": 662,
                "output_tokens_details": {
                    "reasoning_tokens": 447
                },
                "total_tokens": 716,
                "x_billing_type": "response_api"
            }
        ]
    }
}

DashScope

重要

qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル DashScope API が必要です。これらのモデルで以下の例を実行すると、url error が返されます。正しいマルチモーダル API 呼び出しについては、「画像および動画データ処理」をご参照ください。

Python

import json
import os
from dashscope import Generation
import dashscope

# 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"

messages = [
    {"role": "system", "content": "あなたは役に立つアシスタントです。"},
    {"role": "user", "content": "あなたは誰ですか?"},
]
response = Generation.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"),
    # qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
    model="qwen-plus",
    messages=messages,
    result_format="message",
)

if response.status_code == 200:
    print(response.output.choices[0].message.content)
    # 完全な応答を表示するには、次の行のコメントを解除してください。
    # print(json.dumps(response, default=lambda o: o.__dict__, indent=4))
else:
    print(f"HTTP ステータスコード: {response.status_code}")
    print(f"エラーコード: {response.code}")
    print(f"エラーメッセージ: {response.message}")
    print("詳細については、https://www.alibabacloud.com/help/model-studio/error-code をご参照ください")

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Java

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.protocol.Protocol;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // 次の 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("あなたは役に立つアシスタントです。")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("あなたは誰ですか?")
                .build();
        GenerationParam param = GenerationParam.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"))
                // qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
                .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(result.getOutput().getChoices().get(0).getMessage().getContent());
            // 完全な応答を表示するには、次の行のコメントを解除してください。
            // System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("エラーメッセージ: "+e.getMessage());
            System.out.println("詳細については、https://www.alibabacloud.com/help/model-studio/error-code をご参照ください");
        }
    }
}

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Node.js (HTTP)

// Node.js v18+ が必要です
// 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:const apiKey = "sk-xxx";
const apiKey = process.env.DASHSCOPE_API_KEY;

const data = {
    // qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
    model: "qwen-plus",
    input: {
        messages: [
            {
                role: "system",
                content: "あなたは役に立つアシスタントです。"
            },
            {
                role: "user",
                content: "あなたは誰ですか?"
            }
        ]
    },
    parameters: {
        result_format: "message"
    }
};

async function callApi() {
    try {
            // 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
            const response = await 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)
        });

        const result = await response.json();
        console.log(result.output.choices[0].message.content);
        // 完全な応答を表示するには、次の行のコメントを解除してください。
        // console.log(JSON.stringify(result));
    } catch (error) {
        // 詳細については、https://www.alibabacloud.com/help/model-studio/error-code をご参照ください
        console.error('リクエストが失敗しました:', error.message);
    }
}

callApi();

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

Go (HTTP)

package main

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

func main() {
	requestBody := map[string]interface{}{
		// qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
		"model": "qwen-plus",
		"input": map[string]interface{}{
			"messages": []map[string]string{
				{
					"role":    "system",
					"content": "あなたは役に立つアシスタントです。",
				},
				{
					"role":    "user",
					"content": "あなたは誰ですか?",
				},
			},
		},
		"parameters": map[string]string{
			"result_format": "message",
		},
	}

	// JSON にシリアル化します。
	jsonData, _ := json.Marshal(requestBody)

	// HTTP クライアントとリクエストを作成します。
	client := &http.Client{}
	// 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
	req, _ := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation", bytes.NewBuffer(jsonData))

	// リクエストヘッダーを設定します。
	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, _ := io.ReadAll(resp.Body)

	// JSON を解析し、コンテンツを出力します。
	var result map[string]interface{}
	json.Unmarshal(bodyText, &result)
	content := result["output"].(map[string]interface{})["choices"].([]interface{})[0].(map[string]interface{})["message"].(map[string]interface{})["content"].(string)
	fmt.Println(content)

	// 完全な応答を表示するには、次の行のコメントを解除してください。
	// fmt.Printf("%s\n", bodyText)
}

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

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)
    {
        // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
        // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください:string? apiKey = "sk-xxx";
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
        // リクエスト URL とコンテンツを設定します。
        // 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
        string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
        // qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""input"": {
                ""messages"": [
                    {
                        ""role"": ""system"",
                        ""content"": ""あなたは役に立つアシスタントです。""
                    },
                    {
                        ""role"": ""user"",
                        ""content"": ""あなたは誰ですか?""
                    }
                ]
            },
            ""parameters"": {
                ""result_format"": ""message""
            }
        }";

        // リクエストを送信し、応答を取得します。
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);
        var jsonResult = System.Text.Json.JsonDocument.Parse(result);
        var content = jsonResult.RootElement.GetProperty("output").GetProperty("choices")[0].GetProperty("message").GetProperty("content").GetString();
        Console.WriteLine(content);
        // 完全な応答を表示するには、次の行のコメントを解除してください。
        // 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 $"リクエストが失敗しました: {response.StatusCode}";
            }
        }
    }
}

応答

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 92,
        "output_tokens": 66,
        "input_tokens": 26
    },
    "request_id": "09dceb20-ae2e-999b-85f9-xxxxxx"
}

PHP (HTTP)

<?php
// 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。URL はリージョンによって異なります。
$url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation";
// API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // qwen3.7-max、qwen3.7-max-2026-05-20、および qwen3.6-max-preview はテキスト API のみをサポートします。qwen3.7-max-2026-06-08 はマルチモーダル API をサポートします。Qwen3.6 および Qwen3.5 シリーズはマルチモーダル API が必要です。モデルを直接置き換えるとエラーが発生します。
    "model" => "qwen-plus",
    "input" => [
        "messages" => [
            [
                "role" => "system",
                "content" => "あなたは役に立つアシスタントです。"
            ],
            [
                "role" => "user",
                "content" => "あなたは誰ですか?"
            ]
        ]
    ],
    "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_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);

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

if ($httpCode == 200) {
    $jsonResult = json_decode($response, true);
    $content = $jsonResult['output']['choices'][0]['message']['content'];
    echo $content;
    // 完全な応答を表示するには、次の行のコメントを解除してください。
    // echo "モデルの応答: " . $response;
} else {
    echo "リクエストが失敗しました: " . $httpCode . " - " . $response;
}

curl_close($ch);
?>

応答

私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!

curl

ベース URL と API キーはリージョンによって異なります。詳細については、「DashScope」および「API キーの取得」をご参照ください。

# 次の URL はシンガポールリージョン用です。{WorkspaceId} をお使いのワークスペース ID に置き換えてください。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": "system",
                "content": "あなたは役に立つアシスタントです。"
            },
            {
                "role": "user",
                "content": "あなたは誰ですか?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

応答

{
    "output": {
        "choices": [
            {
                "finish_reason": "stop",
                "message": {
                    "role": "assistant",
                    "content": "私は Qwen です。Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問への回答や、物語、公式文書、メール、スクリプトなどのコンテンツ作成をお手伝いできます。また、論理的推論、プログラミング、意見の共有、ゲームなども可能です。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!"
                }
            }
        ]
    },
    "usage": {
        "total_tokens": 92,
        "output_tokens": 66,
        "input_tokens": 26
    },
    "request_id": "09dceb20-ae2e-999b-85f9-xxxxxx"
}

イメージとビデオのデータ処理

マルチモーダルモデルは、視覚質問応答やイベント検出などのタスクのために、テキスト以外のデータ (イメージ、ビデオ) を処理します。テキストのみのモデルとは、次の 2 つの点で異なります:

  • ユーザーメッセージの構築:マルチモーダルユーザーメッセージには、テキストと、イメージやオーディオなどのテキスト以外のデータが含まれます。

  • DashScope SDK インターフェイス: DashScope Python SDK では MultiModalConversation インターフェイスを、DashScope Java SDK では MultiModalConversation クラスを使用します。

イメージファイルとビデオファイルの制限事項については、「イメージとビデオの理解」をご参照ください。

OpenAI 互換のチャット補完

Python

from openai import OpenAI
import os

client = OpenAI(
    # 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"),
    # これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
                },
            },
            {"type": "text", "text": "What products are shown in the image?"},
        ],
    }
]
completion = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=messages,
)
print(completion.choices[0].message.content)

Node.js

import OpenAI from "openai";

const openai = new OpenAI(
    {
        // API キーはリージョンによって異なります。API キーを取得するには、https://www.alibabacloud.com/help/model-studio/get-api-key をご参照ください。
        // 環境変数が設定されていない場合は、Model Studio API キーを直接指定します。例:apiKey: "sk-xxx",
        apiKey: process.env.DASHSCOPE_API_KEY,
        // これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
        baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
    }
);

let messages = [
    {
        role: "user",
        content: [
            { type: "image_url", image_url: { "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png" } },
            { type: "text", text: "What products are shown in the image?" },
        ]
    }]
async function main() {
    let response = await openai.chat.completions.create({
        model: "qwen3.6-plus",
        messages: messages
    });
    console.log(response.choices[0].message.content);
}

main()

curl

`base_url` と API キーはリージョン固有です。エンドポイント URL については 「OpenAI 互換 - チャット」を、キーの取得については 「API キーの取得」をご参照ください。

# これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen3.6-plus",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
          }
        },
        {
          "type": "text",
          "text": "What products are shown in the image?"
        }
      ]
    }
  ]
}'

DashScope

Python

import os
from dashscope import MultiModalConversation
import dashscope
# これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

messages = [
    {
        "role": "user",
        "content": [
            {
                "image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
            },
            {"text": "What products are shown in the image?"},
        ],
    }
]
response = 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.6-plus',  # これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを変更できます。
    messages=messages
)

print(response.output.choices[0].message.content[0]['text'])

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

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 {
        // これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }

    private static final String modelName = "qwen3.6-plus";  // これを別のマルチモーダルモデルに置き換え、それに応じてメッセージを変更できます。

    public static void MultiRoundConversationCall() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"),
                        Collections.singletonMap("text", "What products are shown in the image?"))).build();
        List<MultiModalMessage> messages = new ArrayList<>();
        messages.add(userMessage);
        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(modelName)
                .messages(messages)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }

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

curl

ベース URL と API キーはリージョンによって異なります。詳細については、「DashScope」および「API キーの取得」をご参照ください。

# これはシンガポールリージョンのエンドポイントです。{WorkspaceId} を実際のワークスペース ID に置き換えてください。エンドポイントはリージョンによって異なります。
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": "qwen3.6-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"},
                    {"text": "What products are shown in the image?"}
                ]
            }
        ]
    }
}'

非同期呼び出し

非同期呼び出しは、同時実行数の多いワークロードのスループットを向上させます。

OpenAI 互換のチャット補完 API

Python

import os
import asyncio
from openai import AsyncOpenAI
import platform

# 非同期クライアントインスタンスを作成します。
client = AsyncOpenAI(
    # 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"),
    # これはシンガポールリージョンの URL です。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)

# 非同期タスクを定義します。
async def task(question):
    print(f"Sending question: {question}")
    response = await client.chat.completions.create(
        messages=[
            {"role": "user", "content": question}
        ],
        model="qwen-plus",  # モデルのリストについては、https://www.alibabacloud.com/help/model-studio/getting-started/models をご参照ください。
    )
    print(f"Model response: {response.choices[0].message.content}")

# メインの非同期関数。
async def main():
    questions = ["Who are you?", "What can you do?", "What's the weather like?"]
    tasks = [task(q) for q in questions]
    await asyncio.gather(*tasks)

if __name__ == '__main__':
    # イベントループポリシーを設定します。
    if platform.system() == 'Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    # メインのコルーチンを実行します。
    asyncio.run(main(), debug=False)
    

Java

import com.openai.client.OpenAIClientAsync;
import com.openai.client.okhttp.OpenAIOkHttpClientAsync;
import com.openai.models.chat.completions.ChatCompletionCreateParams;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;

public class Main {
    public static void main(String[] args) {
        // DashScope 互換のエンドポイントに接続するための OpenAI クライアントを作成します。
        OpenAIClientAsync client = OpenAIOkHttpClientAsync.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"))
                // これはシンガポールリージョンの URL です。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。
                .baseUrl("https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1")
                .build();

        // 質問のリストを定義します。
        List<String> questions = Arrays.asList("Who are you?", "What can you do?", "What's the weather like?");

        // 非同期タスクのリストを作成します。
        CompletableFuture<?>[] futures = questions.stream()
                .map(question -> CompletableFuture.supplyAsync(() -> {
                    System.out.println("Sending question: " + question);
                    // ChatCompletion パラメーターを作成します。
                    ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
                            .model("qwen-plus")  // モデルを指定します。
                            .addSystemMessage("You are a helpful assistant.")
                            .addUserMessage(question)
                            .build();

                    // 非同期リクエストを送信し、レスポンスを処理します。
                    return client.chat().completions().create(params)
                        .thenAccept(chatCompletion -> {
                            String content = chatCompletion.choices().get(0).message().content().orElse("No content in response");
                            System.out.println("Model response: " + content);
                        })
                        .exceptionally(e -> {
                            System.err.println("Error: " + e.getMessage());
                            System.out.println("ドキュメントをご参照ください: https://www.alibabacloud.com/help/model-studio/error-code");
                            return null;
                        });
                }).thenCompose(future -> future))
                .toArray(CompletableFuture[]::new);

        // すべての非同期操作が完了するのを待ちます。
        CompletableFuture.allOf(futures).join();
    }
}

DashScope

DashScope SDK を使用した非同期のテキスト生成は、Python でのみサポートされています。

# DashScope Python SDK v1.19.0 以降が必要です。
import asyncio
import platform
from dashscope.aigc.generation import AioGeneration
import os
import dashscope
# これはシンガポールリージョンの URL です。{WorkspaceId} をご利用のワークスペース ID に置き換えてください。
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

# 非同期タスクを定義します。
async def task(question):
    print(f"Sending question: {question}")
    response = await AioGeneration.call(
        # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えます: api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        model="qwen-plus",  # モデルのリストについては、https://www.alibabacloud.com/help/model-studio/models をご参照ください。
        messages=[{"role": "system", "content": "You are a helpful assistant."},
                  {"role": "user", "content": question}],
        result_format="message",
    )
    print(f"Model response: {response.output.choices[0].message.content}")

# メインの非同期関数。
async def main():
    questions = ["Who are you?", "What can you do?", "What's the weather like?"]
    tasks = [task(q) for q in questions]
    await asyncio.gather(*tasks)

if __name__ == '__main__':
    # イベントループポリシーを設定します。
    if platform.system() == 'Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    # メインのコルーチンを実行します。
    asyncio.run(main(), debug=False)

レスポンスの例

呼び出しは非同期であるため、レスポンスの順序はこの例と異なる場合があります。
質問を送信中: Who are you?
質問を送信中: What can you do?
質問を送信中: What's the weather like?
モデルのレスポンス: こんにちは!私は Qwen、Alibaba Group の Tongyi Lab によって開発された大規模言語モデルです。質問に答えたり、物語、公式ドキュメント、メール、スクリプトなどのコンテンツを作成したりするお手伝いができます。また、論理的推論、プログラミング、意見の共有、ゲームなどもできます。ご質問やお手伝いが必要なことがあれば、お気軽にお尋ねください!
モデルのレスポンス: こんにちは!現在、リアルタイムの気象情報にアクセスすることはできません。都市や地域を教えていただければ、一般的な天候に関するアドバイスや情報を提供できるよう最善を尽くします。または、天気アプリを使用してリアルタイムの気象状況を確認することもできます。
モデルのレスポンス: 私には多くのスキルがあります。例えば:

1. 質問への回答: 学術的な質問、一般的な知識、専門的なトピックなど、どのような質問でも答えを見つけるお手伝いをします。
2. テキストの作成: 物語、公式ドキュメント、メール、スクリプトなど、さまざまな種類のテキストを作成できます。
3. 論理的推論: 数学の問題やなぞなぞなど、論理的推論の問題を解決するお手伝いができます。
4. プログラミング: コードの作成、デバッグ、最適化など、プログラミングの支援を提供できます。
5. 多言語サポート: 中国語、英語、フランス語、スペイン語など、複数の言語をサポートしています。
6. 意見の表明: 意思決定に役立ついくつかの視点や提案を提供できます。
7. ゲーム: なぞなぞやしりとりなど、テキストベースのゲームを一緒にプレイできます。

特定のニーズや質問があれば、お気軽にお知らせください。最善を尽くしてお手伝いします!

本番運用

高品質なコンテキストの構築

大量の生データをモデルに入力すると、コストが増加し、コンテキストウィンドウの制限によりパフォーマンスが低下する可能性があります。コンテキストエンジニアリング (正確な知識を動的に読み込むこと) は、生成の品質と効率を向上させます。主な手法は次のとおりです:

  • プロンプトエンジニアリング:テキストプロンプトを設計・最適化し、モデルを望ましい出力に導きます。詳細については、「テキスト生成のプロンプトガイド」ページをご参照ください。

  • 検索拡張生成 (RAG):モデルが製品ドキュメントや技術マニュアルなどの外部ナレッジベースから質問に回答できるようにします。

  • ツール呼び出し:モデルに代わってリアルタイム情報 (天気、トラフィック) を取得したり、アクション (API 呼び出し、メール送信) を実行したりします。

  • メモリ:モデルがマルチターン対話でコンテキストを記憶できるように、長期および短期メモリを提供します。

応答の多様性の制御

temperature および top_p パラメーターは、生成されるテキストの多様性を制御します。値を大きくすると多様性が増し、小さくすると決定性が増します。各パラメーターの効果を分離するには、一度に 1 つだけを調整してください。

  • temperature:有効値:[0, 2)。主にランダム性を調整します。

  • top_p:有効値:[0, 1]。確率のしきい値に基づいて応答をフィルタリングします。

以下の例は、パラメータ設定が出力にどのように影響するかを示しています。入力プロンプト:「猫と太陽光線を主人公にした 3 文の短編小説を書いてください。」

  • 高い多様性 (例:temperature=0.9):クリエイティブライティング、ブレインストーミング、またはマーケティングコピーに最適です。

    Sunlight slanted across the windowsill, and the orange cat crept toward the bright patch as its fur turned the color of melted honey.  
    It reached out and tapped the light, then sank into it as if stepping into a warm pool, and the sunlight flowed up its back in a quiet tide.  
    The afternoon grew heavy—curled in drifting gold, the cat heard time melt softly inside its purr.
  • 高い決定性 (例:temperature=0.1):事実に基づく質疑応答、コード生成、または法務関連テキストに最適です。

    In the afternoon, an old cat curled on the windowsill and dozed while counting the spots of light.  
    Sunlight hopped across its mottled back, like turning the pages of an old photo album.  
    Dust rose and fell, as if time whispered: you were once young, and I was once fierce.

仕組み

temperature

  • 温度を高くすると、トークンの確率分布が平坦化され、可能性の低いトークンがより出やすくなり、出力のランダム性が増します。

  • 温度を低くすると、分布がシャープになり、確率の高いトークンがさらに出やすくなり、出力のランダム性が減少します。

top_p

top_p (ニュークリアス) サンプリングは、累積確率が top_p のしきい値以上になる最小のトークンセットから選択します。トークンは確率順にソートされ、しきい値に達するまで累積されます。その後、この縮小されたセットから次のトークンがランダムにサンプリングされます。

  • top_p を高くすると、トークン選択のプールが広がり、より多様なテキストが生成されます。

  • top_p を低くすると、プールが狭まり、より焦点を絞った決定的なテキストが生成されます。

一般的なシナリオのパラメータ設定例

# 一般的なシナリオに推奨されるパラメータ設定
SCENARIO_CONFIGS = {
    # クリエイティブライティング
    "creative_writing": {
        "temperature": 0.9,
        "top_p": 0.95
    },
    # コード生成
    "code_generation": {
        "temperature": 0.2,
        "top_p": 0.8
    },
    # 事実に基づく Q&A
    "factual_qa": {
        "temperature": 0.1,
        "top_p": 0.7
    },
    # 翻訳
    "translation": {
        "temperature": 0.3,
        "top_p": 0.8
    }
}

# OpenAI の例
# completion = client.chat.completions.create(
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "Write a poem about the moon"}],
#     **SCENARIO_CONFIGS["creative_writing"]
# )
# DashScope の例
# response = Generation.call(
#     # 環境変数を設定していない場合は、次の行を Alibaba Cloud Model Studio の API キーに置き換えてください:api_key = "sk-xxx",
#     api_key=os.getenv("DASHSCOPE_API_KEY"),
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "入力 n が素数であるかどうかを判定する Python 関数を記述してください。コードのみを出力します。"}],
#     result_format="message",
#     **SCENARIO_CONFIGS["code_generation"]
# )

その他の機能

より複雑なシナリオでは、以下の機能が利用可能です:

  • マルチターン対話:フォローアップ質問や情報収集など、継続的な対話に使用します。

  • ストリーミング出力:トークンが生成されると同時にインクリメンタルに返すことで、チャットボットやリアルタイムのコード生成でのタイムアウトを防ぎます。

  • ディープシンキング:複雑な推論や戦略的分析に対して、より高品質で構造化された回答を生成します。

  • 構造化出力:応答をプログラムによる利用やデータ解析のために一貫した JSON 形式に制約します。

  • プレフィックス補完:既存のテキストから生成を継続します。コード補完や長文執筆に役立ちます。

API リファレンス

すべてのパラメーターについては、OpenAI 互換 API リファレンスDashScope API リファレンスをご参照ください。

よくある質問

Q: 送信したテキストのトークン数より入力トークン数が多いのはなぜですか?

A: 会話を処理する際、システムはチャットテンプレートを使用して生の入力テキストをラップし、ロール識別子やメッセージ境界などの制御マーカーを追加します。これらのシステムが生成したマーカーもトークンとしてカウントされます。

例えば、qwen3.7-max にメッセージ {"role": "user", "content": "Hi"} を送信した場合、テキスト "Hi" はトークン化後、1 トークンにしか対応しません。しかし、システム処理中、実際の完全な入力テキストは次のようにフォーマットされます:<|im_start|>user\nHi<|im_end|>\n<|im_start|>assistant\n<think>。トークン化後、この完全なテキストにより、合計入力トークン数は 11 に増加します。

Q: Qianwen API が Web ページリンクを分析できないのはなぜですか?

A: Qianwen API は Web ページのコンテンツに直接アクセスできません。代わりに、関数呼び出し、または Python の Beautiful Soup のような Web スクレイピングツールを使用してコンテンツを抽出し、モデルに渡してください。

Q: 応答の違い:Qianwen (Web) と Qianwen API

A: Qianwen (Web) は、Qianwen API の上に、Web ページの解析、Web 検索、画像生成、PPT 生成などの機能を追加しています。これらはベース API には含まれていませんが、、関数呼び出し を使用して同様の機能を構築できます。

Q: Word、Excel、PDF、または PPT ファイルの生成

A: いいえ。テキスト生成モデルはプレーンテキストのみを出力します。ご自身のコードやサードパーティのライブラリを使用して出力を目的のフォーマットに変換するか。