# GPT-6 Sol — /chat/completions

GPT-6 Sol による OpenAI 互換のチャット補完です。GPT-6 系のうち複雑なコーディングとエージェント型ワークフロー向けのモデルで、1,050,000 トークンのコンテキスト、最大 128,000 トークンの出力、none から max までの reasoning_effort、画像入力、ツール呼び出しに対応します。model に gpt-6-sol を指定してください。同じモデルは /v1/responses でも提供しています。キャッシュ済みの入力は入力単価の 10 分の 1 で精算されます。 このモデルは推論の要約も返します。非ストリーミングでは choices[].message.reasoning_content、ストリーミングでは choices[].delta.reasoning_content に入ります。答え自体は常に content にあり、推論と混ざることはないので、content だけを読むクライアントは変更不要です。reasoning_effort を省略した場合、ゲートウェイはモデル既定の medium 等級で要求し、それでも要約は返ります。課金について：思考トークンは出力単価で課金され、usage.completion_tokens に含まれます。そのうち何トークンが推論だったかは usage.completion_tokens_details.reasoning_tokens で分かります。このフィールドを読むかどうかに関わらず課金されます。なお OpenAI が公開するのは推論の要約だけで、生の思考過程は出さないため、この項目は通常短くなります。 注意：このモデルは ChatGPT サブスクリプション経由の上流で提供されており、temperature / top_p / max_tokens / max_completion_tokens / frequency_penalty / presence_penalty は受け付けません。送ってもエラーにはならず、黙って無視されます。思考の深さは reasoning_effort で、出力の長さはプロンプトの書き方で調整してください。画像入力には base64 の data: URI を使ってください（公開画像の URL は上流で取得がタイムアウトすることがあります）。

**エンドポイント:** `POST https://nezhagate.com/v1/chat/completions`

## 認証
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## リクエストボディ
| パラメータ | 種別 | 必須 | 説明 |
| --- | --- | --- | --- |
| `model` | string | はい | モデル ID。ここでは gpt-6-sol です。 |
| `messages` | array | はい | メッセージの配列。各要素は role（system/user/assistant）と content を持ちます。content は文字列のほか、画像を理解させる場合は {type:text} と {type:image_url} を並べた配列にできます（マルチモーダル / ビジョン）。 |
| `stream` | boolean | いいえ | SSE でストリーミング出力します。既定は false です。 |
| `web_search` | boolean | いいえ | true にするとウェブ検索を有効にします。モデルが答える前に、ゲートウェイがリアルタイムの検索結果でプロンプトを補強し、出典も添えます。tools に {"type":"web_search"} を入れても同じように動きます。 |
| `reasoning_effort` | string | いいえ | 推論の強さ：none / low / medium / high / xhigh / max。none は思考を行わず最速ですが、複数段階の問題では誤答することがあります。省略した場合、ゲートウェイはモデル自身の既定である medium で要求し、思考の要約を message.reasoning_content に返します。minimal は low として扱います。 |
| `tools` | array | いいえ | 関数呼び出し。OpenAI 標準の tools 配列をそのまま渡します。モデルが呼び出すと判断した場合、finish_reason=tool_calls とともに tool_calls が返ります。特定のツールを強制したいときは tool_choice と組み合わせてください。 |
| `response_format` | object | いいえ | 構造化出力。{"type":"json_object"} を渡すと、モデルは妥当な JSON だけを返します。 |

## リクエスト例
```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gpt-6-sol", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
```

## レスポンス
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gpt-6-sol",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "**Weighing the options** ... (a summary of how the model reasoned)",
        "content": "Hello!"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 11,
    "completion_tokens": 105,
    "total_tokens": 116,
    "completion_tokens_details": {"reasoning_tokens": 43}
  }
}
```

## 画像入力（ビジョン）
メッセージの content 配列に画像を入れると、モデルがそれを解析します（画像についての質問、文字の読み取り / OCR など）。image_url には公開画像のリンクか、インラインの base64 データ URL（data:image/png;base64,...）を指定できます。マルチモーダル対応モデル（gpt-5.5、gemini シリーズなど）で利用できます。

```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gpt-6-sol", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```