DEV Community

Cover image for GPT-6.1 Sol API の使い方
Akira
Akira

Posted on Originally published at apidog.com

GPT-6.1 Sol API の使い方

GPT-6.1 Sol APIを呼び出すには、https://api.openai.com/v1/responsesへ"model": "gpt-6.1-sol"を指定し、APIキーをBearerトークンとして含めたPOSTリクエストを送信します。GPT-6 Solと同じく、100万トークンあたり入力は2ドル、出力は10ドルです。キャッシュされた入力は0.20ドルから0.10ドルに下がります。gpt-6-solからの移行はほぼモデルIDの置換ですが、reasoning.effortは破壊的変更です。GPT-6.1 Solはnoneとminimalを受け付けないため、これらを使用していたリクエストはlowへ移行し、再評価する必要があります。

今すぐApidogを試す

OpenAIは2026年9月29日のDevDayでGPT-6.1 Solをリリースしました。DevDay 2026のまとめでは他の発表を、GPT-6.1 Solとは何かではベンチマークを確認できます。この記事では、最初のリクエスト、エフォートレベルの選び方、移行変更点、Batch・Flex・Fastの料金、さらにApidogで両モデルを並行実行する回帰テストの手順を説明します。

GPT-6 Sol vs GPT-6.1 Sol: APIの変更点

仕様の大部分は同じです。GPT-6.1 Solモデルページ、GPT-6 Solモデルページ、およびOpenAIのGPT-6移行ガイダンスに基づく主な差分を確認しましょう。

項目 gpt-6-sol gpt-6.1-sol 対応策
1Mトークンあたりの入出力(Standard) $2 / $10 $2 / $10 不要
1Mトークンあたりのキャッシュされた入力 $0.20 $0.10 キャッシュコストを再計算する
1Mトークンあたりのキャッシュ書き込み $2.50 $2.50 不要
コンテキストウィンドウ / 最大入力 / 最大出力 1,050,000 / 922,000 / 128,000 1,050,000 / 922,000 / 128,000 不要
知識カットオフ 2026年4月20日 2026年4月30日 日付依存の評価を再実行する
reasoning.effort none、low、medium(デフォルト)、high、xhigh、max low、medium(デフォルト)、high、xhigh、max noneをlowへ置き換えて評価する
Chat Completionsでの関数呼び出し reasoning_effort: "none"の場合のみ 非対応 ツール呼び出しをResponses APIへ移行する
エンドポイント Chat Completions、Responses、Batch 同じ 不要
レート制限 ティア1: 500 RPM / 500K TPM、ティア5: 15,000 RPM / 40M TPM 同じ 不要

GPT-6 Solのページは現在、「新しいSolモデル」としてGPT-6.1 Solへ読者を誘導しています。

最初のGPT-6.1 Solリクエストを送信する

まず、APIキーを環境変数に設定します。

export OPENAI_API_KEY="your_api_key"
Enter fullscreen mode Exit fullscreen mode

次に、Responses APIへリクエストを送信します。

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-6.1-sol",
    "reasoning": {"effort": "medium"},
    "input": "List three ways a webhook retry policy can create duplicate orders. One line each."
  }'
Enter fullscreen mode Exit fullscreen mode

Python SDKでは、同じOPENAI_API_KEY環境変数が自動的に読み込まれます。

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6.1-sol",
    reasoning={"effort": "medium"},
    input="List three ways a webhook retry policy can create duplicate orders. One line each.",
)

print(response.output_text)
print(response.usage)
Enter fullscreen mode Exit fullscreen mode

実装時は、レスポンスの次の4項目を確認してください。

  • status

    成功時はcompletedです。出力予算を使い切るとincompleteが返され、incomplete_details.reasonはmax_output_tokensになります。表示テキストがない場合もあります。推論ガイドでは、実験時に推論と出力のため少なくとも25,000トークンを確保することを推奨しています。

  • output

    配列として返されます。回答はtype: "message"の項目に含まれ、そのコンテンツにoutput_textがあります。配列インデックスに依存せず、typeで対象を判定してください。

  • usage.output_tokens

    推論トークンを含み、出力レートで課金されます。推論に使われたトークン数はusage.output_tokens_details.reasoning_tokensで確認できます。

  • usage.input_tokens_details

    cached_tokensとcache_write_tokensを返します。キャッシュコストの削減効果を確認する際に使用します。

ツールを利用するワークフローではResponses APIを使用してください。GPT-6.1 SolがChat Completionsで対応するのは、ツールを使用しないリクエストのみです。Responses APIガイドも参照してください。

推論のエフォートレベルを選択する

reasoning.effortはコストと品質を調整する主要なパラメータです。省略時のデフォルトはmediumです。

まずは用途別に以下を開始点として使い、実際のプロンプトと出力で測定してください。

エフォート 開始点として推奨される用途 OpenAIがGPT-6.1 Solについて報告していること
low チャット、抽出、分類、noneで実行していた処理 ユーザーが指摘した会話において、事実誤りを含むレスポンスが11.4%(GPT-6 Sol)から7.7%に減少
medium(デフォルト) エージェント的な自動化、ツール呼び出しワークフロー AutomationBench 1.0.6でClaude Opus 5.5に対して約3分の1のコストで+2.2ポイント、同一設定のGPT-6 Solに対して+4.8ポイント
high 難しいデバッグ、詳細なプランニング 設定固有の主張なし
xhigh 洗練された成果物、長時間の非同期実行 設定固有の主張なし
max コンピュータ使用、難解な科学タスク OSWorld 2.0でGPT-6 Sol(max設定)に対して半額以下のコストで+7ポイント。Terminal-Bench Science 0.1ではタスクあたり$5.47、Opus 5.5は$23.21、GPT-6 Astraは$23.80

モデル選択ガイドでは、mediumは複雑な技術作業や修正を想定した調整済み成果物、xhighは相反する証拠から構築する意思決定や洗練された成果物に対応する設定として説明されています。設定ごとの追加結果はOpenAIの発表投稿で確認できます。

ただし、事実性のデータセットは以前にエラーを指摘された会話であり、一般的なトラフィックを表すものではありません。また、Terminal-Bench ScienceではGPT-6 Astraが最高スコアの68.1%を記録しているため、OpenAIは最も難しい科学研究にAstraを推奨しています。

noneを使っていたレイテンシ重視の処理は、まずlowへ置き換えて計測してください。推論ガイドでは、lowは「わずかなレイテンシ増加を伴う」効率的な推論と説明されています。

会話の途中でエフォートを変更しつつプロンプトキャッシュを維持したい場合は、リクエストレベルのreasoning.effortを直接変更するのではなく、configuration_update入力項目を追加します。

gpt-6-solから移行する: 4つのコード変更点

移行は次の順番で進めると安全です。

  1. モデルIDを置き換える gpt-6-solをgpt-6.1-solへ変更します。モデルIDはコードに直接書かず、環境変数または設定ファイルに置くとロールバックが容易です。
   export MODEL_ID="gpt-6.1-sol"
Enter fullscreen mode Exit fullscreen mode
  1. noneとminimalをlowへ再マッピングする

    GPT-6.1 Solはnoneとminimalをサポートしません。noneはlowへ置き換えます。minimalを使っていた場合も、まずlowから開始し、代表的なタスクで比較してください。noneを送信するとHTTP 400になるため、本番トラフィックを切り替える前に修正が必要です。

  2. サンプリングパラメータを削除する

    エフォートがnone以外の場合、temperature、top_p、top_logprobs、およびChat Completionsのlogprobsを削除してください。特にGPT-6 Solでtemperatureとnoneを組み合わせていたコードは見直しが必要です。

  3. Chat Completionsのツール呼び出しをResponses APIへ移行する

    GPT-6 Solではreasoning_effort: "none"の場合に限り、Chat Completionsで関数呼び出しが可能でした。GPT-6.1 Solにはこの組み合わせに対応する設定がありません。ツールを使う処理はResponses APIへ統一してください。

移行後は、最新性に依存する評価を再実行してください。知識カットオフが2026年4月20日から4月30日へ変わります。AstraからSolへ移行する場合は、AstraからSolへの移行ガイドも確認してください。

Batch、Flex、Fast、およびキャッシュされた入力の料金

GPT-6.1 SolはGPT-6 Solと同じティア構成を維持していますが、キャッシュされた入力の料金は半額です。以下はAPI料金ページの100万トークンあたりの料金です。

ティア 入力 キャッシュされた入力 キャッシュ書き込み 出力
Standard $2.00 $0.10 $2.50 $10.00
Batch $1.00 $0.05 $1.25 $5.00
Flex $1.00 $0.05 $1.25 $5.00
Fast $4.00 $0.20 $5.00 $20.00
Standard、プロンプトが272K入力トークン超 $4.00 $0.20 $5.00 $15.00

モデルページによると、272K入力トークンを超えるプロンプトはGPT-6 Solと同じルールで請求されます。入力とキャッシュの料金は2倍、出力料金は1.5倍です。

サービスティアはリクエスト単位で指定します。

{
  "model": "gpt-6.1-sol",
  "service_tier": "flex",
  "input": "..."
}
Enter fullscreen mode Exit fullscreen mode

Fastを使用する場合はservice_tier: "fast"を指定します。"priority"もエイリアスとして受け付けられます。

{
  "model": "gpt-6.1-sol",
  "service_tier": "fast",
  "input": "..."
}
Enter fullscreen mode Exit fullscreen mode

FastモードはEUデータレジデンシーでは利用できません。GPT-6.1 Sol向けのUltrafastは「近日公開」であり、現在はGPT-6 Astraでのみ広く利用可能です。詳細はOpenAI Ultrafastモードを参照してください。夜間処理にはOpenAI Batch APIガイドが役立ちます。

キャッシュコストを再計算する

このアップグレードで最も直接的にコスト削減が見込めるのはプロンプトキャッシュです。プロンプトキャッシュガイドによると、GPT-6.1 Solのキャッシュ読み取りは入力レートの0.05倍です。GPT-6 Solでは0.1倍でした。キャッシュ書き込みは両モデルとも入力レートの1.25倍です。

たとえば、50,000トークンのシステムプロンプトを1,000リクエストで再利用する場合を考えます。

  • 1回のキャッシュ書き込み: 両モデルとも$0.125
  • 999回のキャッシュ読み取り:
    • GPT-6 Sol: $9.99
    • GPT-6.1 Sol: $5.00

キャッシュ可能なプレフィックスの最小値は1,024可視トークンです。キャッシュされたプレフィックスは、最後の書き込みまたは再利用から少なくとも30分間有効です。実装パターンについてはGPT-6プロンプトキャッシュを参照してください。

Apidogで入れ替えテストを実行する

定価だけで本番環境を切り替えないでください。同一の保存済みリクエストを両方のモデルIDへ送信し、出力、トークン使用量、コストを比較します。Apidogでは次の手順で実行できます。

  1. 環境変数を作成します。
  • OPENAI_API_KEY: シークレットとして保存
  • MODEL_ID: 初期値はgpt-6-sol
  • EFFORT: 初期値はmedium
  1. 以下のリクエストを保存します。
   POST https://api.openai.com/v1/responses
Enter fullscreen mode Exit fullscreen mode

ヘッダー:

   Authorization: Bearer {{OPENAI_API_KEY}}
Enter fullscreen mode Exit fullscreen mode

ボディ:

   {
     "model": "{{MODEL_ID}}",
     "reasoning": {"effort": "{{EFFORT}}"},
     "max_output_tokens": 25000,
     "input": "Return a JSON object with keys risk and fix for this policy: retry any 5xx three times with no idempotency key."
   }
Enter fullscreen mode Exit fullscreen mode
  1. 次のアサーションを追加します。
  • HTTPステータスが200
  • $.statusがcompleted
  • $.output[*].typeにmessageが含まれる
  • $.usage.output_tokensが0より大きい
  • $.usage.output_tokens_details.reasoning_tokensが存在する
  • アプリケーションが依存する出力形式を満たす。たとえば、パース対象のキーを含む有効なJSONであること
  1. usageをドルへ変換する後処理スクリプトを追加します。
   const u = pm.response.json().usage;
   const d = u.input_tokens_details || {};
   const cached = d.cached_tokens || 0;
   const writes = d.cache_write_tokens || 0;
   const model = pm.environment.get("MODEL_ID");
   const cachedRate = model === "gpt-6.1-sol" ? 0.10 : 0.20;

   const cost = (
     (u.input_tokens - cached - writes) * 2 +
     cached * cachedRate +
     writes * 2.5 +
     u.output_tokens * 10
   ) / 1e6;

   console.log(model, "cost per call $", cost.toFixed(5));
Enter fullscreen mode Exit fullscreen mode
  1. MODEL_ID=gpt-6-solで実行した後、MODEL_ID=gpt-6.1-solへ変更して同じリクエストを実行します。

比較対象として、少なくとも以下を記録してください。

  • reasoning_tokens
  • output_tokens
  • 出力内容
  • 出力形式のアサーション結果
  • 1リクエストあたりの計算コスト

noneから移行する場合は、ベースラインをnone、候補をlowとして比較します。

CIで両モデルを実行する

保存したリクエストと実際のプロンプトをテストシナリオへ移動し、Apidog CLIから実行します。--env-varを使うと実行単位で変数を上書きできます。

npm install -g apidog-cli

apidog run --access-token "$APIDOG_ACCESS_TOKEN" -t "$SCENARIO_ID" -e "$ENV_ID" \
  --env-var "MODEL_ID=gpt-6-sol" -r cli,junit

apidog run --access-token "$APIDOG_ACCESS_TOKEN" -t "$SCENARIO_ID" -e "$ENV_ID" \
  --env-var "MODEL_ID=gpt-6.1-sol" -r cli,junit
Enter fullscreen mode Exit fullscreen mode

アサーションが失敗するとジョブも失敗し、JUnitレポートで両方の実行結果を確認できます。実行ごとに変わる出力の検証方法は、非決定性AIエージェントのテストを参照してください。

よくある質問

GPT-6.1 SolはGPT-6 Solより高価ですか?

いいえ。どちらも100万トークンあたり入力2ドル、出力10ドルです。GPT-6.1 Solのキャッシュされた入力は$0.10で、GPT-6 Solの$0.20より安価です。キャッシュを多用するワークロードではコスト削減が見込めます。

reasoning.effort: "none"はどうすればよいですか?

GPT-6.1 Solはnoneとminimalをサポートしていません。どちらもlowへマッピングし、temperatureとtop_pを削除してから、切り替え前に評価を再実行してください。

GPT-6.1 SolをChat Completionsで利用できますか?

はい。ツールを使用しないリクエストであれば利用できます。ツール呼び出しにはResponses APIが必要です。

GPT-6.1 Solの無料APIティアはありますか?

いいえ。API呼び出しは最初のリクエストからトークンごとに課金されます。GPT-6.1 Solは無料ですか?で最も安価な利用ルートを確認できます。

次のステップ

最初のリクエストを保存し、現在のエフォートレベルでgpt-6-solを実行します。次にgpt-6.1-solへ切り替え、実トラフィック由来のプロンプトでusage、出力、出力形式を比較してください。

両方の実行結果をCIで再現可能なアサーションとして保持するには、Apidogをダウンロードしてください。Anthropicも比較対象に含める場合は、GPT-6.1 Sol vs Claude Sonnet 5.5も参照してください。

Top comments (0)