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/ プレフィックスは省略できます。
qwen/qwen3.8-max画像入力に対応qwen/qwen3.8-flash画像入力に対応qwen/qwen3.7-plus画像入力に対応qwen/qwen-flashデフォルトで思考なし、テキストのみQwen モデルは Alibaba Cloud Model Studio(百煉)から提供されており、中国サイト(aliyun)と国際サイト(alicloud)の 2 つのプロバイダーがあります。デフォルトでは自動で選択されます。指定方法はプロバイダールーティングを参照してください。
呼び出し例
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/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.8 Flash はデフォルトで約 5800 トークン思考して約 1.5 分、Qwen3.6 Flash はデフォルトで 3 万トークン以上思考して 4 分以上かかりました。思考を無効にすると、どちらも数秒で応答しました。
思考の長さを制限する
思考は必要だが所要時間と費用を抑えたい場合は、thinking_budget(思考トークンの上限)を渡します。
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/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 コンテンツブロックを使います。
import base64
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/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.io/anthropic です。
https://api.ofox.io/anthropicqwen/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 で確認でき、ヒットした部分はキャッシュ読み取り単価で課金されます。キャッシュはベストエフォートで、プレフィックスが同じリクエストでもヒットしない場合があります。
よくあるエラー
その他の共通エラーは Error Handling を参照してください。
公式ドキュメント
- Alibaba Cloud Model Studio · モデル一覧
- Alibaba Cloud Model Studio · 深い思考
- Alibaba Cloud Model Studio · OpenAI 互換
公式ドキュメントは 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.io/anthropic に設定し、モデルに qwen/qwen3.8-max などの Qwen3.x シリーズのモデルを指定してください。Qwen Plus は Anthropic API に対応していません。
Qwen の reasoning_content はどこにありますか?
ストリーミングのレスポンスでは delta.reasoning_content にあります。非ストリーミングのレスポンスでは message.reasoning_details にあるため、各要素の text を連結してください。