Alibaba Cloud Model Studio の Qwen シリーズモデルは、Anthropic API 互換インターフェイスをサポートしています。既存の Anthropic アプリケーションを Model Studio に移行するには、次のパラメーターを変更します。
ANTHROPIC_API_KEY (または ANTHROPIC_AUTH_TOKEN):この値を Model Studio API キーに置き換えます。
ANTHROPIC_BASE_URL:これを Model Studio 互換のエンドポイント
https://dashscope-intl.aliyuncs.com/apps/anthropicに置き換えます。モデル名 (model):これを Model Studio でサポートされているモデル名 (例:
qwen3-plus) に置き換えます。詳細については、「サポートされているモデル」をご参照ください。
このトピックは、国際版 (シンガポールリージョン) にのみ適用されます。
クイックインテグレーション
テキストチャット
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.getenv("ANTHROPIC_API_KEY"),
base_url=os.getenv("ANTHROPIC_BASE_URL"),
)
# Model Studio に移行するには:ANTHROPIC_API_KEY と ANTHROPIC_BASE_URL 環境変数を設定し、以下の model パラメーターを変更します。
# パラメーターの互換性については、「Anthropic API 互換性の詳細」をご参照ください。
message = client.messages.create(
model="qwen-plus", # モデルを qwen-plus に設定
max_tokens=1024,
# ディープシンキングは一部のモデルでのみサポートされています。サポートされているモデルのリストをご参照ください。
thinking={
"type": "enabled",
"budget_tokens": 1024
},
# ストリーミング出力
stream=True,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Who are you?"
}
]
}
]
)
print("=== Thinking Process ===")
first_text = True
for chunk in message:
if chunk.type == "content_block_delta":
if hasattr(chunk.delta, 'thinking'):
print(chunk.delta.thinking, end="", flush=True)
elif hasattr(chunk.delta, 'text'):
if first_text:
print("\n\n=== Answer ===")
first_text = False
print(chunk.delta.text, end="", flush=True)
サポートされているモデル
Model Studio の Anthropic API 互換サービスは、次の Qwen モデルをサポートしています:
シリーズ | モデル名 (model) |
Qwen-Max (思考支援の一部) | qwen3-max, qwen3-max-2026-01-23 (シンキングモードをサポート), qwen3-max-preview (シンキングモードをサポート) 詳細を表示 |
Qwen-Plus | qwen3.5-plus, qwen3.5-plus-2026-02-15, qwen-plus, qwen-plus-latest, qwen-plus-2025-09-11 詳細を表示 |
Qwen-Flash | qwen-flash, qwen-flash-2025-07-28 詳細を表示 |
Qwen-Turbo | qwen-turbo, qwen-turbo-latest 詳細を表示 |
Qwen-Coder (シンキングは非サポート) | qwen3-coder-next, qwen3-coder-plus, qwen3-coder-plus-2025-09-23, qwen3-coder-flash 詳細を表示 |
Qwen-VL (シンキングは非サポート) | qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-plus 詳細を表示 |
モデルパラメーターと課金ルールについては、「モデル」をご参照ください。
詳細な手順
Model Studio の有効化
初めて Model Studio サービスを使用する場合は、次の手順に従って有効化してください。
Model Studio コンソールにログインします。
ページ上部に
が表示されている場合は、Model Studio モデルサービスを有効化し、無料クォータを申請してください。このメッセージが表示されない場合は、すでにサービスを有効化しています。
初めて Model Studio を有効化すると、モデル推論サービス用の新規ユーザー無料クォータ (90 日間有効) を申請できます。詳細については、「新規ユーザー向けの無料クォータ」をご参照ください。
無料クォータまたはその有効期間を超えると課金されます。これらの料金を防ぐには、「無料クォータのみ」機能を有効にすることができます。実際の料金は、コンソールでのリアルタイムの見積もりと最終的な請求書に従います。
環境変数の設定
Anthropic API 互換方式を使用して Model Studio のモデルサービスにアクセスするには、次の 2 つの環境変数を設定します。
ANTHROPIC_BASE_URL:https://dashscope-intl.aliyuncs.com/apps/anthropic に設定します。ANTHROPIC_API_KEYまたはANTHROPIC_AUTH_TOKEN:これを、ご利用の Model Studio の API キーに設定します。ANTHROPIC_API_KEYまたはANTHROPIC_AUTH_TOKENを認証に使用できます。どちらか一方を設定するだけで十分です。このトピックでは、ANTHROPIC_API_KEYを例として使用します。
macOS
ターミナルで次のコマンドを実行して、デフォルトのシェルタイプを表示します。
echo $SHELLシェルタイプに基づいて、次のように環境変数を設定します:
Zsh
# YOUR_DASHSCOPE_API_KEY をご利用の Model Studio API キーに置き換えます。 echo 'export ANTHROPIC_BASE_URL="https://dashscope-intl.aliyuncs.com/apps/anthropic"' >> ~/.zshrc echo 'export ANTHROPIC_API_KEY="YOUR_DASHSCOPE_API_KEY"' >> ~/.zshrcBash
# YOUR_DASHSCOPE_API_KEY をご利用の Model Studio API キーに置き換えます。 echo 'export ANTHROPIC_BASE_URL="https://dashscope-intl.aliyuncs.com/apps/anthropic"' >> ~/.bash_profile echo 'export ANTHROPIC_API_KEY="YOUR_DASHSCOPE_API_KEY"' >> ~/.bash_profileターミナルで次のコマンドを実行して、環境変数を適用します。
Zsh
source ~/.zshrcBash
source ~/.bash_profile新しいターミナルを開き、環境変数が適用されているかどうかを確認します。
echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEY
Windows
Windows では、Model Studio が提供するベース URL と API キー を環境変数として設定します。
CMD
CMD で次のコマンドを実行して、環境変数を設定します。
# YOUR_DASHSCOPE_API_KEY をご利用の DashScope API キーに置き換えます。 setx ANTHROPIC_API_KEY "YOUR_DASHSCOPE_API_KEY" setx ANTHROPIC_BASE_URL "https://dashscope-intl.aliyuncs.com/apps/anthropic"新しい CMD ウィンドウを開き、次のコマンドを実行して環境変数が適用されているかどうかを確認します。
echo %ANTHROPIC_API_KEY% echo %ANTHROPIC_BASE_URL%
PowerShell
PowerShell で次のコマンドを実行して、環境変数を設定できます。
# YOUR_DASHSCOPE_API_KEY をご利用の Model Studio API キーに置き換えます。 [Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "YOUR_DASHSCOPE_API_KEY", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://dashscope-intl.aliyuncs.com/apps/anthropic", [EnvironmentVariableTarget]::User)新しい PowerShell ウィンドウを開き、次のコマンドを実行して環境変数が適用されているかどうかを確認できます。
echo $env:ANTHROPIC_API_KEY echo $env:ANTHROPIC_BASE_URL
API 呼び出し - テキストチャット
cURL
curl -X POST "https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: ${ANTHROPIC_API_KEY}" \
-d '{
"model": "qwen-plus",
"max_tokens": 1024,
"stream": true,
"thinking": {
"type": "enabled",
"budget_tokens": 1024
},
"system": "You are a helpful assistant",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Who are you?"
}
]
}
]
}'Python
Anthropic SDK のインストール
pip install anthropicコード例
import anthropic import os client = anthropic.Anthropic( api_key=os.getenv("ANTHROPIC_API_KEY"), base_url=os.getenv("ANTHROPIC_BASE_URL"), ) message = client.messages.create( model="qwen-plus", max_tokens=1024, stream=True, system="you are a helpful assistant", # ディープシンキングは一部のモデルでのみサポートされています。サポートされているモデルのリストをご参照ください。 thinking={ "type": "enabled", "budget_tokens": 1024 }, messages=[ { "role": "user", "content": [ { "type": "text", "text": "Who are you?" } ] } ] ) print("=== Thinking Process ===") first_text = True for chunk in message: if chunk.type == "content_block_delta": if hasattr(chunk.delta, 'thinking'): print(chunk.delta.thinking, end="", flush=True) elif hasattr(chunk.delta, 'text'): if first_text: print("\n\n=== Answer ===") first_text = False print(chunk.delta.text, end="", flush=True)
TypeScript
Anthropic TypeScript SDK のインストール
npm install @anthropic-ai/sdkコード例
import Anthropic from "@anthropic-ai/sdk"; async function main() { const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY, baseURL: process.env.ANTHROPIC_BASE_URL, }); const stream = await anthropic.messages.create({ model: "qwen-plus", max_tokens: 1024, stream: true, // ディープシンキングは一部のモデルでのみサポートされています。サポートされているモデルのリストをご参照ください。 thinking: { type: "enabled", budget_tokens: 1024 }, system: "You are a helpful assistant", messages: [{ role: "user", content: [ { type: "text", text: "Who are you?" } ] }] }); console.log("=== Thinking Process ==="); let firstText = true; for await (const chunk of stream) { if (chunk.type === "content_block_delta") { if ('thinking' in chunk.delta) { process.stdout.write(chunk.delta.thinking); } else if ('text' in chunk.delta) { if (firstText) { console.log("\n\n=== Answer ==="); firstText = false; } process.stdout.write(chunk.delta.text); } } } console.log(); } main().catch(console.error);
互換性の詳細
HTTP ヘッダー
フィールド | サポート |
x-api-key | |
Authorization Bearer | |
anthropic-beta/anthropic-version |
基本フィールド
フィールド | サポート | 説明 | 例 |
model | モデル名。サポートされているモデルについては、「サポートされているモデル」をご参照ください。 | qwen-plus | |
max_tokens | 生成するトークンの最大数。 | 1024 | |
container | - | - | |
mcp_servers | - | - | |
metadata | - | - | |
service_tier | - | - | |
stop_sequences | モデルがテキストの生成を停止する原因となるカスタムテキストシーケンス。 | ["}"] | |
stream | ストリーミング出力。 | True | |
system | システムプロンプト。 | You are a helpful assistant | |
temperature | temperature。生成されるテキストの多様性を制御します。 | 1.0 | |
thinking | シンキングモード。このモードを有効にすると、モデルは返信を生成する前に推論を実行して精度を向上させます。一部のモデルはこの機能をサポートしていません。詳細については、「サポートされているモデル」をご参照ください。 | {"type": "enabled", "budget_tokens": 1024} | |
top_k | 生成中のサンプリングのための候補セットのサイズ。 | 10 | |
top_p | 核サンプリングの確率しきい値。生成されるテキストの多様性を制御します。 | 0.1 |
temperature と top_p はどちらもテキストの多様性を制御するため、これらのパラメーターのいずれか 1 つのみを設定してください。詳細については、「テキスト生成モデルの概要」をご参照ください。
ツールフィールド
tools
フィールド | サポート |
name | |
input_schema | |
description | |
cache_control |
tool_choice
値 | サポート |
none | |
auto | |
any | |
tool |
メッセージフィールド
フィールド | タイプ | サブフィールド | サポート | 説明 |
content | string | - | プレーンテキストコンテンツ。 | |
array, type="text" | text | テキストブロックのコンテンツ。 | ||
cache_control | このテキストブロックのキャッシュ動作を制御します。 | |||
citations | - | |||
array, type="image" | - | - | ||
array, type="video" | - | - | ||
array, type="document" | - | - | ||
array, type="search_result" | - | - | ||
array, type="thinking" | - | - | ||
array, type="redacted_thinking" | - | - | ||
array, type="tool_use" | id | ツール呼び出しの一意の識別子。 | ||
input | ツールが呼び出されたときに渡されるパラメーターオブジェクト。 | |||
name | 呼び出されるツールの名前。 | |||
cache_control | このツール呼び出しのキャッシュ動作を制御します。 | |||
array, type="tool_result" | tool_use_id | この結果に対応する | ||
content | ツールが実行された後に返される結果。通常は文字列または JSON 文字列です。 | |||
cache_control | このツール結果のキャッシュ動作を制御します。 | |||
is_error | - | |||
array, type="server_tool_use" | - | - | ||
array, type="web_search_tool_result" | - | - | ||
array, type="code_execution_tool_result" | - | - | ||
array, type="mcp_tool_use" | - | - | ||
array, type="mcp_tool_result" | - | - | ||
array, type="container_upload" | - | - |
エラーコード
HTTP ステータスコード | エラータイプ | 説明 |
400 | invalid_request_error | リクエスト形式またはコンテンツが無効です。一般的な原因には、必須リクエストパラメーターの欠落や、パラメーター値のデータ型が正しくないことなどが含まれます。 |
400 | Arrearage | ご利用のアカウントには支払い遅延があります。サービスは一時停止されています。アカウントにチャージしてから、もう一度お試しください。 |
403 | authentication_error | API キーが無効です。一般的な原因には、リクエストヘッダーに API キーがない、または不正な API キーが提供されたことなどが含まれます。 |
404 | not_found_error | リクエストされたリソースが見つかりませんでした。一般的な原因には、互換エンドポイントのタイプミスや、リクエストヘッダーに存在しないモデル名が含まれます。 |
429 | rate_limit_error | ご利用のアカウントがレート制限に達しました。リクエスト頻度を減らしてください。 |
500 | api_error | 一般的な内部サーバーエラーが発生しました。後でもう一度お試しください。 |
529 | overloaded_error | API サーバーが過負荷で、現在新しいリクエストを処理できません。 |