Skip to Content

Qwen シリーズ

Alibaba Cloud の通義千問(Qwen)のテキストモデルで、Qwen3.8、Qwen3.7、Qwen3.6 の各シリーズと Qwen Flash、Qwen Plus があります。OpenAI 互換 API で呼び出し、Qwen3.x シリーズは Anthropic ネイティブ API にも対応しています。画像生成モデルは Qwen-Image を参照してください。

目的別ガイド

モデル

モデルの全一覧とリアルタイム価格はモデルページ を参照してください。Models API でも確認できます。モデル ID の qwen/ プレフィックスは省略できます。

主なモデル ID(そのままコピーしてください)
Qwen3.8 Maxqwen/qwen3.8-max画像入力に対応
Qwen3.8 Flashqwen/qwen3.8-flash画像入力に対応
Qwen3.7 Plusqwen/qwen3.7-plus画像入力に対応
Qwen Flashqwen/qwen-flashデフォルトで思考なし、テキストのみ
機能対応モデル
画像入力Qwen3.8 Max、3.8 Flash、3.8 27B、3.7 Plus、3.6 Flash
Anthropic ネイティブ APIQwen3.8、3.7、3.6 シリーズ、Qwen Flash
Responses APIQwen3.8、3.7 シリーズ、Qwen Flash など。Models API の supported_endpoints に従ってください

Qwen モデルは Alibaba Cloud Model Studio(百煉)から提供されており、中国サイト(aliyun)と国際サイト(alicloud)の 2 つのプロバイダーがあります。デフォルトでは自動で選択されます。指定方法はプロバイダールーティングを参照してください。

呼び出し例

qwen_basic.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) resp = client.chat.completions.create( model="qwen/qwen3.8-flash", messages=[{"role": "user", "content": "冪等性とは何かを一文で説明してください。"}], extra_body={"enable_thinking": False}, ) print(resp.choices[0].message.content)

思考モード

ポイントQwen3.x シリーズはデフォルトで思考が有効で、複雑な質問では数万トークン思考し、数分かかる場合があります。必要に応じて無効にするか、thinking_budget で思考の長さを制限してください。
モデルデフォルト思考を無効にする思考を有効にする
Qwen3.8、3.7、3.6 シリーズ有効"enable_thinking": falseデフォルトで有効
Qwen Flash、Qwen Plus無効デフォルトで無効"enable_thinking": true

同じ数学の問題での実測では、Qwen3.8 Flash はデフォルトで約 5800 トークン思考して約 1.5 分、Qwen3.6 Flash はデフォルトで 3 万トークン以上思考して 4 分以上かかりました。思考を無効にすると、どちらも数秒で応答しました。

思考の長さを制限する

思考は必要だが所要時間と費用を抑えたい場合は、thinking_budget(思考トークンの上限)を渡します。

qwen_thinking_budget.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) resp = client.chat.completions.create( model="qwen/qwen3.8-flash", messages=[{"role": "user", "content": "n² + n + 41 が素数にならない 50 未満の正の整数 n をすべて求めてください。"}], extra_body={"enable_thinking": True, "thinking_budget": 1000}, ) msg = resp.choices[0].message details = getattr(msg, "reasoning_details", None) or [] print("[思考]", "".join(d.get("text", "") for d in details)[:200], "…") print("[回答]", msg.content) print("思考トークン:", resp.usage.completion_tokens_details.reasoning_tokens)
  • 実測では thinking_budget は厳密に適用されます。200 に設定すると、思考トークンはちょうど 200 でした。
  • enable_thinking と thinking_budget は OpenAI SDK の標準パラメーターではないため、extra_body に入れてください。HTTP リクエストを直接送る場合は、リクエストボディの最上位に置きます。
  • 思考トークンは出力単価で課金され、トークン数は usage.completion_tokens_details.reasoning_tokens で確認できます。

思考内容の読み取り

  • ストリーミングのレスポンスでは、思考内容は delta.reasoning_content にあり、Alibaba Cloud Model Studio の公式 API と同じです。
  • 非ストリーミングのレスポンスでは、思考内容は message.reasoning_details にあります。各要素の text を順に連結してください(上の例を参照)。

画像入力

画像入力に対応したモデルでは、標準の image_url コンテンツブロックを使います。

qwen_vision.py
import base64 import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) img_b64 = base64.b64encode(open("photo.png", "rb").read()).decode() resp = client.chat.completions.create( model="qwen/qwen3.8-flash", messages=[{"role": "user", "content": [ {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_b64}"}}, {"type": "text", "text": "この画像を説明してください。"}, ]}], extra_body={"enable_thinking": False}, ) print(resp.choices[0].message.content)

Qwen3.7 Max、Qwen Plus、Qwen Flash はテキストのみに対応しています。上の表の画像入力に対応したモデルを使ってください。

Claude Code で使う

Qwen3.x シリーズと Qwen Flash は Anthropic ネイティブ API に対応しています。URL は https://api.ofox.ai/anthropic です。

Claude Code の設定値
ANTHROPIC_BASE_URLhttps://api.ofox.ai/anthropic
ANTHROPIC_AUTH_TOKENOfoxAI の API Key を貼り付けてください
ANTHROPIC_MODELqwen/qwen3.8-max
  • Anthropic API で呼び出す場合、思考内容は thinking ブロックとして返されます。
  • Qwen3.8 シリーズは思考量が多いため、max_tokens を十分に大きく設定してください。実測では、max_tokens が 4000 の場合、レスポンスに thinking ブロックだけが含まれ、回答がないことがありました。
  • Qwen Plus は Anthropic API に対応しておらず、呼び出すと protocol_not_supported を返します。

Claude Code の設定手順の詳細は Claude Code の設定を参照してください。

JSON 出力とツール呼び出し

response_format は {"type": "json_object"} と {"type": "json_schema", ...} に対応しています。ツール呼び出しには標準の tools パラメーターを使います。json_object を使う場合は、プロンプトに「JSON で返す」ことと必要なフィールドを明記してください。書き方は構造化出力と関数呼び出しを参照してください。

プロンプトキャッシュ

Qwen は重複するリクエストのプレフィックスを自動でキャッシュするため、リクエストを変更する必要はありません。ヒット量は usage.prompt_tokens_details.cached_tokens で確認でき、ヒットした部分はキャッシュ読み取り単価で課金されます。キャッシュはベストエフォートで、プレフィックスが同じリクエストでもヒットしない場合があります。

よくあるエラー

ポイントリクエストが遅い、または回答が空の場合、多くはデフォルトで有効な思考が原因です。思考が不要な場合は無効にしてください。
HTTP · typeエラーメッセージ(原文)原因対処
400 invalid_request_errorThe provided messages input is invalid. The error info is [Unexpected item type in content.] を含むテキストのみ対応のモデル(Qwen3.7 Max など)に画像を渡した画像入力に対応したモデルを使ってください。画像入力を参照
400 protocol_not_supportedModel 'qwen/qwen-plus' does not support the 'anthropic' protocol on this platform.そのモデルは Anthropic API に対応していないOpenAI 互換 API を使うか、Qwen3.x シリーズに切り替えてください
404 model_not_foundModel 'qwen/qwen9-max' not foundモデル ID の綴り誤りこのページからモデル ID をコピーしてください
200、回答が空または思考内容のみ—思考が出力の上限を使い切ったmax_tokens を増やす、thinking_budget を設定する、または思考を無効にしてください
リクエストのタイムアウト—思考がデフォルトで有効なため、複雑な質問は時間がかかる思考を無効にする、thinking_budget を設定する、ストリーミング出力を使う、またはクライアントのタイムアウトを 600 秒以上に設定してください

その他の共通エラーは Error Handling を参照してください。

公式ドキュメント

公式ドキュメントは Alibaba Cloud Model Studio に直接リクエストした場合の動作を説明しています。OfoxAI 経由で呼び出す場合、モデル ID とエンドポイントの URL はこのページに従ってください。

よくある質問

Qwen のモデル ID はどう書けばよいですか?

標準表記は qwen/qwen3.8-flash です。qwen/ プレフィックスは省略できます。

Qwen の思考はどう無効にしますか?

"enable_thinking": false を渡します。OpenAI SDK では extra_body に入れます。Qwen3.8、3.7、3.6 シリーズはデフォルトで思考が有効、Qwen Flash と Qwen Plus はデフォルトで無効です。

Qwen の応答が遅く、数分待たされます。

Qwen3.x シリーズはデフォルトで思考が有効で、複雑な質問では数万トークン思考する場合があります。思考を無効にするか、thinking_budget で思考の長さを制限してください(例:"thinking_budget": 1000)。

Qwen の thinking_budget はどう使いますか?

"enable_thinking": true と一緒に渡します。値は思考トークンの上限です(例:1000)。実測では厳密に適用されます。

Qwen で画像を認識できるモデルはどれですか?

Qwen3.8 Max、3.8 Flash、3.8 27B、3.7 Plus、3.6 Flash が画像入力に対応しています。Qwen3.7 Max、Qwen Plus、Qwen Flash はテキストのみに対応しています。

Claude Code で Qwen を使えますか?

使えます。ANTHROPIC_BASE_URL を https://api.ofox.ai/anthropic に設定し、モデルに qwen/qwen3.8-max などの Qwen3.x シリーズのモデルを指定してください。Qwen Plus は Anthropic API に対応していません。

Qwen の reasoning_content はどこにありますか?

ストリーミングのレスポンスでは delta.reasoning_content にあります。非ストリーミングのレスポンスでは message.reasoning_details にあるため、各要素の text を連結してください。

最終更新日