Text
Gemini 3.1 Pro
ネイティブ Gemini リクエスト、マルチモーダル入力、思考、ツール、キャッシュ、ストリーミングを解説します。モデルの上限と検証状況も記載しています。
gemini-3.1-pro-preview をネイティブ Gemini 形式で使用します。モデルページには Playground と現在の料金があり、モデルのバリアントガイドでは 2 つの公式 ID を説明しています。
モデル ID
| モデル ID | 入力上限 | デフォルトの努力度 |
|---|---|---|
gemini-3.1-pro-preview | 1,048,576 トークン | high |
クイックサンプル
curl https://api.seedrouter.ai/v1beta/models/gemini-3.1-pro-preview:generateContent \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Explain a mutex in one sentence."}]}],"generationConfig":{"thinkingConfig":{"thinkingLevel":"low"},"maxOutputTokens":1024}}'モデルは URL に指定します。contents は必須です。応答にはネイティブの candidates、finishReason、usageMetadata が含まれます。会話履歴には、thoughtSignature を含むコンテンツの全パートを保持してください。
エンドポイント
| 操作 | エンドポイント |
|---|---|
| JSON 応答 | POST /v1beta/models/gemini-3.1-pro-preview:generateContent |
| サーバー送信イベント | POST /v1beta/models/gemini-3.1-pro-preview:streamGenerateContent?alt=sse |
OpenAPI 仕様には、すべてのネストしたリクエスト・応答スキーマを記載しています。省略可能なフィールドを指定しない場合は、API のデフォルトが適用されます。SeedRouter は、未知のフィールドの除外、未対応フィールドの削除、モデルのパラメータ値の検証を行わず、送信された本文を転送します。リクエストを受理するかどうかは Gemini API が判断します。
リクエストパラメータ
URL によりモデルは gemini-3.1-pro-preview に固定されます。リクエスト仕様には 12 個のトップレベルフィールドがあります。必須と記載したもの以外は省略可能です。省略と JSON の null は異なります。公式スキーマが許可する箇所では、null を許容する任意の JSON がそのまま保持されます。
| フィールド | 型 | 必須 | デフォルトと制約 |
|---|---|---|---|
contents | object[] | はい | 空でない会話。各コンテンツに空でない parts が必要 |
systemInstruction | object | いいえ | テキストのみのパート。ユーザー識別情報は自動挿入しません |
generationConfig | object | いいえ | 次の表にある生成パラメータ |
tools | object[] | いいえ | 関数宣言と組み込みツールの設定 |
toolConfig | object | いいえ | 関数選択と検索の設定 |
safetySettings | object[] | いいえ | カテゴリごとに 1 件。カテゴリの重複は不可 |
cachedContent | string | いいえ | 既存の cachedContents/{id} リソース。対応するアクセス権が必要 |
serviceTier | string | いいえ | unspecified、standard、flex、priority。通常処理は standard |
labels | object | いいえ | 値は文字列。キーと値は小文字で、それぞれ最大 63 Unicode コードポイント |
model | string | いいえ | 任意のリソース名。実際のモデルは URL により決まります |
store | boolean | いいえ | 汎用のリクエスト保存設定。モデル固有の効果は未検証 |
continuationToken | string | いいえ | 汎用の不透明なトークン。継続生成は 3.1 Pro の確立された機能ではありません |
生成パラメータ
generationConfig 内のフィールド | 型 | デフォルトと制約 |
|---|---|---|
maxOutputTokens | integer | 思考を含め 1–65,536。モデルのデフォルトは 65,536 |
thinkingConfig | object | thinkingLevel: low、medium、high(デフォルトは high)。大文字表記も受理されます。includeThoughts: boolean、デフォルトは false。thinkingBudget: integer、thinkingLevel と併用不可。モデル固有の数値範囲は確立されていません |
temperature | number | 0–2。Google はデフォルトの 1.0 を推奨 |
topP | number | 0–1。省略するとモデルのデフォルトを使用 |
topK | integer | 省略可能。モデル固有の設定可能な範囲は確立されていません |
candidateCount | integer | 1 のみ |
stopSequences | string[] | 最大 5 個のシーケンス |
responseMimeType | string | デフォルトは text/plain。従来の JSON スキーマ出力には application/json が必要 |
responseSchema | object | 公式スキーマ方言。responseJsonSchema と併用不可 |
responseJsonSchema | JSON | JSON Schema。responseSchema と併用不可 |
responseFormat | object | テキスト形式の設定。text.mimeType と省略可能な text.schema。スキーマには JSON MIME タイプが必要 |
responseModalities | string[] | テキストのみ: TEXT。空の場合もテキスト |
mediaResolution | enum | MEDIA_RESOLUTION_UNSPECIFIED、および LOW、MEDIUM、HIGH に MEDIA_RESOLUTION_ 接頭辞を付けた値 |
seed | integer | 符号付き 32 ビット値。モデル固有の決定的な動作は未検証 |
presencePenalty | number | 汎用フィールド。モデル固有の効果と範囲は未検証 |
frequencyPenalty | number | 汎用フィールド。モデル固有の効果と範囲は未検証 |
responseLogprobs | boolean | 汎用フィールド。モデル固有の利用可否は未検証 |
logprobs | integer | 0–20。responseLogprobs: true が必要。モデルの対応は未検証 |
enableEnhancedCivicAnswers | boolean | 汎用フィールド。モデルの対応は未検証 |
enableAffectiveDialog | boolean | 汎用フィールド。モデルの対応は未検証 |
audioTranscriptionConfig | object | 汎用フィールド。モデル固有のオプションは未検証 |
translationConfig | object | 汎用フィールド。モデル固有のオプションは未検証 |
OpenAPI ドキュメントには、すべてのメッセージのネストした型、列挙値、必須プロパティ、文書化された範囲を記載しています。スキーマは公式パラメータを説明するもので、SeedRouter のリクエスト許可リストではありません。呼び出し元が指定したフィールドと値は保持されます。スキーマに適合することは、すべてのモデルやアカウントで対応している証拠にはなりません。このモデルは minimal の思考と Agentic Video 処理には対応していません。
構造化出力
{
"contents": [{"parts": [{"text": "Return a JSON object with ok set to true."}]}],
"generationConfig": {
"thinkingConfig": {"thinkingLevel": "low"},
"maxOutputTokens": 1024,
"responseMimeType": "application/json",
"responseJsonSchema": {
"type": "object",
"properties": {"ok": {"type": "boolean"}},
"required": ["ok"]
}
}
}従来の responseSchema と responseJsonSchema は併用できません。どちらも responseMimeType: "application/json" が必要です。新しい responseFormat.text のスキーマでも、同様に JSON を指定する必要があります。このメッセージでは REST の列挙値表記(APPLICATION_JSON と TEXT_PLAIN)を使ってください。リクエストは変更せずに転送され、メディアの MIME タイプと任意の関数 JSON は書き換えません。
関数と組み込みツール
tools[].functionDeclarations に名前と、parameters または parametersJsonSchema のいずれか一方を指定してください。応答スキーマにも同じ排他ルールが適用されます。関数選択は toolConfig.functionCallingConfig に設定します。allowedFunctionNames には、ANY または VALIDATED と、宣言済みの関数名が必要です。
通常モデルは関数呼び出しに対応しており、customtools バリアントは必須ではありません。返された関数をアプリケーションで実行し、その結果を次の会話ターンで渡します。元の thoughtSignature、関数呼び出し、関数応答をそれぞれ保持してください。不透明な関数引数をシリアライズする際は、数値の識別子を丸めないでください。
Google はモデルの機能として、Search、Maps、コード実行、URL コンテキストを挙げています。File Search は AI Studio のみに記載されています。既存のキャッシュとファイル検索リソースには、リクエストを処理する認証情報でのアクセス権が必要です。Computer Use とネイティブ MCP 設定は汎用スキーマにありますが、このモデルでの利用可否は確立されていません。Playground は独自の関数を実行しません。
マルチモーダル入力と安全性
contents[].parts[] の各項目には、テキスト、インラインメディア、ファイル参照、関数呼び出し・応答、実行パートのいずれか 1 つのペイロードを含めます。シグネチャやメディアメタデータを追加で含めることもできます。入力はテキスト、画像、音声、動画、PDF に対応し、出力はテキストのみです。
インラインバイトには inlineData.mimeType と base64 の data を使います。ファイル参照には fileData.mimeType と fileUri を使います。URL の構文が正しくても、モデルが取得できる証拠にはなりません。動画メタデータには開始・終了オフセットと、24 以下の正の fps を指定できます。全体のメディア解像度と各パートの解像度は別の設定です。Agentic Video には対応していません。
インラインメディアにはネイティブ JSON を、大きなメディアにはアクセス可能なファイル参照を使ってください。正確なファイル形式、長さ、リクエストごとのメディア制限は、公式メディア文書と実環境での検証に従います。
安全性設定は公式のネイティブ形式を使用します。省略すると Gemini API のデフォルトが適用され、明示した設定は変更せずに転送されます。
JSON 応答とストリーミング
generateContent はネイティブ JSON を返します。streamGenerateContent?alt=sse は、SSE の data: イベントでネイティブ JSON を送信します。主なフィールドは candidates[].content.parts、finishReason、safetyRatings、groundingMetadata、promptFeedback、modelVersion、responseId、usageMetadata です。
会話履歴にはネイティブコンテンツをすべて保持してください。思考の要約と思考シグネチャは別のものです。接続が切れても、生成が失敗したか完了したかは分かりません。次のリクエストを送る前に、部分的な結果とアカウントの記録を確認してください。ストリームの使用量は累積値なので、各チャンクを合計せず、最新のカウンターを使います。
Argon と異なり、3.1 Pro では長い出力の継続生成は確立されていません。汎用の応答スキーマにトークンフィールドがあるという理由だけで、継続ループを実装しないでください。
使用量と料金
promptTokenCount にはキャッシュ入力を含みます。cachedContentTokenCount はキャッシュ入力料金で課金され、非キャッシュ入力として重ねて課金されません。課金対象の出力は candidatesTokenCount と thoughtsTokenCount の合計です。報告されたツール利用のプロンプトトークンも入力に加算されます。
コンテキストのしきい値は、キャッシュ入力を含む 200,000 入力トークンです。それを超える入力には、長いコンテキストの料金が適用されます。利用可能なアカウントグループは同じモデル料金式を使い、それぞれの現在の倍率を適用します。リアルタイム料金表をご覧ください。
Flex と Priority は別の処理階層です。Flex でもキャッシュ入力料金は半額になりません。結果が Standard と報告された場合、Priority の追加料金を課してはいけません。Priority を要求した応答から実際の階層を確認できない場合、この連携では Standard のトークン料金を使います。ツール料金と明示的なキャッシュ保存料金は生成トークン料金とは別で、共有の無料ツール枠は約束していません。失敗したリクエストには課金されません。
複数のアカウントグループ
このモデルは googlellm と googlellm-vertext を使い、既存のアカウント権限と料金を維持します。グループ名のつづりはこのとおりです。Playground で利用可能なグループを選ぶか、省略可能な API ヘッダーを使ってください。
X-SeedRouter-Group: googlellm2 つ目のグループを選ぶには googlellm-vertext を使います。選択したグループが料金と利用可能な処理容量を決定します。明示的に選んだ場合、別のグループに自動で切り替わることはありません。API キーのデフォルト動作を維持するには、ヘッダーを省略するか auto を使ってください。
応答を生成せずに、API キーで利用可能なグループを確認できます。
curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=gemini-3.1-pro-preview" -H "Authorization: Bearer YOUR_SEEDROUTER_KEY"検証状況
コントロールと文書は公式のネイティブ形式に従います。パラメータの検証は Gemini API が行います。オフラインの転送・課金チェックだけでは、本番環境で利用できる証拠にはなりません。実際の生成、両方のアカウントグループ、メディア理解、キャッシュリソース、組み込みツール、処理階層については、有料のエンドツーエンド検証がまだ必要です。Customtools バリアントの品質比較結果は示していません。
