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

Alibaba Cloud Model Studio:部分モード

最終更新日:Nov 11, 2025

コード補完やテキスト継続などのタスクでは、モデルは既存のテキストフラグメント、つまりプレフィックスからコンテンツを生成する必要があります。部分モードは、モデルの出力が提供されたプレフィックスにシームレスに続くように、正確なコントロールを提供します。これにより、結果の精度とコントロールが向上します。

仕組み

messages 配列の最後のメッセージの roleassistant に設定し、その content にプレフィックスを提供し、"partial": true パラメーターを設定する必要があります。messages 配列のフォーマットは次のとおりです:

[
    {
        "role": "user",
        "content": "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。"
    },
    {
        "role": "assistant",
        "content": "def calculate_fibonacci(n):\n    if n <= 1:\n        return n\n    else:\n",
        "partial": true
    }
]

モデルは、提供されたプレフィックスからテキストの生成を開始します。

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

  • Qwen-Max シリーズ

    qwen3-max, qwen3-max-2025-09-23, qwen3-max-preview (非思考モード), qwen-max, qwen-max-latest, および qwen-max-2025-01-25 以降のスナップショットモデル

  • Qwen-Plus シリーズ (非思考モード)

    qwen-plus, qwen-plus-latest, および qwen-plus-2025-01-25 以降のスナップショットモデル

  • Qwen-Flash シリーズ (非思考モード)

    qwen-flash, および qwen-flash-2025-07-28 以降のスナップショットモデル

  • Qwen-Coder シリーズ

    qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-480b-a35b-instruct, qwen3-coder-30b-a3b-instruct

  • Qwen-VL シリーズ

    • qwen3-vl-plus シリーズ (非思考モード)

      qwen3-vl-plus, および qwen3-vl-plus-2025-09-23 以降のスナップショットモデル

    • qwen3-vl-flash シリーズ (非思考モード)

      qwen3-vl-flash, および qwen3-vl-flash-2025-10-15 以降のスナップショットモデル

    • qwen-vl-max シリーズ

      qwen-vl-max, qwen-vl-max-latest, および qwen-vl-max-2025-04-08 以降のスナップショットモデル

    • qwen-vl-plus シリーズ

      qwen-vl-plus, qwen-vl-plus-latest, および qwen-vl-plus-2025-01-25 以降のスナップショットモデル

  • Qwen-Turbo シリーズ (非思考モード)

    qwen-turbo, qwen-turbo-latest, および qwen-turbo-2024-11-01 以降のスナップショットモデル

  • Qwen オープンソースシリーズ

    Qwen3 オープンソースモデル (非思考モード), Qwen2.5 シリーズテキストモデル, Qwen3-VL オープンソースモデル (非思考モード)

重要

思考モードのモデルは部分モードをサポートしていません。

使用方法

前提条件

API キーの取得と設定」および「API キーを環境変数として設定する」の手順を完了していることを確認してください。OpenAI SDK または DashScope SDK を使用して呼び出しを行う場合は、SDK をインストールする必要があります。ワークスペースのメンバーである場合は、スーパー管理者がそのワークスペースに対してモデルの権限付与を完了していることを確認してください。

説明

DashScope Java SDK はサポートされていません。

コード例

コード補完は、部分モードのコアアプリケーションシナリオです。次の例では、qwen3-coder-plus モデルを使用して Python 関数を補完する方法を示します。

OpenAI 互換

Python

import os
from openai import OpenAI

# 1. クライアントを初期化します
client = OpenAI(
    # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください
    # 環境変数を設定していない場合は、これを API キーに置き換えてください
    api_key=os.getenv("DASHSCOPE_API_KEY"), 
    # 以下はシンガポールリージョンの URL です。中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",  
)
# 2. 補完するコードのプレフィックスを定義します
prefix = """def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
"""

# 3. 部分モードのリクエストを送信します
# 注: messages 配列の最後のメッセージは、ロールが "assistant" であり、"partial": True が含まれています
completion = client.chat.completions.create(
    model="qwen3-coder-plus",
    messages=[
        {"role": "user", "content": "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。"},
        {"role": "assistant", "content": prefix, "partial": True},
    ],
)

# 4. プレフィックスとモデルが生成したコンテンツを手動で結合します
generated_code = completion.choices[0].message.content
complete_code = prefix + generated_code

print(complete_code)

応答

def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
        return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)

Node.js

import OpenAI from "openai";

const openai = new OpenAI({
    // 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: apiKey: "sk-xxx",
    apiKey: process.env.DASHSCOPE_API_KEY,
    // 中国 (北京) リージョンのモデルを使用する場合は、URL を https://dashscope.aliyuncs.com/compatible-mode/v1 に置き換えてください
    baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});

// 補完するコードのプレフィックスを定義します
const prefix = `def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
`;

const completion = await openai.chat.completions.create({
    model: "qwen3-coder-plus",  // コードモデルを使用します
    messages: [
        { role: "user", content: "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。" },
        { role: "assistant", content: prefix, partial: true }
    ],
});

// プレフィックスとモデルが生成したコンテンツを手動で結合します
const generatedCode = completion.choices[0].message.content;
const completeCode = prefix + generatedCode;

console.log(completeCode);

curl

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

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-coder-plus",
    "messages": [
        {
            "role": "user", 
            "content": "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。"
        },
        {
            "role": "assistant",
            "content": "def calculate_fibonacci(n):\n    if n <= 1:\n        return n\n    else:\n",
            "partial": true
        }
    ]
}'

応答

{
    "choices": [
        {
            "message": {
                "content": "        return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 48,
        "completion_tokens": 19,
        "total_tokens": 67,
        "prompt_tokens_details": {
            "cache_type": "implicit",
            "cached_tokens": 0
        }
    },
    "created": 1756800231,
    "system_fingerprint": null,
    "model": "qwen3-coder-plus",
    "id": "chatcmpl-d103b1cf-4bda-942f-92d6-d7ecabfeeccb"
}

DashScope

Python

import os
import dashscope

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

# 補完するコードのプレフィックスを定義します
prefix = """def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
"""

messages = [
    {
        "role": "user", 
        "content": "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。"
    },
    {
        "role": "assistant",
        "content": prefix,
        "partial": True
    }
]

response = dashscope.Generation.call(
    # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください
    # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen3-coder-plus',  # コードモデルを使用します
    messages=messages,
    result_format='message',  
)

# プレフィックスとモデルが生成したコンテンツを手動で結合します
generated_code = response.output.choices[0].message.content
complete_code = prefix + generated_code

print(complete_code)

応答

def calculate_fibonacci(n):
    if n <= 1:
        return n
    else:
        return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)

curl

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

curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3-coder-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": "このフィボナッチ関数を完成させてください。他のコンテンツは追加しないでください。"
            },
            {
                "role": "assistant",
                "content": "def calculate_fibonacci(n):\n    if n <= 1:\n        return n\n    else:\n",
                "partial": true
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

応答

{
    "output": {
        "choices": [
            {
                "message": {
                    "content": "        return calculate_fibonacci(n-1) + calculate_fibonacci(n-2)",
                    "role": "assistant"
                },
                "finish_reason": "stop"
            }
        ]
    },
    "usage": {
        "total_tokens": 67,
        "output_tokens": 19,
        "input_tokens": 48,
        "prompt_tokens_details": {
            "cache_type": "implicit",
            "cached_tokens": 0
        },
        "cached_tokens": 0
    },
    "request_id": "c61c62e5-cf97-90bc-a4ee-50e5e117b93f"
}

使用例

画像またはビデオを渡す

Qwen-VL モデルは、画像またはビデオ入力の部分モードをサポートしています。これは、プロダクト説明、ソーシャルメディアコンテンツ作成、プレスリリース生成、クリエイティブコピーライティングなどのシナリオで役立ちます。

OpenAI 互換

Python

import os
from openai import OpenAI

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

completion = client.chat.completions.create(
    model="qwen3-vl-plus",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
                    },
                },
                {"type": "text", "text": "ソーシャルメディアに投稿したいです。コピーの作成を手伝ってください。"},
            ],
        },
        {
            "role": "assistant",
            "content": "今日、隠れ家的なコーヒーショップを見つけました",
            "partial": True,
        },
    ],
)
print(completion.choices[0].message.content)

応答

、そしてこのティラミスは味覚へのご褒美です!一口ごとにコーヒーとクリームが完璧にブレンドされ、純粋な幸福感に包まれます〜 #フードシェア #ティラミス #コーヒータイム

このコピーを気に入っていただけると幸いです!変更が必要な場合はお知らせください。

Node.js

import OpenAI from "openai";

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

async function main() {
    const response = await openai.chat.completions.create({
        model: "qwen3-vl-plus",  
        messages: [
            {
                role: "user",
                content: [
                    {
                        type: "image_url",
                        image_url: {
                            "url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
                        }
                    },
                    {
                        type: "text",
                        text: "ソーシャルメディアに投稿したいです。コピーの作成を手伝ってください。"
                    }
                ]
            },
            {
                role: "assistant",
                content: "今日、隠れ家的なコーヒーショップを見つけました",
                "partial": true
            }
        ]
    });
    console.log(response.choices[0].message.content);
}

main();

curl

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

curl -X POST 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen3-vl-plus",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
          }
        },
        {
          "type": "text",
          "text": "ソーシャルメディアに投稿したいです。コピーの作成を手伝ってください。"
        }
      ]
    },
    {
      "role": "assistant",
      "content": "今日、隠れ家的なコーヒーショップを見つけました",
      "partial": true
    }
  ]
}'

応答

{
    "choices": [
        {
            "message": {
                "content": "、そしてこのティラミスは味覚へのご褒美です!一口ごとにコーヒーとクリームが完璧にブレンドされ、純粋な幸福感に包まれます〜 #フードシェア #ティラミス #コーヒータイム\n\nこのコピーを気に入っていただけると幸いです!変更が必要な場合はお知らせください。",
                "role": "assistant"
            },
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null
        }
    ],
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 282,
        "completion_tokens": 56,
        "total_tokens": 338,
        "prompt_tokens_details": {
            "cached_tokens": 0
        }
    },
    "created": 1756802933,
    "system_fingerprint": null,
    "model": "qwen3-vl-plus",
    "id": "chatcmpl-5780cbb7-ebae-9c63-b098-f8cc49e321f0"
}

DashScope

Python

import os
import dashscope

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

messages = [
    {
        "role": "user",
        "content": [
            {
                "image": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"
            },
            {"text": "ソーシャルメディアに投稿したいです。コピーの作成を手伝ってください。"},
        ],
    },
    {"role": "assistant", "content": "今日、隠れ家的なコーヒーショップを見つけました", "partial": True},
]

response = dashscope.MultiModalConversation.call(
    #環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key ="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"), 
    model="qwen3-vl-plus", 
    messages=messages
)

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

応答

、そしてこのティラミスは味覚へのご褒美です!一口ごとにコーヒーとクリームが完璧にブレンドされ、純粋な幸福感に包まれます〜 #フードシェア #ティラミス #コーヒータイム

このコピーを気に入っていただけると幸いです!変更が必要な場合はお知らせください。

curl

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

curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
    "model": "qwen3-vl-plus",
    "input":{
        "messages":[
            {"role": "user",
             "content": [
               {"image": "https://img.alicdn.com/imgextra/i3/O1CN01zFX2Bs1Q0f9pESgPC_!!6000000001914-2-tps-450-450.png"},
               {"text": "ソーシャルメディアに投稿したいです。コピーの作成を手伝ってください。"}]
            },
            {"role": "assistant",
             "content": "今日、隠れ家的なコーヒーショップを見つけました",
             "partial": true
            }
        ]
    }
}'

応答

{
    "output": {
        "choices": [
            {
                "message": {
                    "content": [
                        {
                            "text": "、そしてこのティラミスは味覚へのご褒美です!一口ごとにコーヒーとクリームが完璧にブレンドされ、純粋な幸福感に包まれます〜 #フードシェア #ティラミス #コーヒータイム\n\nこのコピーを気に入っていただけると幸いです!変更が必要な場合はお知らせください。"
                        }
                    ],
                    "role": "assistant"
                },
                "finish_reason": "stop"
            }
        ]
    },
    "usage": {
        "total_tokens": 339,
        "input_tokens_details": {
            "image_tokens": 258,
            "text_tokens": 24
        },
        "output_tokens": 57,
        "input_tokens": 282,
        "output_tokens_details": {
            "text_tokens": 57
        },
        "image_tokens": 258
    },
    "request_id": "c741328c-23dc-9286-bfa7-626a4092ca09"
}

不完全な出力からの生成の継続

max_tokens パラメーターが低すぎる場合、モデルは不完全なコンテンツを返すことがあります。部分モードを使用して生成を継続し、コンテンツを意味的に完全なものにすることができます。

OpenAI 互換

Python

import os
from openai import OpenAI

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

def chat_completion(messages, max_tokens=None):
    response = client.chat.completions.create(
        model="qwen-plus",
        messages=messages,
        max_tokens=max_tokens
    )
    print(f"###停止理由: {response.choices[0].finish_reason}")
    
    return response.choices[0].message.content

# 使用例
messages = [{"role": "user", "content": "短い SF 小説を書いてください"}]

# 最初の呼び出し、max_tokens を 40 に設定
first_content = chat_completion(messages, max_tokens=40)
print(first_content)
# 最初の呼び出しからの応答をアシスタントメッセージに追加し、partial=True を設定
messages.append({"role": "assistant", "content": first_content, "partial": True})

# 2 回目の呼び出し
second_content = chat_completion(messages)
print("###完全なコンテンツ:")
print(first_content+second_content)

応答

停止理由が length の場合は、max_tokens の制限に達したことを示します。停止理由が stop の場合は、モデルの生成が自然に終了したか、stop パラメーターがトリガーされたことを示します。

###停止理由: length
**「記憶の終わり」**

遠い未来、地球はもはや居住不可能でした。大気層は汚染され、海は干上がり、都市は廃墟と化しました。人類は「
###停止理由: stop
###完全なコンテンツ:
**「記憶の終わり」**

遠い未来、地球はもはや居住不可能でした。大気層は汚染され、海は干上がり、都市は廃墟と化しました。人類は「エデン・スター」という、青い空、新鮮な空気、そして無限のリソースを持つ居住可能な惑星への移住を余儀なくされました。

しかし、エデン・スターは真の楽園ではありませんでした。そこには人類の歴史も、過去も、記憶もありませんでした。

......

**「私たちが何者であるかを忘れたら、私たちはまだ人間なのでしょうか?」**

--終わり--

Node.js

import OpenAI from "openai";

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

async function chatCompletion(messages, maxTokens = null) {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus",
        messages: messages,
        max_tokens: maxTokens
    });
    
    console.log(`###停止理由: ${completion.choices[0].finish_reason}`);
    return completion.choices[0].message.content;
}

// 使用例
async function main() {
    let messages = [{"role": "user", "content": "短い SF 小説を書いてください"}];

    try {
        // 最初の呼び出し、max_tokens を 40 に設定
        const firstContent = await chatCompletion(messages, 40);
        console.log(firstContent);
        
        // 最初の呼び出しからの応答をアシスタントメッセージに追加し、partial=true を設定
        messages.push({"role": "assistant", "content": firstContent, "partial": true});

        // 2 回目の呼び出し
        const secondContent = await chatCompletion(messages);
        console.log("###完全なコンテンツ:");
        console.log(firstContent + secondContent);
        
    } catch (error) {
        console.error('実行エラー:', error);
    }
}

// 例を実行します
main();

DashScope

Python

コード例

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

def chat_completion(messages, max_tokens=None):
    response = dashscope.Generation.call(
        # シンガポールリージョンと中国 (北京) リージョンの API キーは異なります。API キーを取得するには、https://www.alibabacloud.com/help/en/model-studio/get-api-key をご参照ください
        # 環境変数を設定していない場合は、次の行を Model Studio API キーに置き換えてください: api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        model='qwen-plus',
        messages=messages,
        max_tokens=max_tokens,
        result_format='message',  
    )
    
    print(f"###停止理由: {response.output.choices[0].finish_reason}")
    return response.output.choices[0].message.content

# 使用例
messages = [{"role": "user", "content": "短い SF 小説を書いてください"}]

# 最初の呼び出し、max_tokens を 40 に設定
first_content = chat_completion(messages, max_tokens=40)
print(first_content)

# 最初の呼び出しからの応答をアシスタントメッセージに追加し、partial=True を設定
messages.append({"role": "assistant", "content": first_content, "partial": True})

# 2 回目の呼び出し
second_content = chat_completion(messages)
print("###完全なコンテンツ:")
print(first_content + second_content)

応答

###停止理由: length
タイトル: **「タイム折り紙」**

---

西暦 2179 年、人類はついにタイムトラベルの技術を習得しました。しかし、この技術は巨大な機械や複雑なエネルギーフィールドによって達成されたのではなく、一枚の
###停止理由: stop
###完全なコンテンツ:
タイトル: **「タイム折り紙」**

---

西暦 2179 年、人類はついにタイムトラベルの技術を習得しました。しかし、この技術は巨大な機械や複雑なエネルギーフィールドによって達成されたのではなく、一枚の紙によって達成されました。

時間を折りたたむことができる一枚の紙。

それは「タイム折り紙」と呼ばれ、異星文明から来た未知の物質で作られていました。科学者たちはその原理を説明できませんでした。彼らが知っていたのは、紙に情景を描き、特定の方法で折りたたむことで、過去または未来への扉を開くことができるということだけでした。

......

「あなたは時間の鍵ではなく、未来は常に私たちの手の中にあることを思い出させるものです。」

そして、私はそれを粉々に引き裂きました。

---

**(終わり)**

課金

課金は、リクエスト内の入力トークンと出力トークンの数に基づきます。プレフィックスは入力トークンとしてカウントされます。

エラーコード

呼び出しが失敗した場合は、トラブルシューティングについて「エラーメッセージ」をご参照ください。