Text
Gemini 4 Carbon
Richieste Gemini native, livelli di ragionamento, decodifica lunga con token di continuazione, strumenti, input multimodale e streaming. Include limiti del modello e stato delle verifiche.
Usa gemini-4-carbon nel formato Gemini nativo. La pagina del modello include il Playground e i prezzi attuali. Gemini 4 Carbon usa lo stesso formato di richiesta di Gemini 4 Argon; secondo la guida di Google, per passare dall’uno all’altro basta cambiare l’ID del modello.
ID del modello
| ID del modello | Finestra di contesto | Livello di ragionamento predefinito |
|---|---|---|
gemini-4-carbon | 1.048.576 token, condivisi tra input, ragionamento e output | medium |
Esempio rapido
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}}'Il modello va indicato nell’URL. contents è obbligatorio. Una risposta include i campi nativi candidates, finishReason e usageMetadata; conserva le parti di contenuto complete, incluso thoughtSignature, per la cronologia della conversazione. I prompt difficili possono richiedere diversi minuti. Una richiesta senza streaming che dura più di circa 100 secondi può terminare con HTTP 524 prima dell’arrivo della risposta, quindi usa streamGenerateContent per le attività lunghe; gli esempi impostano anche un timeout del client di 15 minuti, come consiglia Google.
Endpoint
| Operazione | Endpoint |
|---|---|
| Risposta JSON | POST /v1beta/models/gemini-4-carbon:generateContent |
| Eventi inviati dal server | POST /v1beta/models/gemini-4-carbon:streamGenerateContent?alt=sse |
La specifica OpenAPI include tutti gli schemi annidati di richiesta e risposta. I campi facoltativi omessi usano i valori predefiniti dell’API. SeedRouter inoltra il corpo inviato senza filtrare i campi sconosciuti, rimuovere quelli non supportati o convalidare i valori dei parametri del modello. È l’API Gemini a decidere se accettare una richiesta.
Parametri della richiesta
L’URL fissa il modello su gemini-4-carbon. Il contratto della richiesta contiene 11 campi di primo livello. I campi sono facoltativi salvo dove indicati come obbligatori; l’omissione è diversa da JSON null. Il JSON arbitrario che ammette null viene conservato dove lo schema ufficiale lo consente.
| Campo | Tipo | Obbligatorio | Valore predefinito e vincoli |
|---|---|---|---|
contents | object[] | Sì | Conversazione non vuota; ogni contenuto ha parts non vuote |
systemInstruction | object | No | Parti solo testuali; non viene inserita automaticamente alcuna identità utente |
generationConfig | object | No | Parametri di generazione nella tabella successiva |
tools | object[] | No | Dichiarazioni di funzioni e configurazioni degli strumenti integrati |
toolConfig | object | No | Configurazione della selezione di funzioni e del recupero |
safetySettings | object[] | No | Un’impostazione per categoria; nessuna categoria duplicata |
serviceTier | string | No | unspecified, standard, flex, priority; l’elaborazione ordinaria è standard |
continuationToken | string | No | Token restituito con finishReason: CONTINUATION; invia di nuovo la stessa richiesta con quel token per continuare una risposta lunga |
labels | object | No | Valori stringa; chiavi e valori in minuscolo, massimo 63 punti di codice Unicode ciascuno |
model | string | No | Nome di risorsa facoltativo; l’URL determina il modello effettivo |
store | boolean | No | Preferenza generica per l’archiviazione delle richieste; effetto specifico del modello non verificato |
La cache esplicita del contesto (risorse cachedContent e cachedContents) non è supportata su Gemini 4 Carbon. La cache implicita è attiva per impostazione predefinita per prompt di almeno 4096 token.
Parametri di generazione
Campo in generationConfig | Tipo | Valore predefinito e vincoli |
|---|---|---|
maxOutputTokens | integer | Predefinito: 65.536, incluso il ragionamento. Fino a 1.048.576 meno l’input con la continuazione. Google documenta un errore 400 per una richiesta senza streaming oltre 32.768 senza continuationToken |
thinkingConfig | object | thinkingLevel: low, medium, high (predefinito: medium); sono accettate le forme maiuscole. includeThoughts: boolean, false per impostazione predefinita. Usa thinkingLevel anziché thinkingBudget |
stopSequences | string[] | Al massimo cinque sequenze |
responseMimeType | string | Predefinito: text/plain; l’output con schema JSON precedente richiede application/json |
responseSchema | object | Dialetto ufficiale dello schema; si esclude a vicenda con responseJsonSchema |
responseJsonSchema | JSON | JSON Schema; si esclude a vicenda con responseSchema |
responseFormat | object | Configurazione del formato testuale; text.mimeType e text.schema facoltativo. Lo schema richiede un tipo MIME JSON |
responseModalities | string[] | Solo testo: TEXT; vuoto significa testo |
mediaResolution | enum | MEDIA_RESOLUTION_UNSPECIFIED, LOW, MEDIUM, HIGH con il prefisso MEDIA_RESOLUTION_ |
seed | integer | Valore a 32 bit con segno; comportamento deterministico specifico del modello non verificato |
presencePenalty | number | Campo generico; effetto e intervallo specifici del modello non verificati |
frequencyPenalty | number | Campo generico; effetto e intervallo specifici del modello non verificati |
responseLogprobs | boolean | Campo generico; disponibilità specifica del modello non verificata |
logprobs | integer | 0–20; richiede responseLogprobs: true; supporto del modello non verificato |
enableEnhancedCivicAnswers | boolean | Campo generico; supporto del modello non verificato |
enableAffectiveDialog | boolean | Campo generico; supporto del modello non verificato |
audioTranscriptionConfig | object | Campo generico; opzioni specifiche del modello non verificate |
translationConfig | object | Campo generico; opzioni specifiche del modello non verificate |
Il documento OpenAPI elenca tipi annidati, enumerazioni, proprietà obbligatorie e limiti documentati per ogni messaggio. Gli schemi descrivono parametri ufficiali; non sono un elenco di campi consentiti da SeedRouter. I campi e i valori forniti dal chiamante vengono conservati. Un campo accettato dallo schema non dimostra il supporto per ogni account. Il ragionamento minimal non è un livello elencato. Google afferma che temperature, topP e topK vengono ignorati su questo modello; candidateCount non è un controllo ufficiale. Se inviati nel JSON nativo, passano comunque senza modifiche perché siano gestiti dall’API Gemini. Termina la conversazione con contenuto dell’utente; restano validi i turni utente contenenti solo risposte di funzione.
Decodifica lunga
Una risposta Gemini 4 Carbon restituisce fino a 65.536 token in streaming e fino a 32.768 token senza streaming. Per andare oltre, imposta maxOutputTokens sopra 65.536 e continua tu la risposta:
- Invia la richiesta. Se la risposta termina con
finishReason: "CONTINUATION", leggicandidates[0].continuationToken. - Invia di nuovo la stessa richiesta con quel valore nel campo di primo livello
continuationToken. Non aggiungere l’output parziale acontents; il token contiene lo stato del modello, incluso il suo ragionamento. - Ripeti finché
finishReasonnon èSTOPoMAX_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"
}Un segmento dedicato interamente al ragionamento può restituire testo vuoto con CONTINUATION; è un avanzamento normale. Ogni segmento invia nuovamente al modello il tuo prompt e tutto ciò che è stato generato fino a quel momento, quindi i token di input vengono conteggiati di nuovo in ogni segmento successivo. SeedRouter fattura ogni segmento come richiesta distinta. La modalità background lato server dell’API Interactions non fa parte di questo endpoint.
Output strutturato
{
"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"]
}
}
}I campi precedenti responseSchema e responseJsonSchema non possono essere usati insieme. Entrambi richiedono responseMimeType: "application/json". Anche lo schema più recente responseFormat.text deve specificare JSON. Usa le forme delle enumerazioni REST (APPLICATION_JSON e TEXT_PLAIN) in quel messaggio. Le richieste passano senza modifiche; i tipi MIME multimediali e il JSON arbitrario delle funzioni non vengono riscritti.
Funzioni e strumenti integrati
Usa tools[].functionDeclarations con un nome e con parameters oppure parametersJsonSchema, non entrambi. La selezione delle funzioni si trova in toolConfig.functionCallingConfig; allowedFunctionNames richiede ANY o VALIDATED e nomi dichiarati.
La tua applicazione esegue le funzioni restituite e ne fornisce i risultati nel turno successivo della conversazione. Conserva ogni thoughtSignature originale, chiamata a funzione e risposta di funzione. Non arrotondare gli identificatori numerici quando serializzi argomenti opachi delle funzioni.
Google elenca Search, Maps, esecuzione di codice, contesto URL, File Search e Computer Use per questo modello. Le risorse di File Search richiedono accesso con le credenziali che servono la richiesta. La configurazione MCP nativa compare nello schema generico, ma la sua disponibilità per questo modello non è accertata. Google Maps richiede input solo testuale; controlla i vincoli dell’API ufficiale prima di combinare Maps con contenuti multimediali. Con il grounding, Google conteggia come token di input le istruzioni interne degli strumenti e le dichiarazioni di funzioni. Il Playground non esegue le tue funzioni personalizzate.
Input multimodale e sicurezza
Un elemento contents[].parts[] contiene esattamente un payload: testo, contenuti multimediali inline, un riferimento a file, una chiamata/risposta di funzione o una parte di esecuzione. Può includere anche una firma o metadati multimediali. L’input supporta testo, immagini, audio, video e PDF; l’output è solo testuale. Il modello non genera immagini o audio e non dispone di una Live API.
Per i byte inline, usa inlineData.mimeType e data in base64. Per i riferimenti a file, usa fileData.mimeType e fileUri. Un URL sintatticamente valido non dimostra che il modello possa recuperarne il contenuto. I metadati video possono specificare offset di inizio e fine e un valore positivo di fps non superiore a 24. La comprensione agentica dei video si seleziona per ogni parte con mediaProcessing: "AGENTIC" accanto a fileData o inlineData del video; l’elaborazione statica è quella predefinita. videoMetadata contiene solo startOffset, endOffset e fps.
Le impostazioni di sicurezza usano il formato nativo ufficiale e passano attraverso l’API senza modifiche. Nel Playground, tutte e quattro le categorie devono essere impostate su BLOCK_MEDIUM_AND_ABOVE o su un livello più restrittivo; le soglie inferiori sono disponibili solo tramite API.
Risposte JSON e streaming
generateContent restituisce JSON nativo. streamGenerateContent?alt=sse emette JSON nativo negli eventi SSE data:. Tra i campi importanti ci sono candidates[].content.parts, finishReason, continuationToken, safetyRatings, groundingMetadata, promptFeedback, modelVersion, responseId e usageMetadata.
Conserva i contenuti nativi completi nella cronologia della conversazione. I riepiloghi del ragionamento non sono la stessa cosa delle firme di ragionamento. Una disconnessione non dimostra che la generazione sia fallita o terminata; esamina il risultato parziale e il registro dell’account prima di inviare un’altra richiesta. Il consumo del flusso è cumulativo: usa i contatori più recenti anziché sommare ogni frammento.
Consumo e prezzi
promptTokenCount include l’input in cache. cachedContentTokenCount viene addebitato alla tariffa dell’input in cache, anziché essere addebitato di nuovo come input non in cache. L’output fatturabile include candidatesTokenCount più thoughtsTokenCount. Gemini 4 Carbon usa più token di ragionamento per turno rispetto a Gemini 4 Argon, quindi aspettati un consumo di output maggiore a parità di prompt.
Questo modello non prevede scatti di prezzo legati alla lunghezza del contesto. Flex e Priority sono livelli di elaborazione separati. Un risultato riportato come Standard non deve avere un sovrapprezzo Priority; se una risposta richiesta come Priority non ne accerta il livello effettivo, si applicano le tariffe Standard per token. Il grounding con Google Search e Maps viene fatturato per query, separatamente dai token di generazione. Le richieste non riuscite non vengono addebitate. Consulta la tabella dei prezzi aggiornata.
Gruppi dell’account
Seleziona un gruppo disponibile nel Playground oppure usa l’header API facoltativo con il nome esatto del gruppo:
X-SeedRouter-Group: GROUP_NAMEIl gruppo scelto determina prezzo e capacità disponibile; una selezione esplicita non passa silenziosamente a un altro gruppo. Ometti l’header o usa auto per mantenere il comportamento predefinito della chiave API.
Controlla i gruppi disponibili per la tua chiave API senza generare una risposta:
curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=gemini-4-carbon" \
-H "Authorization: Bearer YOUR_SEEDROUTER_KEY"Stato delle verifiche
I controlli e la documentazione seguono il formato nativo ufficiale. La convalida dei parametri spetta all’API Gemini. Le richieste in produzione dell’11 novembre 2026 (un tentativo ciascuna) hanno dato i seguenti risultati:
| Area | Risultato |
|---|---|
Testo, istruzione di sistema, sequenze di arresto, seed, responseModalities | Risposta conforme alla richiesta |
thinkingLevel low / medium / high (anche in maiuscolo) | Accettato; il consumo di ragionamento è cresciuto con il livello. includeThoughts ha restituito una parte con il riepilogo del ragionamento |
Ragionamento minimal, candidateCount: 2, presencePenalty / frequencyPenalty, turno finale precompilato del modello | HTTP 400 dall’API Gemini |
thinkingBudget, temperature / topP / topK | Accettati; i valori di campionamento non hanno effetti documentati |
responseJsonSchema, responseSchema precedente | JSON conforme allo schema |
Chiamate a funzioni, incluso mode: ANY | Parti functionCall con argomenti e ID delle chiamate |
| Esecuzione di codice, Google Search, Google Maps | Restituite parti degli strumenti e metadati di grounding |
| Contesto URL | Strumento eseguito, ma entrambe le pagine provate sono state segnalate come irraggiungibili |
| Immagine (URL, bassa risoluzione multimediale), PDF inline, video, audio (streaming) | Compresi correttamente; una richiesta audio senza streaming è terminata con HTTP 524 |
responseLogprobs con logprobs | Restituito logprobsResult |
maxOutputTokens: 40000 senza streaming | Accettato per una risposta breve |
I livelli di elaborazione, mediaProcessing: "AGENTIC" e i token di continuazione richiedono una verifica successiva dopo l’arrivo in produzione della versione attuale. Non viene dichiarato alcun confronto misurato di qualità o latenza con Gemini 4 Argon.
