
GPT-6 Luna API で temperature を設定すると 400 になる理由と正しいリクエスト
GPT-6 Luna API で temperature を設定したい方へ。GPT-6 Luna と Sol が temperature と top_p に 400 を返す理由、正確なモデル ID、修正済みのリクエスト例を解説します。
GPT-6 Luna API で temperature を設定しようとすると、返ってくるのは落ち着いた回答ではなく、たいてい HTTP 400 です。OpenAI の GPT-6 移行ガイドは、reasoning effort が none 以外のときは temperature、top_p、top_logprobs を削除し、Chat Completions ではさらに logprobs も外すよう開発者に指示しています[1]。GPT-6 Luna の effort のデフォルトは medium なので[2]、effort を指定せずに temperature: 0.2 だけを追加したリクエストは、このルールに引っかかります。
この記事では、ルールの内容、Amazon Bedrock・Azure・OpenAI クライアントで開発者が公開しているエラー文字列そのもの、正しいモデル ID、そして reAPI の Chat Completions エンドポイント向けの修正前・修正後のリクエストを取り上げます。同じルールは GPT-6 Sol にも当てはまります。
要点まとめ
temperatureとtop_pは削除してください。 OpenAI のガイドは、reasoning effort がnoneでない場合、これらとtop_logprobsを削除するよう求めています[1]。Luna のデフォルト effort はmediumです[2]。- reAPI ではルールがもっと単純です。
gpt-6-lunaとgpt-6-solのどちらでも、temperature、top_p、frequency_penalty、presence_penaltyは400を返します。すべてのリクエストから外してください[3][4]。 temperature: 1でも失敗することがあります。 Langflow のバグ報告によると、Amazon Bedrock の Converse API は値が 1 であってもこのフィールドを拒否します[5]。- 代わりに使えるのは
reasoning_effortです。 値はnone、low、medium、high、xhigh、maxです[2]。autoという値はありません。 - モデル ID は表記どおり
gpt-6-luna(およびgpt-6-sol)です[2][3]。 - Microsoft Q&A の上位結果は別のバグです。 Azure AI Foundry で
reasoning.effortが拒否される件で、temperature の問題ではありません[6]。
GPT-6 Luna が temperature を拒否する理由
GPT-6 Luna は推論モデルです。OpenAI のモデルページには「Reasoning token support」と 6 段階の effort が記載され、デフォルトは medium です[2]。OpenAI の GPT-6 ガイドにある「Update API and model parameters」チェックリストでは、サンプリング系のパラメーターが独立した見出しの下にまとめられています[1]。
Unsupported parameters: When reasoning effort is not none, remove temperature, top_p, and top_logprobs. For Chat Completions, also remove logprobs.
条件をよく読んでください。ガイドは削除の条件をモデル名ではなく reasoning effort に結び付けています。同じガイドには、GPT-6 Sol と GPT-6 Luna は none をサポートし、GPT-6 Astra と GPT-6.1 Sol はサポートしないとも書かれています[1]。実際にはほとんどのリクエストがデフォルトの medium で動くため、temperature を含むリクエストの大半は失敗します。
reAPI のドキュメントはさらに厳しい結果を示しています。2026-09-24 にエンドポイントで実測した gpt-6-luna のパラメーター表では、temperature、top_p、frequency_penalty、presence_penalty が「Not supported by this model — sending any of them returns 400. Leave them out of the request.」とされています[3]。gpt-6-sol のページにも同じ行があります[4]。ドキュメントには effort が none の場合の例外は書かれていないので、例外を当てにせず、フィールドは削除してください。
開発者が実際に遭遇している 400 メッセージ
この問題の検索結果には、性質の異なる複数のエラーが混在しています。以下は公開の場で報告されているエラー文字列と、それぞれの発生元、そして対処法です。
| 報告されたエラー文字列 | 発生元 | 対処法 |
|---|---|---|
| "Only the default (1) value is supported." | Bedrock の OpenAI 互換エンドポイント。Langflow が temperature 0.1 を送信[5] | temperature を削除 |
| "This model doesn't support the temperature field. Remove temperature and try again." | Bedrock Converse。Langflow(デフォルト 0.7)と Phoenix(デフォルト 1)から[5][7] | temperature を削除し、続いて top_p も削除。Converse は top_p も同じように拒否します[5] |
| "Unsupported parameter: 'reasoning.effort' is not supported with this model." | Azure AI Foundry のエージェントと Foundry プロジェクトエンドポイント[6][8] | temperature の問題ではありません。FAQ の Azure の回答を参照 |
| "Function tools with reasoning_effort are not supported for gpt-6-luna in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'." | OpenAI Chat Completions。tools を送信する Ruby クライアントから[9] | OpenAI のモデルページに従い、Responses API を使うか effort を none にする[2] |
| "Invalid parameter: 'text.format' of type 'json_schema' is not supported with model version gpt-6-luna-2026-09-22" | Foundry Agent の定義[10] | Azure で報告された問題で、temperature の問題ではありません |
このうち 2 件の報告では、誰も指定していないのにフィールドが送られています。Phoenix の AWS プレイグラウンドはデフォルト設定により毎回 temperature: 1 で実行を開始し、そのスライダーは空にできません[7]。Langflow の Bedrock コンポーネントは、デフォルトで Temperature 0.7 と Top P 0.9 を送信します[5]。自分のコードで temperature を一切書いていないのにエラーが出る場合は、フレームワークのデフォルト値を確認してください。
reAPI で GPT-6 Luna API に temperature を設定する場合の修正前と修正後
reAPI は GPT-6 Luna を POST https://reapi.ai/api/v1/chat/completions で提供しており、reAPI キーを bearer トークンとして使います[3]。次のリクエストは旧来のチャットモデルの習慣をそのまま持ち込んでいるため、拒否されます。
# Rejected: temperature and top_p return 400 on gpt-6-luna
curl https://reapi.ai/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"messages": [
{ "role": "user", "content": "Classify this ticket as billing, bug or account access: I was charged twice." }
],
"temperature": 0.2,
"top_p": 0.9
}'修正版では両方のフィールドを削除し、モデルが実際に反映するパラメーターを指定します。reAPI では reasoning_effort が 6 段階すべてを受け付け、max_completion_tokens は 128,000 まで適用されます[3]。
# Accepted: no sampling fields, explicit effort and output cap
curl https://reapi.ai/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"messages": [
{ "role": "user", "content": "Classify this ticket as billing, bug or account access: I was charged twice." }
],
"reasoning_effort": "low",
"max_completion_tokens": 1000
}'推論トークンは max_completion_tokens に含まれ、出力として課金されます。そのため、表示される回答の分だけを見込んだ上限では、難しいプロンプトで回答が途中で切れることがあります[3]。現在のトークン単価は GPT-6 Luna モデルページ に掲載しています。
reAPI で両 GPT-6 モデルについてドキュメント化されている、その他のパラメーターは次のとおりです[3][4]。
| フィールド | gpt-6-luna と gpt-6-sol での結果 |
|---|---|
temperature、top_p、frequency_penalty、presence_penalty | 400。送信しないでください |
seed、stop、logprobs、verbosity | 受け付けられる(200)が効果なし |
n | 1 のみ。それより大きい値は 400 |
reasoning_effort | none、low、medium、high、xhigh、max。省略時は medium |
response_format | 適用される。strict 付きの json_schema も含む |
tools、tool_choice | effort が none のときだけでなく medium でも tool_calls が返る |
tools の行は、OpenAI 自身の Chat Completions のルールとは異なります。OpenAI のルールでは、function calling は reasoning_effort: "none" のときにしか使えません[2]。reAPI のエンドポイントでは、2026-09-24 の実測で、tools は medium でも tool_calls を返しました[3]。
temperature の代わりに使うもの
temperature はサンプリングのランダム性を制御するものでした。GPT-6 Luna にはその直接の代替手段がないため、temperature で何を実現したかったのかに合わせて制御手段を選んでください。
一貫した、パースしやすい出力がほしかった場合。 JSON スキーマと strict: true を指定した response_format を使います。reAPI は両 GPT-6 モデルでこれを適用します[3]。strict なスキーマは回答の形を固定でき、多くの temperature: 0 設定が本来狙っていたのはまさにそれです。
より速く、より安い回答がほしかった場合。 reasoning_effort を下げます。OpenAI の推論ガイドでは、分類や高速な検索のようにレイテンシが重要な処理には none、ツール利用・サポート業務・下書き作成には low が挙げられています[11]。推論トークンが減れば、課金される出力トークンも減ります[3]。
多様な回答がほしかった場合。 reAPI では seed も n も役に立ちません。seed は受け付けられても効果がなく、n は 1 に制限されています[3]。リクエストを分けて送るか、1 つのプロンプトで複数の候補を求めてください。
別の文体にしたかった場合。 system メッセージや developer メッセージでそう指示してください。サンプリング設定はもともとトーンを調整するには大雑把な手段であり、残された手段は指示文だけです。
Python でフィールドを取り除く
共通のヘルパーや設定がサンプリングのデフォルト値を差し込んでいる場合は、呼び出し元をすべて修正するのではなく、呼び出しの直前でそれらを取り除きます。次の例は、reAPI の Python サンプルと同様に、公式 OpenAI SDK の接続先を reAPI に向けています[3]。
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://reapi.ai/api/v1")
REJECTED = {"temperature", "top_p", "frequency_penalty", "presence_penalty"}
def gpt6_params(params: dict) -> dict:
"""Drop fields that gpt-6-luna and gpt-6-sol answer with 400."""
return {k: v for k, v in params.items() if k not in REJECTED}
params = {"temperature": 0.2, "top_p": 0.9, "max_completion_tokens": 1000}
resp = client.chat.completions.create(
model="gpt-6-luna",
messages=[{"role": "user", "content": "Summarize this refund policy in two sentences."}],
reasoning_effort="low",
**gpt6_params(params),
)
print(resp.choices[0].message.content)フィールドがどこから来ているのか分からない場合は、テスト中に最終的にシリアライズされたリクエストボディのキーをログに出してください。前述の Phoenix と Langflow の報告は、どちらも呼び出し側が書いていないデフォルト値が原因でした[5][7]。
よくある質問
GPT-6 Luna API で temperature を設定する方法(GitHub)
この件に関する GitHub の issue は、多くがデフォルトで temperature を送信するツール側のバグです。Langflow の Bedrock コンポーネントは temperature と top_p に 0.7 と 0.9 を送り[5]、Phoenix の AWS プレイグラウンドは毎回 temperature: 1 を送ります[7]。どちらの報告でも、フィールドを削除すればリクエストは通ると書かれています。自分のコードでの対処も同じで、GPT-6 Luna には temperature も top_p も送らないことです。
GPT-6 Luna API で temperature を設定する方法(Python)
設定はできません。client.chat.completions.create(...) から temperature と top_p を外し、代わりに reasoning_effort を渡してください。reAPI ではどちらのフィールドも 400 を返します[3]。共通設定から紛れ込む場合は、前述の Python ヘルパーで取り除けます。
GPT-6 Luna API の temperature 設定の例
前述の修正版 cURL リクエストがその例です。model に gpt-6-luna、messages 配列、reasoning_effort: "low"、max_completion_tokens: 1000 を指定し、temperature と top_p は含めていません。reAPI の GPT-6 Luna ドキュメントにあるフィールドのルールに従っています[3]。
GPT-6 Luna API のモデル名
API のモデル ID は gpt-6-luna です。OpenAI はこれをモデル ID かつ唯一のスナップショットとして掲載しており、「Use gpt-6-luna in your API requests.」と案内しています[2]。reAPI も同じ文字列を使い、gpt-5.6-luna や gpt-6-sol とは別のモデルとして扱います[3]。Azure のエラーメッセージには、gpt-6-luna-2026-09-22 というモデルバージョンも登場します[10]。
GPT-6 Luna API の reasoning を auto にできるか
auto という reasoning effort はありません。OpenAI は GPT-6 Luna の値として none、low、medium、high、xhigh、max を掲載しており、デフォルトは medium です[2]。モデルのデフォルトを使うには、reasoning_effort 自体を省略してください。OpenAI の推論ガイドでも auto は使われていますが、それは別の設定、つまり reasoning summaries と reasoning.context フィールドについてです[11]。
GPT-6 Luna の Azure での問題
Azure で最もよく引用されている問題は temperature ではありません。2026年9月29日付の Microsoft Q&A の投稿では、Foundry のエージェントが「Unsupported parameter: 'reasoning.effort' is not supported with this model」で失敗すると報告されています[6]。ある GitHub の issue はこれを Foundry プロジェクトエンドポイントで再現しており、そこでは通常の呼び出しが 500、effort を指定すると 400 を返す一方、リソースエンドポイントでは reasoning effort を指定しても動作します。報告者の回避策はリソースエンドポイントを呼び出すことで、2026年10月7日に確認した時点でこの issue はまだオープンでした[8]。
GPT-6 Sol ではどの effort を使うべきか
GPT-6 Sol も Luna と同じ 6 つの値を受け付け、デフォルトは medium です[4][12]。OpenAI の一般的な指針は、レイテンシが重要な処理には none、ツール利用や下書き作成には low、ほとんどのワークロードには medium、難しいデバッグや計画には high、そして評価で追加のレイテンシとコストに見合うと確認できた場合に限り xhigh です[11]。reAPI では、Sol も Luna と同様に temperature と top_p を拒否します[4]。
一度で通る GPT-6 Luna リクエストを送るには
正しい GPT-6 Luna リクエストには、gpt-6-luna を指定した model、messages 配列、意図して選んだ reasoning_effort、そして推論分の余裕を持たせた出力上限が含まれます。temperature、top_p、penalty 系のフィールドは含みません。GPT-6 Luna API で temperature を設定する方法を探してこのページに来たのであれば、答えは「設定するのをやめる」です。コストとレイテンシは effort で、出力の形は strict な JSON スキーマで制御し、フレームワークがデフォルトで何を追加しているかを確認してください。同じリクエストの形は GPT-6 Sol でも使えます。パラメーターは GPT-6 Luna ドキュメント と GPT-6 Sol ドキュメント に、現在の料金は GPT-6 Luna と GPT-6 Sol のモデルページに掲載しています。
参考資料
- OpenAI. Using GPT-6. 2026年10月取得:developers.openai.com/api/docs/guides/latest-model
- OpenAI. GPT-6 Luna model page. 2026年10月取得:developers.openai.com/api/docs/models/gpt-6-luna
- reAPI. gpt-6-luna API documentation. 2026年10月取得:reapi.ai/docs/gpt-6-luna
- reAPI. gpt-6-sol API documentation. 2026年10月取得:reapi.ai/docs/gpt-6-sol
- Langflow on GitHub. Amazon Bedrock Converse: OpenAI GPT-6 Sol/Luna/Astra calls fail with 400 because Temperature and Top P are sent by default (#15349). 2026年10月取得:github.com/langflow-ai/langflow/issues/15349
- Microsoft Q&A. GPT-6-Luna agents fail with Unsupported parameter: 'reasoning.effort' error. 2026年10月取得:learn.microsoft.com/en-us/answers/questions/6018360
- Arize Phoenix on GitHub. Playground can't run OpenAI GPT-6 Sol/Luna/Astra on AWS Bedrock: default temperature=1 is always sent and rejected with 400 (#16430). 2026年10月取得:github.com/Arize-ai/phoenix/issues/16430
- Azure SDK for Python on GitHub. azure-ai-projects: gpt-6-luna returns 500 on project endpoint, works on resource endpoint (#49169). 2026年10月取得:github.com/Azure/azure-sdk-for-python/issues/49169
- redmine_ai_helper on GitHub. Chat fails with gpt-6 models (gpt-6-luna, gpt-6-sol): "Function tools with reasoning_effort are not supported" (#480). 2026年10月取得:github.com/haru/redmine_ai_helper/issues/480
- Microsoft Agent Framework on GitHub. Invalid parameter: 'text.format' of type 'json_schema' is not supported with model version gpt-6-luna-2026-09-22 (#8718). 2026年10月取得:github.com/microsoft/agent-framework/issues/8718
- OpenAI. Reasoning models. 2026年10月取得:developers.openai.com/api/docs/guides/reasoning
- OpenAI. GPT-6 Sol model page. 2026年10月取得:developers.openai.com/api/docs/models/gpt-6-sol
関連記事
- reAPI. GPT-6 Sol vs GPT-6 Luna. reapi.ai/blog/gpt-6-sol-vs-luna
- reAPI. GPT-6 Luna API pricing. reapi.ai/blog/gpt-6-luna-api-pricing
著者

カテゴリ
他の記事

CLAUDE.md:コーディングエージェントをシンプルに強化するファイル
CLAUDE.mdの役割、コーディングエージェントを劇的に変えた4つのシンプルなルール、ファイルに入れるべき内容、実用的なプロジェクトテンプレートの作り方を解説します。


Seedance 2.5 のコンテンツフィルタリング:拒否原因の診断
送信レスポンス、タスクエラー、ルーティング設定、確定使用量から Seedance 2.5 の拒否原因を切り分け、パラメータ検証と安全審査を区別する方法。


画像API のコンテンツフィルタ:拒否が起きるメカニズム
画像API のフィルタリングは複数層で動作します。同じプロンプトが一方のホストを通過して別のホストで失敗することもありますが、設定に関わらず変わらない境界線もあります。
