Text
Gemini 4 Carbon
ネイティブ Gemini リクエスト、思考レベル、継続トークンによる長文の分割生成、ツール、マルチモーダル入力、ストリーミングを解説します。モデルの上限と検証状況も記載しています。
gemini-4-carbon をネイティブ Gemini 形式で使用します。モデルページには Playground と現在の料金があります。Gemini 4 Carbon は Gemini 4 Argon と同じリクエスト形式を使います。Google のガイドによると、両モデルの切り替えにはモデル ID の変更だけが必要です。
モデル ID
| モデル ID | コンテキストウィンドウ | デフォルトの努力度 |
|---|---|---|
gemini-4-carbon | 1,048,576 トークンを入力・思考・出力で共有 | medium |
クイックサンプル
curl https://api.seedrouter.ai/v1beta/models/gemini-4-carbon:generateContent \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Find the race condition in a retry loop that re-reads a balance before locking it."}]}],"generationConfig":{"thinkingConfig":{"thinkingLevel":"medium"},"maxOutputTokens":32768}}'モデルは URL に指定します。contents は必須です。応答にはネイティブの candidates、finishReason、usageMetadata が含まれます。会話履歴には、thoughtSignature を含むコンテンツの全パートを保持してください。難しいプロンプトでは数分かかることがあります。非ストリーミングのリクエストは、約 100 秒を超えると回答が届く前に HTTP 524 で終了する場合があるため、長いタスクには streamGenerateContent を使ってください。サンプルでは Google の推奨に従い、クライアントのタイムアウトも 15 分に設定しています。
エンドポイント
| 操作 | エンドポイント |
|---|---|
| JSON 応答 | POST /v1beta/models/gemini-4-carbon:generateContent |
| サーバー送信イベント | POST /v1beta/models/gemini-4-carbon:streamGenerateContent?alt=sse |
OpenAPI 仕様には、すべてのネストしたリクエスト・応答スキーマを記載しています。省略可能なフィールドを指定しない場合は、API のデフォルトが適用されます。SeedRouter は、未知のフィールドの除外、未対応フィールドの削除、モデルのパラメータ値の検証を行わず、送信された本文を転送します。リクエストを受理するかどうかは Gemini API が判断します。
リクエストパラメータ
URL によりモデルは gemini-4-carbon に固定されます。リクエスト仕様には 11 個のトップレベルフィールドがあります。必須と記載したもの以外は省略可能です。省略と JSON の null は異なります。公式スキーマが許可する箇所では、null を許容する任意の JSON がそのまま保持されます。
| フィールド | 型 | 必須 | デフォルトと制約 |
|---|---|---|---|
contents | object[] | はい | 空でない会話。各コンテンツに空でない parts が必要 |
systemInstruction | object | いいえ | テキストのみのパート。ユーザー識別情報は自動挿入しません |
generationConfig | object | いいえ | 次の表にある生成パラメータ |
tools | object[] | いいえ | 関数宣言と組み込みツールの設定 |
toolConfig | object | いいえ | 関数選択と検索の設定 |
safetySettings | object[] | いいえ | カテゴリごとに 1 件。カテゴリの重複は不可 |
serviceTier | string | いいえ | unspecified、standard、flex、priority。通常処理は standard |
continuationToken | string | いいえ | finishReason: CONTINUATION とともに返されるトークン。このトークンを付けて同じリクエストを再送すると、長い回答の続きを生成できます |
labels | object | いいえ | 値は文字列。キーと値は小文字で、それぞれ最大 63 Unicode コードポイント |
model | string | いいえ | 任意のリソース名。実際のモデルは URL により決まります |
store | boolean | いいえ | 汎用のリクエスト保存設定。モデル固有の効果は未検証 |
Gemini 4 Carbon は、明示的なコンテキストキャッシュ(cachedContent と cachedContents リソース)に対応していません。4,096 トークン以上のプロンプトでは、暗黙的なキャッシュがデフォルトで有効です。
生成パラメータ
generationConfig 内のフィールド | 型 | デフォルトと制約 |
|---|---|---|
maxOutputTokens | integer | デフォルトは思考を含め 65,536。継続生成では 1,048,576 から入力分を引いた量まで。Google の文書では、continuationToken のない 32,768 を超える非ストリーミングのリクエストには 400 が返るとされています |
thinkingConfig | object | thinkingLevel: low、medium、high(デフォルトは medium)。大文字表記も受理されます。includeThoughts: boolean、デフォルトは false。thinkingBudget ではなく thinkingLevel を使ってください |
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 の思考は記載されたレベルに含まれません。Google によると、このモデルは temperature、topP、topK を無視します。candidateCount は公式コントロールではありません。ネイティブ JSON で指定した場合も、そのまま Gemini API に転送され、同 API が処理します。会話はユーザーコンテンツで終えてください。関数応答のみを含むユーザーターンは引き続き有効です。
長文の分割生成
Gemini 4 Carbon の 1 回の応答は、ストリーミング時に最大 65,536 トークン、非ストリーミング時に最大 32,768 トークンを返します。それ以上を生成するには、maxOutputTokens を 65,536 より大きく設定し、自分で回答の続きを要求します。
- リクエストを送信します。応答が
finishReason: "CONTINUATION"で終わったら、candidates[0].continuationTokenを読み取ります。 - トップレベルの
continuationTokenフィールドにその値を入れ、同じリクエスト を再送します。部分的な出力をcontentsに追加しないでください。トークンが思考を含むモデルの状態を保持します。 finishReasonがSTOPまたはMAX_TOKENSになるまで繰り返します。
{
"contents": [{"role": "user", "parts": [{"text": "Write a complete, rigorous proof of the prime number theorem."}]}],
"generationConfig": {"thinkingConfig": {"thinkingLevel": "high"}, "maxOutputTokens": 262144},
"continuationToken": "TOKEN_FROM_THE_PREVIOUS_RESPONSE"
}1 回の応答が思考だけに費やされた場合、CONTINUATION と空のテキストが返ることがあります。これは正常な進行です。各リクエストでは、プロンプトとそれまでに生成されたすべての内容をモデルに再送するため、後続のリクエストごとに入力トークンが再計上されます。SeedRouter は各回を独立したリクエストとして課金します。Interactions API のサーバー側 background モードは、このエンドポイントには含まれません。
構造化出力
{
"contents": [{"parts": [{"text": "Return a JSON object with ok set to true."}]}],
"generationConfig": {
"thinkingConfig": {"thinkingLevel": "low"},
"maxOutputTokens": 32768,
"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 と、宣言済みの関数名が必要です。
返された関数をアプリケーションで実行し、その結果を次の会話ターンで渡します。元の thoughtSignature、関数呼び出し、関数応答をそれぞれ保持してください。不透明な関数引数をシリアライズする際は、数値の識別子を丸めないでください。
Google はこのモデルの機能として、Search、Maps、コード実行、URL コンテキスト、File Search、Computer Use を挙げています。File Search リソースには、リクエストを処理する認証情報でのアクセス権が必要です。ネイティブ MCP 設定は汎用スキーマにありますが、このモデルでの利用可否は確立されていません。Google Maps はテキストのみの入力に対応します。Maps とメディアを組み合わせる前に、公式 API の制限を確認してください。グラウンディングを使う場合、Google は内部ツールの指示と関数宣言を入力トークンとして計上します。Playground は独自の関数を実行しません。
マルチモーダル入力と安全性
contents[].parts[] の各項目には、テキスト、インラインメディア、ファイル参照、関数呼び出し・応答、実行パートのいずれか 1 つのペイロードを含めます。シグネチャやメディアメタデータを追加で含めることもできます。入力はテキスト、画像、音声、動画、PDF に対応し、出力はテキストのみです。このモデルは画像・音声生成には対応せず、Live API もありません。
インラインバイトには inlineData.mimeType と base64 の data を使います。ファイル参照には fileData.mimeType と fileUri を使います。URL の構文が正しくても、モデルが取得できる証拠にはなりません。動画メタデータには開始・終了オフセットと、24 以下の正の fps を指定できます。エージェント型の動画理解は、動画の fileData または inlineData の隣に mediaProcessing: "AGENTIC" を指定して、パートごとに選択します。デフォルトは静的処理です。videoMetadata に含めるのは startOffset、endOffset、fps のみです。
安全性設定は公式のネイティブ形式を使用し、API を通じて変更せずに転送されます。Playground では、4 つのカテゴリすべてを BLOCK_MEDIUM_AND_ABOVE 以上の厳しさに設定する必要があります。より低いしきい値は API のみで利用できます。
JSON 応答とストリーミング
generateContent はネイティブ JSON を返します。streamGenerateContent?alt=sse は、SSE の data: イベントでネイティブ JSON を送信します。主なフィールドは candidates[].content.parts、finishReason、continuationToken、safetyRatings、groundingMetadata、promptFeedback、modelVersion、responseId、usageMetadata です。
会話履歴にはネイティブコンテンツをすべて保持してください。思考の要約と思考シグネチャは別のものです。接続が切れても、生成が失敗したか完了したかは分かりません。次のリクエストを送る前に、部分的な結果とアカウントの記録を確認してください。ストリームの使用量は累積値なので、各チャンクを合計せず、最新のカウンターを使います。
使用量と料金
promptTokenCount にはキャッシュ入力を含みます。cachedContentTokenCount はキャッシュ入力料金で課金され、非キャッシュ入力として重ねて課金されません。課金対象の出力は candidatesTokenCount と thoughtsTokenCount の合計です。Gemini 4 Carbon は Gemini 4 Argon より各ターンで多くの思考トークンを使うため、同じプロンプトでも出力使用量が多くなることを見込んでください。
このモデルには、コンテキスト長による料金段階はありません。Flex と Priority は別の処理階層です。結果が Standard と報告された場合、Priority の追加料金を課してはいけません。Priority を要求した応答から実際の階層を確認できない場合、Standard のトークン料金を適用します。Google Search と Maps によるグラウンディングは、生成トークンとは別にクエリごとに課金されます。失敗したリクエストには課金されません。リアルタイム料金表をご覧ください。
複数のアカウントグループ
Playground で利用可能なグループを選ぶか、省略可能な API ヘッダーに正確なグループ名を指定してください。
X-SeedRouter-Group: GROUP_NAME選択したグループが料金と利用可能な処理容量を決定します。明示的に選んだ場合、別のグループに自動で切り替わることはありません。API キーのデフォルト動作を維持するには、ヘッダーを省略するか auto を使ってください。
応答を生成せずに、API キーで利用可能なグループを確認できます。
curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=gemini-4-carbon" \
-H "Authorization: Bearer YOUR_SEEDROUTER_KEY"検証状況
コントロールと文書は公式のネイティブ形式に従います。パラメータの検証は Gemini API が行います。2026 年 11 月 11 日の本番リクエスト(各 1 回)で、次の結果を確認しました。
| 検証項目 | 結果 |
|---|---|
テキスト、システム指示、停止シーケンス、シード、responseModalities | 要求どおりに回答 |
thinkingLevel の low / medium / high(大文字表記も含む) | 受理され、レベルに応じて思考使用量が増加。includeThoughts は思考の要約パートを返しました |
minimal の思考、candidateCount: 2、presencePenalty / frequencyPenalty、最後のモデルプリフィルターン | Gemini API が HTTP 400 を返しました |
thinkingBudget、temperature / topP / topK | 受理。サンプリング値の効果は文書に記載されていません |
responseJsonSchema、従来の responseSchema | スキーマに適合する JSON |
mode: ANY を含む関数呼び出し | 引数と呼び出し ID を含む functionCall パート |
| コード実行、Google Search、Google Maps | ツールパートとグラウンディングメタデータを返しました |
| URL コンテキスト | ツールは実行されましたが、テストした 2 ページとも到達不能と報告されました |
| 画像(URL、低いメディア解像度)、インライン PDF、動画、音声(ストリーミング) | 正しく理解。非ストリーミングの音声リクエストは HTTP 524 で終了しました |
responseLogprobs と logprobs | logprobsResult を返しました |
非ストリーミングでの maxOutputTokens: 40000 | 短い回答で受理されました |
処理階層、mediaProcessing: "AGENTIC"、継続トークンは、現在のリリースが本番に反映された後に追加確認が必要です。Gemini 4 Argon と品質や遅延を実測して比較した結果は示していません。
