Text
Gemini 4 Carbon
네이티브 Gemini 요청, 사고 수준, 이어서 생성 토큰을 이용한 긴 답변 분할 생성, 도구, 멀티모달 입력 및 스트리밍을 설명합니다. 모델 한도와 검증 상태도 포함합니다.
네이티브 Gemini 형식으로 gemini-4-carbon을 사용합니다. 모델 페이지에는 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[] | 아니요 | 카테고리당 설정 하나. 중복 카테고리 불가 |
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가 처리합니다. 대화는 사용자 콘텐츠로 끝내야 합니다. 함수 응답만 포함한 사용자 차례는 여전히 유효합니다.
긴 답변 분할 생성
Gemini 4 Carbon의 단일 응답은 스트리밍 시 최대 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"
}한 회의 응답이 전부 사고에 쓰이면 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[] 항목에는 텍스트, 인라인 미디어, 파일 참조, 함수 호출/응답, 실행 파트 중 정확히 하나의 페이로드가 들어갑니다. 서명이나 미디어 메타데이터를 추가로 포함할 수도 있습니다. 입력은 텍스트, 이미지, 오디오, 동영상, PDF를 지원하며 출력은 텍스트만 지원합니다. 이 모델은 이미지나 오디오 생성 기능이 없고 Live API도 없습니다.
인라인 바이트에는 inlineData.mimeType과 base64 data를 사용합니다. 파일 참조에는 fileData.mimeType과 fileUri를 사용합니다. 구문이 유효한 URL이라고 해서 모델이 가져올 수 있다는 뜻은 아닙니다. 동영상 메타데이터에는 시작/종료 오프셋과 24 이하의 양수 fps를 지정할 수 있습니다. 에이전트형 동영상 이해는 동영상의 fileData 또는 inlineData 옆에 mediaProcessing: "AGENTIC"을 지정해 파트별로 선택하며, 기본값은 정적 처리입니다. videoMetadata에는 startOffset, endOffset 및 fps만 들어갑니다.
안전 설정은 공식 네이티브 형식을 사용하며 API를 통해 변경 없이 전달됩니다. Playground에서는 네 카테고리 모두 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일 프로덕션 요청(각 한 번)에서 다음 결과를 확인했습니다.
| 검증 항목 | 결과 |
|---|---|
텍스트, 시스템 지침, 중지 시퀀스, 시드 및 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 컨텍스트 | 도구는 실행되었으나 테스트한 두 페이지 모두 접근할 수 없다고 보고되었습니다 |
| 이미지(URL, 낮은 미디어 해상도), 인라인 PDF, 동영상 및 오디오(스트리밍) | 올바르게 이해함. 비스트리밍 오디오 요청은 HTTP 524로 종료되었습니다 |
responseLogprobs와 logprobs | logprobsResult 반환 |
비스트리밍 maxOutputTokens: 40000 | 짧은 답변에 대해 수락됨 |
처리 등급, mediaProcessing: "AGENTIC" 및 이어서 생성 토큰은 현재 릴리스가 프로덕션에 반영된 후 추가 확인이 필요합니다. Gemini 4 Argon과 품질이나 지연 시간을 실측 비교했다는 주장은 하지 않습니다.
