Text
Gemini 4 Carbon
Solicitudes nativas de Gemini, niveles de razonamiento, decodificación larga con tokens de continuación, herramientas, entrada multimodal y streaming. Incluye límites del modelo y estado de verificación.
Usa gemini-4-carbon con el formato nativo de Gemini. La página del modelo incluye el Playground y los precios actuales. Gemini 4 Carbon usa el mismo formato de solicitud que Gemini 4 Argon; según la guía de Google, para pasar de uno a otro solo hay que cambiar el ID del modelo.
ID del modelo
| ID del modelo | Ventana de contexto | Nivel de esfuerzo predeterminado |
|---|---|---|
gemini-4-carbon | 1.048.576 tokens, compartidos entre entrada, razonamiento y salida | medium |
Ejemplo rápido
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}}'El modelo se indica en la URL. contents es obligatorio. La respuesta incluye los campos nativos candidates, finishReason y usageMetadata; conserva las partes completas del contenido, incluido thoughtSignature, en el historial de conversación. Los prompts difíciles pueden tardar varios minutos. Una solicitud sin streaming que dure más de unos 100 segundos puede terminar con HTTP 524 antes de que llegue la respuesta, así que usa streamGenerateContent para tareas largas; los ejemplos también establecen un tiempo de espera del cliente de 15 minutos, como recomienda Google.
Endpoints
| Operación | Endpoint |
|---|---|
| Respuesta JSON | POST /v1beta/models/gemini-4-carbon:generateContent |
| Eventos enviados por el servidor | POST /v1beta/models/gemini-4-carbon:streamGenerateContent?alt=sse |
La especificación OpenAPI incluye todos los esquemas anidados de solicitud y respuesta. Los campos opcionales usan los valores predeterminados de la API cuando se omiten. SeedRouter reenvía el cuerpo enviado sin filtrar campos desconocidos, eliminar campos no compatibles ni validar los valores de los parámetros del modelo. La API de Gemini decide si acepta la solicitud.
Parámetros de solicitud
La URL fija el modelo en gemini-4-carbon. El contrato de solicitud contiene 11 campos de nivel superior. Los campos son opcionales salvo que se indiquen como obligatorios; omitirlos no equivale a JSON null. Se conserva el JSON arbitrario que admite null cuando lo permite el esquema oficial.
| Campo | Tipo | Obligatorio | Valor predeterminado y restricciones |
|---|---|---|---|
contents | object[] | Sí | Conversación no vacía; cada contenido tiene parts no vacías |
systemInstruction | object | No | Partes solo de texto; no se inserta automáticamente la identidad del usuario |
generationConfig | object | No | Parámetros de generación de la siguiente tabla |
tools | object[] | No | Declaraciones de funciones y configuraciones de herramientas integradas |
toolConfig | object | No | Configuración de selección de funciones y recuperación |
safetySettings | object[] | No | Un ajuste por categoría; sin categorías duplicadas |
serviceTier | string | No | unspecified, standard, flex, priority; el procesamiento ordinario es standard |
continuationToken | string | No | Token devuelto con finishReason: CONTINUATION; reenvía la misma solicitud con él para continuar una respuesta larga |
labels | object | No | Valores de cadena; claves y valores en minúsculas, máximo de 63 puntos de código Unicode cada uno |
model | string | No | Nombre de recurso opcional; la URL determina el modelo real |
store | boolean | No | Preferencia genérica de almacenamiento de solicitudes; efecto específico en el modelo sin verificar |
Gemini 4 Carbon no admite la caché explícita de contexto (recursos cachedContent y cachedContents). La caché implícita está activada por defecto para prompts de al menos 4096 tokens.
Parámetros de generación
Campo de generationConfig | Tipo | Valor predeterminado y restricciones |
|---|---|---|
maxOutputTokens | integer | Predeterminado: 65.536, incluido el razonamiento. Hasta 1.048.576 menos la entrada con continuación. Google documenta un 400 para una solicitud sin streaming por encima de 32.768 sin continuationToken |
thinkingConfig | object | thinkingLevel: low, medium, high (predeterminado: medium); se aceptan las formas en mayúsculas. includeThoughts: boolean, false por defecto. Usa thinkingLevel en lugar de thinkingBudget |
stopSequences | string[] | Máximo de cinco secuencias |
responseMimeType | string | Predeterminado: text/plain; la salida con esquema JSON heredado requiere application/json |
responseSchema | object | Dialecto de esquema oficial; mutuamente excluyente con responseJsonSchema |
responseJsonSchema | JSON | JSON Schema; mutuamente excluyente con responseSchema |
responseFormat | object | Configuración del formato de texto; text.mimeType y text.schema opcional. El esquema requiere un tipo MIME JSON |
responseModalities | string[] | Solo texto: TEXT; vacío significa texto |
mediaResolution | enum | MEDIA_RESOLUTION_UNSPECIFIED, LOW, MEDIUM, HIGH con el prefijo MEDIA_RESOLUTION_ |
seed | integer | Valor de 32 bits con signo; comportamiento determinista específico del modelo sin verificar |
presencePenalty | number | Campo genérico; efecto e intervalo específicos del modelo sin verificar |
frequencyPenalty | number | Campo genérico; efecto e intervalo específicos del modelo sin verificar |
responseLogprobs | boolean | Campo genérico; disponibilidad específica del modelo sin verificar |
logprobs | integer | 0–20; requiere responseLogprobs: true; compatibilidad del modelo sin verificar |
enableEnhancedCivicAnswers | boolean | Campo genérico; compatibilidad del modelo sin verificar |
enableAffectiveDialog | boolean | Campo genérico; compatibilidad del modelo sin verificar |
audioTranscriptionConfig | object | Campo genérico; opciones específicas del modelo sin verificar |
translationConfig | object | Campo genérico; opciones específicas del modelo sin verificar |
El documento OpenAPI enumera los tipos anidados, las enumeraciones, las propiedades obligatorias y los límites documentados de cada mensaje. Los esquemas describen parámetros oficiales; no son una lista de campos permitidos por SeedRouter. Se conservan los campos y valores aportados por quien llama a la API. Que el esquema acepte un campo no demuestra que sea compatible con todas las cuentas. El razonamiento minimal no figura entre los niveles. Google indica que temperature, topP y topK se ignoran en este modelo; candidateCount no es un control oficial. Si se envían en JSON nativo, siguen pasando sin cambios para que los gestione la API de Gemini. Termina la conversación con contenido del usuario; los turnos del usuario que solo contienen respuestas de funciones siguen siendo válidos.
Decodificación larga
Una respuesta de Gemini 4 Carbon devuelve hasta 65.536 tokens en streaming y hasta 32.768 tokens sin streaming. Para ir más allá, establece maxOutputTokens por encima de 65.536 y continúa tú la respuesta:
- Envía la solicitud. Si la respuesta termina con
finishReason: "CONTINUATION", leecandidates[0].continuationToken. - Envía de nuevo la misma solicitud con ese valor en el campo de nivel superior
continuationToken. No añadas la salida parcial acontents; el token contiene el estado del modelo, incluido su razonamiento. - Repite hasta que
finishReasonseaSTOPoMAX_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"
}Una etapa dedicada por completo al razonamiento puede devolver texto vacío con CONTINUATION; es un avance normal. Cada etapa vuelve a enviar al modelo tu prompt junto con todo lo generado hasta ese momento, por lo que los tokens de entrada vuelven a contarse en cada etapa posterior. SeedRouter factura cada etapa como una solicitud independiente. El modo background del servidor de la API de Interactions no forma parte de este endpoint.
Salida estructurada
{
"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"]
}
}
}Los campos heredados responseSchema y responseJsonSchema no se pueden usar juntos. Ambos requieren responseMimeType: "application/json". El esquema más reciente responseFormat.text también debe especificar JSON. Usa las formas de las enumeraciones REST (APPLICATION_JSON y TEXT_PLAIN) en ese mensaje. Las solicitudes pasan sin cambios; no se reescriben los tipos MIME multimedia ni el JSON arbitrario de funciones.
Funciones y herramientas integradas
Usa tools[].functionDeclarations con un nombre y con parameters o parametersJsonSchema, pero no ambos. La selección de funciones se configura en toolConfig.functionCallingConfig; allowedFunctionNames requiere ANY o VALIDATED y nombres declarados.
Tu aplicación ejecuta las funciones devueltas y proporciona sus resultados en el siguiente turno de la conversación. Conserva cada thoughtSignature original, llamada a función y respuesta de función. No redondees los identificadores numéricos al serializar argumentos opacos de funciones.
Google enumera Search, Maps, ejecución de código, contexto de URL, File Search y Computer Use para este modelo. Los recursos de File Search requieren acceso con las credenciales que atienden la solicitud. La configuración MCP nativa aparece en el esquema genérico, pero no se ha confirmado su disponibilidad para este modelo. Google Maps requiere entrada solo de texto; consulta las restricciones de la API oficial antes de combinar Maps con contenido multimedia. Con fundamentación, Google cuenta las instrucciones internas de herramientas y las declaraciones de funciones como tokens de entrada. El Playground no ejecuta tus funciones personalizadas.
Entrada multimodal y seguridad
Un elemento contents[].parts[] contiene exactamente una carga: texto, contenido multimedia en línea, una referencia de archivo, una llamada o respuesta de función, o una parte de ejecución. También puede incluir una firma o metadatos multimedia. La entrada admite texto, imágenes, audio, vídeo y PDF; la salida es solo texto. El modelo no genera imágenes ni audio y no tiene Live API.
Para bytes en línea, usa inlineData.mimeType y data en base64. Para referencias de archivos, usa fileData.mimeType y fileUri. Una URL sintácticamente válida no demuestra que el modelo pueda recuperar su contenido. Los metadatos de vídeo pueden especificar desplazamientos de inicio y fin y un valor positivo de fps no superior a 24. La comprensión agéntica de vídeo se selecciona por parte con mediaProcessing: "AGENTIC" junto al fileData o inlineData del vídeo; el procesamiento estático es el predeterminado. videoMetadata solo contiene startOffset, endOffset y fps.
Los ajustes de seguridad usan el formato nativo oficial y pasan sin cambios por la API. En el Playground, las cuatro categorías deben establecerse en BLOCK_MEDIUM_AND_ABOVE o un nivel más estricto; los umbrales más bajos solo están disponibles en la API.
Respuestas JSON y streaming
generateContent devuelve JSON nativo. streamGenerateContent?alt=sse emite JSON nativo en eventos SSE data:. Entre los campos importantes están candidates[].content.parts, finishReason, continuationToken, safetyRatings, groundingMetadata, promptFeedback, modelVersion, responseId y usageMetadata.
Conserva el contenido nativo completo en el historial de conversación. Los resúmenes de razonamiento no son lo mismo que las firmas de razonamiento. Una desconexión no demuestra que la generación haya fallado ni terminado; inspecciona el resultado parcial y el registro de la cuenta antes de enviar otra solicitud. El consumo del flujo es acumulativo, así que usa los últimos contadores en lugar de sumar todos los fragmentos.
Consumo y precios
promptTokenCount incluye la entrada en caché. cachedContentTokenCount se cobra a la tarifa de entrada en caché, en lugar de cobrarse otra vez como entrada sin caché. La salida facturable incluye candidatesTokenCount más thoughtsTokenCount. Gemini 4 Carbon dedica más tokens de razonamiento por turno que Gemini 4 Argon, por lo que cabe esperar un mayor consumo de salida con el mismo prompt.
Este modelo no tiene saltos de precio por longitud de contexto. Flex y Priority son niveles de procesamiento distintos. Un resultado comunicado como Standard no debe llevar un recargo Priority; si una respuesta solicitada como Priority no confirma su nivel real, se aplican las tarifas por token Standard. La fundamentación con Google Search y Maps se factura por consulta, por separado de los tokens de generación. Las solicitudes fallidas no se cobran. Consulta la tabla de precios en vivo.
Grupos de cuenta
Selecciona un grupo disponible en el Playground o usa la cabecera API opcional con el nombre exacto del grupo:
X-SeedRouter-Group: GROUP_NAMEEl grupo elegido determina el precio y la capacidad disponible; una selección explícita no cambia silenciosamente a otro grupo. Omite la cabecera o usa auto para mantener el comportamiento predeterminado de la clave API.
Comprueba los grupos disponibles para tu clave API sin generar una respuesta:
curl "https://api.seedrouter.ai/api/seedrouter/llm/groups?model=gemini-4-carbon" \
-H "Authorization: Bearer YOUR_SEEDROUTER_KEY"Estado de verificación
Los controles y la documentación siguen el formato nativo oficial. La validación de parámetros corresponde a la API de Gemini. En solicitudes en producción el 11 de noviembre de 2026 (un intento por prueba), se observó lo siguiente:
| Área | Resultado |
|---|---|
Texto, instrucción del sistema, secuencias de parada, semilla, responseModalities | Respondió según lo solicitado |
thinkingLevel low / medium / high (también en mayúsculas) | Aceptados; el consumo de razonamiento aumentó con el nivel. includeThoughts devolvió una parte con un resumen de razonamiento |
Razonamiento minimal, candidateCount: 2, presencePenalty / frequencyPenalty, turno final de prellenado del modelo | HTTP 400 de la API de Gemini |
thinkingBudget, temperature / topP / topK | Aceptados; los valores de muestreo no tienen un efecto documentado |
responseJsonSchema, responseSchema heredado | JSON válido según el esquema |
Llamadas a funciones, incluido mode: ANY | Partes functionCall con argumentos e ID de llamada |
| Ejecución de código, Google Search, Google Maps | Se devolvieron partes de herramientas y metadatos de fundamentación |
| Contexto de URL | La herramienta se ejecutó, pero informó de que las dos páginas probadas eran inaccesibles |
| Imagen (URL, resolución multimedia baja), PDF en línea, vídeo, audio (streaming) | Comprendidos correctamente; una solicitud de audio sin streaming terminó con HTTP 524 |
responseLogprobs con logprobs | Se devolvió logprobsResult |
maxOutputTokens: 40000 sin streaming | Aceptado para una respuesta corta |
Los niveles de procesamiento, mediaProcessing: "AGENTIC" y los tokens de continuación requieren una comprobación posterior cuando la versión actual llegue a producción. No se afirma ninguna comparación medida de calidad o latencia con Gemini 4 Argon.
