Model Studio 上の Qwen モデルは、OpenAI 互換インターフェイスをサポートしています。API キー、ベース URL、モデル名を変更するだけで、既存の OpenAI コードを Model Studio に移行できます。
互換性情報
BASE_URL
BASE_URL は、モデルサービスにアクセスするためのネットワークエンドポイントです。Model Studio で OpenAI 互換インターフェイスを使用する場合、BASE_URL を次のように設定します。
OpenAI SDK またはその他の OpenAI 互換 SDK 経由で呼び出す場合は、次の BASE_URL を使用します。
呼び出し失敗のトラブルシューティング: OpenAI 互換インターフェイス経由の呼び出しが 404、401、403、または接続エラーで失敗した場合は、次の構成を確認してください。
クロスリージョン呼び出し
Model Studio の API キーは、作成されたリージョンにバインドされています。あるリージョンのベース URL を呼び出すときは、その同じリージョンで作成された API キーを使用する必要があります。別のリージョンの API キーは認証エラーで拒否されます。
このルールは、中国 (北京)、米国 (バージニア)、シンガポール、日本 (東京)、および中国 (香港) を含む、エンドポイントを提供するすべてのリージョンに適用されます。呼び出すエンドポイントのリージョンのコンソールで API キーを作成します。
たとえば、中国 (北京) リージョンで作成された API キーを使用して米国 (バージニア) のエンドポイントを呼び出すと、リクエストは HTTP 401 を返し、エラーメッセージ Incorrect API key provided とエラーコード invalid_api_key が表示されます。このエラーは、API キーが無効であるか権限がないことを示すのではなく、API キーとエンドポイントが異なるリージョンに属していることを示します。
サポート対象モデル
対応モデル:Qwen 大規模言語モデル(商用およびオープンソース版)、Qwen-VL、Qwen-Coder、Qwen-Omni、Qwen-Math、DeepSeek、Kimi、GLM、MiniMax。
Qwen-Audio は OpenAI 互換プロトコルをサポートしていません。代わりに DashScope プロトコルを使用してください。
OpenAI SDK 経由での呼び出し
前提条件
- ご利用のマシンに Python がインストールされていること。
- 最新バージョンの OpenAI SDK がインストールされていること。
- Model Studio を有効化し、API キーを取得していること。手順については、「API キーの取得」をご参照ください。
- (推奨) キーの漏洩リスクを減らすために、API キーを環境変数として設定します。コード内で直接設定することもできますが、これにより漏洩のリスクが高まります。
- サポート対象モデルのリストから使用したいモデルを選択していること。
使用方法
以下の例は、OpenAI SDK を使用して Model Studio 上の Qwen モデルにアクセスする方法を示しています。
非ストリーミングの例
ストリーミングの例
ツール呼び出しの例
以下の例は、OpenAI 互換インターフェイスを介したツール呼び出し (関数呼び出し) を示しており、天気照会ツールと時刻照会ツールを使用しています。このサンプルコードは、マルチターンのツール呼び出しをサポートしています。
リクエストパラメーター
リクエストパラメーターは OpenAI インターフェイスに準拠しています。次の表に、現在サポートされているパラメーターを示します。
パラメーター | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | string | - | 使用するモデル。利用可能なモデルについては、「サポート対象モデル」をご参照ください。 |
messages | array | - | ユーザーとモデル間の会話履歴。各配列要素のフォーマットは |
top_p (オプション) | float | - | 核サンプリングの確率のしきい値。たとえば、値が 0.8 の場合、累積確率が 0.8 以上の最小のトークンセットのみが保持されます。有効な値: (0, 1.0)。値が高いほどランダム性が増し、低いほど決定性が増します。 |
temperature (オプション) | float | - | モデルの応答のランダム性と多様性をコントロールします。値が高いほど確率分布が平坦化され、より多様な出力を得るために低確率のトークンが選択されやすくなります。値が低いほど分布がシャープになり、より決定的な出力を得るために高確率のトークンが優先されます。有効な値: [0, 2)。値 0 は推奨されません。 |
presence_penalty (オプション) | float | - | 生成されるシーケンス全体での繰り返しをコントロールします。値が高いほど繰り返しが減少します。有効な値: [-2.0, 2.0]。 Qwen 商用モデルおよびオープンソースモデル qwen1.5 以降でのみサポートされています。 |
n (オプション) | integer | 1 | 生成する応答の数。有効な値: |
max_tokens (オプション) | integer | - | モデルが生成できるトークンの最大数。たとえば、モデルが最大 2k の出力トークンをサポートしている場合、これを 1k に設定して応答が長くなりすぎるのを防ぐことができます。モデルによって出力制限は異なります。詳細については、モデルリストをご参照ください。 |
seed (オプション) | integer | - | 生成用のランダムシードで、モデル出力のランダム性をコントロールするために使用されます。符号なし 64 ビット整数をサポートします。 |
stream (オプション) | boolean | False | ストリーミング出力を使用するかどうかをコントロールします。ストリーミングが有効な場合、インターフェイスはジェネレーターを返します。それを反復処理して結果を取得します。各出力は生成された増分シーケンスです。 |
stop (オプション) | string or array | None | コンテンツ生成の正確な停止をコントロールします。モデルが指定された文字列または token_id を生成しようとすると、生成は自動的に停止します。文字列または配列型を指定できます。文字列型の場合: モデルが指定されたストップワードを生成しようとすると生成が停止します。配列型の場合: 配列要素は token_id、文字列、または token_id の配列にすることができます。生成されたトークンまたはその token_id が stop の要素と一致すると、生成が停止します。 stop が配列型の場合、token_id と文字列を要素として混在させることはできません。 |
tools (オプション) | array | None | モデルが呼び出し可能なツールライブラリ。関数呼び出しフロー中、モデルはこのライブラリから 1 つのツールを選択します。各ツールは次の構造を持ちます: tools パラメーターは stream=True と同時に使用することはできません。 |
stream_options (オプション) | object | None | ストリーミング出力でトークン使用量を表示するかどうかを設定します。stream が True の場合にのみ有効です。ストリーミングモードでトークンをカウントするには、 |
応答パラメーター
パラメーター | タイプ | 説明 | 注 |
|---|---|---|---|
id | string | このリクエストに対してシステムが生成した ID。 | - |
model | string | このリクエストに使用されたモデル名。 | - |
system_fingerprint | string | モデルランタイムが使用する構成バージョン。現在サポートされておらず、空の文字列を返します。 | - |
choices | array | モデルが生成したコンテンツの詳細。 | - |
choices[i].finish_reason | string | 生成が停止した理由。値: null (まだ生成中)、stop (停止条件により停止)、length (最大長を超えたため停止)。 | - |
choices[i].message | object | モデルが出力したメッセージ。 | - |
choices[i].message.role | string | モデルのロール。固定値: assistant。 | - |
choices[i].message.content | string | モデルが生成したテキスト。 | - |
choices[i].index | integer | 生成された結果のシーケンス番号。デフォルト: 0。 | - |
created | integer | 生成された結果のタイムスタンプ (秒単位)。 | - |
usage | object | このリクエストのトークン消費量を示す課金情報。 | - |
usage.prompt_tokens | integer | ユーザー入力テキストのトークン数。 | - |
usage.completion_tokens | integer | モデルが生成した応答のトークン数。 | - |
usage.total_tokens | integer | usage.prompt_tokens と usage.completion_tokens の合計。 | - |
langchain_openai SDK 経由での呼び出し
前提条件
- ご利用のマシンに Python がインストールされていること。
- langchain_openai SDK がインストールされていること。
- Model Studio を有効化し、API キーを取得していること。手順については、「API キーの取得」をご参照ください。
- (推奨) キーの漏洩リスクを減らすために、API キーを環境変数として設定します。コード内で直接設定することもできますが、これにより漏洩のリスクが高まります。
- サポート対象モデルのリストから使用したいモデルを選択していること。
使用方法
以下の例は、langchain_openai SDK を使用して Model Studio 上の Qwen モデルにアクセスする方法を示しています。
非ストリーミング出力
非ストリーミング出力では invoke メソッドを使用します。
ストリーミング出力
ストリーミング出力では stream メソッドを使用します。別途 stream パラメーターを設定する必要はありません。
HTTP 経由での呼び出し
HTTP リクエストを介して Model Studio を呼び出し、OpenAI の HTTP 応答と同じ構造で応答を受け取ることができます。
前提条件
- Model Studio を有効化し、API キーを取得していること。手順については、「API キーの取得」をご参照ください。
- (推奨) キーの漏洩リスクを減らすために、API キーを環境変数として設定します。コード内で直接設定することもできますが、これにより漏洩のリスクが高まります。
エンドポイント
リクエストの例
以下の例では、cURL コマンドを使用して API を呼び出します。
$DASHSCOPE_API_KEY を実際の API キーに置き換えてください。非ストリーミング出力
ストリーミング出力
ストリーミング出力を使用するには、リクエストボディで stream パラメーターを true に設定します。
エラー応答
リクエストが失敗した場合、応答には原因を示す code と message フィールドが含まれます。
サードパーティクライアントの設定
OpenAI 互換プロトコルをサポートするサードパーティクライアントから Model Studio のモデルを呼び出すことができます。以下の手順では、Zhipu クライアントを例として使用します。
- クライアントのプロバイダー設定で、[カスタムプロバイダー] を選択します。
-
ベース URL: OpenAI SDK がご利用のリージョンで使用するベース URL を入力します。各リージョンのベース URL については、「BASE_URL」をご参照ください。ベース URL は
/compatible-mode/v1で終わり、/chat/completionsは含みません。ベース URL はリージョンごとに異なるため、API キーのリージョンに対応するものを使用してください。 たとえば、シンガポール リージョンでは、https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1を入力します。{WorkspaceId}を、お使いのワークスペース ID に置き換えます。この ID は、Model Studio コンソールのワークスペース詳細ページで確認できます。 レガシのhttps://dashscope.aliyuncs.comドメインは引き続き利用可能ですが、可能な限りワークスペース固有のドメインを使用してください。 - API キー: ベース URL が指すリージョンの Model Studio API キーを入力します。API キーは、Model Studio コンソールのAPI キー管理ページで作成および取得できます。
-
モデル名: OpenAI 互換プロトコルをサポートする大規模言語モデルの名前を入力します。選択可能なモデルについては、「サポート対象モデル」をご参照ください。例:
qwen3.7-plus。このモデル名は一例であり、モデルが無料クォータを提供することを示すものではありません。 - 設定を保存し、会話を開始して、サードパーティクライアントがモデルを呼び出せることを確認します。
error.message が current user api does not support http call に、error.type が invalid_request_error に設定されることがあります。このエラーは、入力したモデルが OpenAI 互換インターフェイスを介した HTTP 呼び出しをサポートしていないことを意味します。「サポート対象モデル」のモデルに置き換えて、再度試してください。
エラーコード
エラーコード | 説明 |
|---|---|
400 - Invalid Request Error | リクエストが無効です。詳細については、エラーメッセージをご参照ください。 |
401 - Incorrect API key provided | API キーが正しくありません。 |
429 - Rate limit reached for requests | QPS または QPM の制限を超えました。 |
429 - You exceeded your current quota, please check your plan and billing details | クォータを超過したか、アカウントが延滞しています。 |
500 - The server had an error while processing your request | サーバーエラー。 |
503 - The engine is currently overloaded, please try again later | サーバーが過負荷です。後でもう一度お試しください。 |