Google Gemini 3.1 Pro による OpenAI 互換のチャット補完です。ストリーミングと長いコンテキストに対応します。model に gemini-3.1-pro を指定してください。既定は low 等級で、reasoning_effort=high を指定すると high 等級になります。このモデルは推論の要約も返します。非ストリーミングでは choices[].message.reasoning_content、ストリーミングでは choices[].delta.reasoning_content に入ります。答え自体は常に content にあり、推論と混ざることはないので、content だけを読むクライアントは変更不要です。課金について:思考トークンは出力単価で課金され、usage.completion_tokens に含まれます。そのうち何トークンが推論だったかは usage.completion_tokens_details.reasoning_tokens で分かります。コンテンツブロックについて:Google はモデルを動かす前にプロンプトを審査します。ブロックされたプロンプトは出力を生まず、課金もされません。ゲートウェイは自動的にプロンプトを整形し直して 1 度だけ再試行し、それでも拒否された場合にのみエラーを返します。繰り返しブロックされる場合は、system メッセージを最初の user メッセージにまとめてみてください。
📥 コンテキスト長(最大入力):約 1,000,000 トークン(100 万トークン級の長いコンテキスト)。
Playground で試す →認証
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
コンソールで API Key を作成すると利用を開始できます。
リクエストボディ
| パラメータ | 種別 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル ID。ここでは gemini-3.1-pro です。 |
| messages | array | はい | メッセージの配列。各要素は role(system/user/assistant)と content を持ちます。content は文字列のほか、画像を理解させる場合は {type:text} と {type:image_url} を並べた配列にできます(マルチモーダル / ビジョン)。 |
| stream | boolean | いいえ | SSE でストリーミング出力します。既定は false です。ストリーミング中、推論は choices[].delta.reasoning_content に少しずつ届き、答えは delta.content に入り、最後に data: [DONE] で終わります。注意:ストリーミング呼び出しでは上流が思考トークン数を個別に報告しないため reasoning_tokens は 0 になります。思考分は completion_tokens に含まれているので、費用は非ストリーミングと同じです。 |
| temperature | number | いいえ | サンプリング温度。0〜2 の範囲で指定します。 |
| max_tokens | integer | いいえ | 生成するトークン数の上限。 |
| web_search | boolean | いいえ | true にするとウェブ検索を有効にします。モデルが答える前に、ゲートウェイがリアルタイムの検索結果でプロンプトを補強し、出典も添えます。tools に {"type":"web_search"} を入れても同じように動きます。 |
| reasoning_effort | string | いいえ | 強度の等級:low(既定。より速く安価)または high(より深い推論。Preview 単価で課金)。接尾辞付きのモデル名 gemini-3.1-pro-low / gemini-3.1-pro-high も使えます。旧 ID の gemini-3.1-pro-preview は、現行価格のまま high 等級と同じ扱いです。 |
リクエスト例
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'レスポンス
{
"id": "chatcmpl_xxx",
"object": "chat.completion",
"model": "gemini-3.1-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
"content": "70"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 2187,
"total_tokens": 2235,
"completion_tokens_details": {"reasoning_tokens": 1371}
}
}画像入力(ビジョン)
メッセージの content 配列に画像を入れると、モデルがそれを解析します(画像についての質問、文字の読み取り / OCR など)。image_url には公開画像のリンクか、インラインの base64 データ URL(data:image/png;base64,...)を指定できます。マルチモーダル対応モデル(gpt-5.5、gemini シリーズなど)で利用できます。
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "この画像には何が写っていますか?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'エラーコード
| Code | 説明 |
|---|---|
| 401 | API Key が欠落または無効 |
| 402 | 残高不足または Key が上限超過 |
| 400 | モデルまたはパラメータが非対応 |
| 429 | 上流のレート制限 |
| 502 | すべての上流回線が失敗 |