Gemini Decision 1과 Jev 비교: 가격, 지연 시간, Python 설정
정해진 선택지 안에서 멀티모달 결정을 내릴 때는 Gemini Decision 1을 시험하고, 텍스트 라우팅에서는 Jev와 비교합니다. 직접 API 가격과 Artificial Analysis 결과를 살펴보고 공유 입력 비용을 계산합니다. Python 도구 선택 예제를 실행한 뒤 할당량, 신뢰도 임곗값, 게이트웨이별 차이도 확인합니다.
목차

멀티모달 라우팅이나 같은 입력에 대한 여러 독립 검사가 필요하다면 Gemini Decision 1을 먼저 시험합니다. 비용과 지연 시간이 가장 중요하다면 텍스트 라우팅의 첫 비교 기준으로 Jev를 사용합니다. 코드, 설명, 미리 정하지 않은 값의 추출 결과, 도구 인수가 필요할 때는 생성형 모델을 사용합니다.
Google은 2026년 11월 11일 Gemini Decision 1을 출시했습니다. 2026-11-13 기준으로 Decisions API는 Gemini API를 통해 사용할 수 있습니다. Python은 google-genai 3.2.0 이상에서 지원합니다. 이 엔드포인트는 결정을 내리기 위한 것으로, 코딩 채팅에서 쓰는 모델을 대체하지 않습니다.
Gemini Decision 1이 반환하는 값
Gemini Decision 1은 답변을 토큰 단위로 생성하는 대신 미리 정의한 결과를 평가합니다. 공유 입력과 최대 1,000개의 독립 질문을 전달합니다. 컨텍스트 창은 262,144 tokens이며, 보통 256K로 표시합니다. 입력과 질문을 합친 크기가 이 한도 안에 들어가야 합니다.
Decisions API 가이드는 세 가지 질문 유형을 설명합니다.
| 유형 | 요청에서 정의할 내용 | 응답에서 읽을 내용 |
|---|---|---|
noul | 예/아니요 질문입니다. 선택적 기준으로 각 결과의 의미를 명확히 합니다. | 예일 확률인 noul과 confidence입니다. |
choice | 이름과 설명이 있는 2~255개의 선택지입니다. | 선택된 choice, 정규화된 probabilities, confidence입니다. |
score | 첫 단계의 인덱스가 0인 순서 있는 평가 척도입니다. | 확률로 가중한 score, 단계별 probabilities, confidence입니다. |
코딩 에이전트에서는 각 유형으로 서로 다른 질문을 처리할 수 있습니다. 저장소의 정보가 필요한지, 다음에 어떤 도구를 실행할지, 어느 정도의 조사가 필요한지를 각각 판단합니다.
질문은 서로 독립적입니다. 같은 요청 안에서 한 질문이 다른 질문의 답변을 사용할 수 없습니다. 결과는 애플리케이션 코드에서 조합합니다. 다음 결정에 이전 답변이 필요하다면 별도 요청을 보냅니다.
noul의 신뢰도가 높다고 반드시 “예”를 뜻하지는 않습니다. SDK는 noul을 0.01~0.99 사이의 확률로 정의합니다. 신뢰도는 max(noul, 1 - noul)입니다. 따라서 noul = 0.03은 신뢰도 0.97로 “아니요”를 나타냅니다.
score는 평가 척도의 두 단계 사이 값이 될 수 있습니다. 신뢰도는 개별 단계의 확률 중 가장 높은 값입니다. 연속적인 평균값이 정확히 맞을 확률을 뜻하지 않습니다. 코드에서 임곗값을 적용할 때 이 차이를 고려해야 합니다.
Jev에 익숙하다면 이러한 질문 유형을 Jev 활용 사례 가이드의 패턴과 연결할 수 있습니다. 개념이 비슷하더라도 공급자의 요청 형식을 그대로 바꿔 쓸 수 있는 것은 아닙니다.
Gemini Decision 1과 Jev의 측정 결과 비교
자체 품질 평가 결과가 비슷하다면 텍스트 전용 라우터는 Jev를 기준으로 비교하는 편이 좋습니다. 여러 입력 형식을 직접 처리하는 기능이 작업 방식을 바꾼다면 Gemini를 별도로 시험합니다.
아래 직접 API 요금은 Google 가격 페이지와 TypeSafe 가격 안내를 기준으로 합니다. 벤치마크 수치는 Artificial Analysis의 Gemini Decision 1 페이지와 Jev 1.14 페이지에서 가져왔습니다. 모두 2026-11-13에 확인한 정보입니다.
| 지표 | Gemini Decision 1 | Jev 1.14 |
|---|---|---|
| 직접 API 모델 ID | gemini-decision-1 | jev-1.14.0 |
| 직접 API 입력 가격, 1M tokens당 USD | $0.10 | $0.042 |
| 직접 API 출력 토큰 요금 | $0 | $0 |
| Artificial Analysis Decision Index | 66 | 66 |
| AA 벤치마크 1M개 작업당 비용, USD | $345 | $156 |
| AA 작업당 시간, Time per Task | 211 ms | 92 ms |
AA 수치에서는 반올림한 지수 점수가 같고, 비용과 시간은 Jev에 유리합니다. 하지만 실제 도구 선택 질문에서도 두 모델의 정확도가 같다는 뜻은 아닙니다. 벤치마크 작업은 HTTP 요청과도 다른 단위입니다. 이 수치에 실제 요청 수를 곱해 비용을 계산하면 안 됩니다.
Google은 자체 출시 벤치마크 묶음에서 앞선다고 설명합니다. 공통 벤치마크에서는 Interactions API로 사용하는 Gemini 3.5 Flash-Lite보다 비용이 거의 5x 낮다고도 보고합니다. 이는 AA 지수와 다른 비교입니다. 모든 작업에서 Jev보다 우수하다는 근거는 아닙니다.
Artificial Analysis는 11월 12일 출시 분석에서 Gemini의 Brier score를 0.18, Jev를 0.19로 보고했습니다. 이 지표는 예측 확률의 오차를 측정하므로 낮을수록 좋습니다. 종합 점수의 작은 차이만으로 애플리케이션에 안전한 신뢰도 임곗값을 정할 수는 없습니다.
Google의 지연 시간 주장에도 구체적인 조건이 있습니다. 모델 연산 시간의 중앙값은 50–100 ms이고, 종단 간 시간은 150–250 ms입니다. 컨텍스트가 최대 16K tokens인 경우에 해당하며, 질문 수가 1~100개일 때 지연 시간이 거의 일정합니다. 이 주장을 1,000개의 질문이나 전체 256K 컨텍스트로 확대해서는 안 됩니다.
멀티모달 작업에서는 차이가 더 분명합니다. Google은 텍스트, 이미지, 오디오, 비디오, PDF의 기본 입력 지원을 문서화했습니다. TypeSafe 모델 문서는 텍스트와 이미지를 나열하지만, 오디오나 비디오를 직접 지원하지는 않습니다. TypeSafe는 Jev 1.14 발표에서도 이미지 기능을 실험적 기능으로 설명합니다.
녹음, 비디오, PDF를 바탕으로 결정하려면 Gemini부터 시험합니다. 기존 텍스트 라우터에서는 Jev부터 시작합니다. 정답 라벨이 있는 테스트에서 오류가 줄고, 지연 시간이 허용 범위에 들며, 전체 처리 비용도 낮아진다면 선택을 바꿉니다.
공유 입력이 비용에 미치는 영향
같은 입력을 평가하는 관련 질문은 함께 보냅니다. Google은 공유 입력을 요청당 한 번만 청구합니다. 각 질문의 지시문, 기준, 형식에 사용되는 토큰은 여전히 추가됩니다.
2026-11-13에 확인한 직접 유료 API 요금으로 계산하면 다음과 같습니다.
request cost in USD =
(shared input tokens + all question tokens) × $0.10 / 1,000,000
공유 입력이 10,000 tokens이고 질문이 100개인 경우를 추정합니다. 각 질문은 형식을 포함해 과금 대상 토큰 80개를 추가한다고 가정합니다.
| 요청 구성 | 예상 과금 입력 | 예상 직접 API 비용 |
|---|---|---|
| 100개 질문을 한 요청으로 전송 | 10,000 + 100 × 80 = 18,000 tokens | $0.0018 |
| 입력을 반복하는 100개의 개별 요청 | 100 × (10,000 + 80) = 1,008,000 tokens | $0.1008 |
이는 Gemini에 요청을 보내는 두 가지 방식을 비교한 것입니다. 공유 입력을 평가하는 기능이 Google에만 있다는 주장은 아닙니다.
추정치에는 재시도, 후속 모델 호출, 게이트웨이 수수료가 포함되지 않습니다. 할인이나 무료 할당량도 적용하지 않은 계산입니다. result.usage.total_input_tokens를 사용하면 가정한 토큰 수를 실제 사용량으로 바꿀 수 있습니다.
여러 질문을 하나의 대화형 요청에 넣는 것과 비동기 배치 작업을 제출하는 것도 다릅니다. Google 가격 페이지에 따르면 Gemini Decision 1은 Batch API를 지원하지 않습니다.
Python으로 도구 선택 예제 실행하기
첫 테스트에서는 Gemini API를 직접 사용합니다. 이렇게 하면 게이트웨이의 스키마 변환을 첫 동작 확인에서 제외할 수 있습니다.
아래에서 고정한 SDK 버전에는 Python 3.11 이상이 필요합니다. Google의 API 키 안내에 따라 키를 만들고 지원 지역을 확인합니다.
테스트에는 합성 입력을 사용합니다. 비공개 저장소의 내용을 보내기 전에 Gemini API 서비스 약관을 검토합니다.
SDK 설치와 키 불러오기
다음 명령을 Bash에서 실행합니다. 키를 입력하는 동안 값이 표시되지 않으며, 실제 키 값이 명령 기록에 직접 남지 않습니다.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install "google-genai==3.2.0"
read -rs GEMINI_API_KEY && export GEMINI_API_KEY
예제는 이 환경 변수의 값을 클라이언트에 명시적으로 전달합니다. 텍스트 생성 메서드 대신 v1beta와 client.decisions.create를 사용합니다. 이에 해당하는 직접 REST 호출은 POST https://generativelanguage.googleapis.com/v1beta/decisions입니다.
응답을 라우팅 계획으로 변환하기
다음 코드를 route_decision.py로 저장합니다. 세 가지 유형의 질문을 모두 보내고, 응답 유형을 검증한 다음, 프로그램에서 읽을 수 있는 라우팅 계획을 출력합니다.
import json
import os
from google import genai
from google.genai.decisions import ChoiceAnswer, NoulAnswer, ScoreAnswer
api_key = os.environ.get("GEMINI_API_KEY")
if not api_key:
raise SystemExit("Set GEMINI_API_KEY before running this script.")
client = genai.Client(
api_key=api_key,
http_options={"api_version": "v1beta"},
)
try:
result = client.decisions.create(
model="gemini-decision-1",
input=(
"Task: Explain why parse_config rejects an empty YAML file. "
"Repository: Python service with src/config.py and "
"tests/test_config.py. No file contents are provided. "
"Start with read-only investigation."
),
questions={
"needs_repo": {
"type": "noul",
"instructions": "Must the next step inspect repository files?",
},
"next_tool": {
"type": "choice",
"instructions": "Choose the next read-only investigation step.",
"criteria": {
"read_repo": "Inspect existing source files or tests.",
"read_docs": "Look up public API behavior.",
"no_tool": "The supplied text is sufficient.",
"human_review": "The task is ambiguous or outside these options.",
},
},
"effort": {
"type": "score",
"instructions": "Rate the investigation effort this task needs.",
"criteria": [
"Simple lookup or local explanation.",
"Investigation across source code and tests.",
"Architecture or security analysis with several dependencies.",
],
},
},
)
except Exception as exc:
raise SystemExit(
f"Decision request failed ({type(exc).__name__}); no action selected."
) from None
answers = result.answers or {}
repo = answers.get("needs_repo")
tool = answers.get("next_tool")
effort = answers.get("effort")
if not (
isinstance(repo, NoulAnswer)
and isinstance(tool, ChoiceAnswer)
and isinstance(effort, ScoreAnswer)
and result.usage is not None
):
raise SystemExit("Incomplete decision response; send this task for review.")
# Illustrative thresholds. Tune them on labeled traffic before deployment.
next_tool = tool.choice if tool.confidence >= 0.85 else "human_review"
if next_tool == "read_repo" and repo.noul < 0.85:
next_tool = "human_review"
if next_tool not in {"read_repo", "read_docs", "no_tool", "human_review"}:
next_tool = "human_review"
model_tier = (
"reasoning"
if effort.score >= 1.5 or effort.confidence < 0.80
else "small"
)
print(json.dumps({
"next_tool": next_tool,
"model_tier": model_tier,
"repository_probability": repo.noul,
"tool_confidence": tool.confidence,
"effort_score": effort.score,
"input_tokens": result.usage.total_input_tokens,
"output_tokens": result.usage.total_output_tokens,
}, indent=2))
같은 Bash 세션에서 실행합니다.
python route_decision.py
호출에 성공하면 요청한 세 키에 해당하는 응답을 반환하며, 출력 토큰 수는 0으로 보고됩니다. 스크립트에는 도구 라벨, 모델 등급 라벨, 확률, 사용량이 출력되어야 합니다. 특정 확률이나 경로가 반드시 나온다고 가정해서는 안 됩니다.
임곗값 0.85, 0.80, 1.5는 애플리케이션 정책을 보여 주는 예시이며 공급자의 권장값이 아닙니다. small과 reasoning은 로컬 라우팅 라벨이지 API 모델 ID가 아닙니다.
프로그램은 계획만 생성합니다. 파일을 읽거나 명령을 실행하지 않으며, 선택한 모델 등급을 호출하지도 않습니다. 에이전트 제어 코드는 이 라벨을 승인된 도구와 배포된 모델에 연결해야 합니다. 파일 시스템 권한과 명령 실행 승인은 모델의 판단과 별도로 관리합니다.
업무 자동화에서도 같은 분리가 필요합니다. Jev 티켓 라우팅 작업 흐름에서는 분류를 검증 및 검토 담당자에게 전달하는 절차와 연결하는 방법을 설명합니다.
무료 등급 한도와 예상 오류
부하 테스트 전에 요청 할당량과 토큰 할당량을 모두 확인합니다. 질문 수 한도가 높다고 요청 속도 제한이 없어지는 것은 아닙니다.
2026-11-13에 확인한 Google의 Gemini Decision 1 공개 한도에는 다음 값이 포함됩니다.
| 사용 등급 | 분당 요청 수 | 분당 입력 토큰 수 | 일일 요청 수 |
|---|---|---|---|
| Free | 200 | 50,000 | 10,000 |
| Tier 1 | 1,500 | 1,000,000 | 50,000 |
배포 전에는 AI Studio에서 프로젝트에 실제 적용되는 한도를 확인합니다. Google은 공개 한도가 처리 용량을 보장하지 않는다고 안내합니다. 추가 유료 등급은 링크된 문서에서 확인할 수 있습니다.
클라이언트에 decisions 속성이 없다면 python -m pip show google-genai로 설치된 패키지를 확인합니다. 스크립트를 실행하는 것과 같은 가상 환경에서 패키지를 업그레이드합니다. Decisions 지원은 SDK 3.2.0에서 추가되었습니다.
요청 속도 제한으로 실패했다면 재시도 전에 요청 빈도나 입력량을 줄입니다. Google의 문제 해결 가이드는 일시적 오류에 대해 지수 백오프, jitter, 횟수를 제한한 재시도를 권장합니다. 대기 시간을 지수적으로 늘리고, jitter로 임의의 시간 차이를 추가하는 방식입니다. 일일 할당량을 소진했다면 초기화를 기다리거나 증액해야 합니다. 짧은 간격의 반복 재시도로 해결할 수는 없습니다.
콘텐츠 검토에는 별도의 오류 처리 경로도 필요합니다. 입력 안전 필터가 요청을 차단하면 Decisions API가 응답 대신 400 Bad Request를 반환할 수 있습니다. 요청 차단은 정책 확인 질문에 “아니요”라고 답한 것과 다릅니다. 해당 사례를 검토 담당자나 승인된 다른 처리 경로로 보냅니다. 응답이 없다는 이유로 다음 작업을 허용해서는 안 됩니다.
OpenRouter와 Vercel에서 같은 요청을 사용할 수 있는가?
두 서비스 모두 google/gemini-decision-1을 제공하지만, 인터페이스는 Google을 직접 호출하는 Python 예제와 다릅니다. 기존 연동 방식에 맞춰 게이트웨이를 선택해야 합니다. 기본 URL만 바꾸는 것으로는 충분하지 않습니다.
OpenRouter 모델 페이지에 해당 모델이 등록되어 있습니다. Decisions API 참조 문서는 POST https://openrouter.ai/api/alpha/decisions를 안내하며, 공유 콘텐츠는 state로 전달합니다. 엔드포인트는 alpha 단계이므로 스키마가 바뀔 수 있습니다. 모델 페이지에는 현재 EU 내 지역 라우팅을 사용할 수 없다는 내용도 있습니다.
Vercel 출시 문서에도 같은 모델 ID가 나옵니다. PDF, 오디오, 비디오 입력에는 해당 문서에서 설명하는 AI SDK 7 경로가 필요합니다. TypeSafe 호환 API와 Decisions API는 텍스트와 이미지를 지원합니다.
Vercel의 결정 인터페이스 문서는 인터페이스별 요청 구조 차이도 설명합니다. AI SDK는 state와 boolean을 사용합니다. HTTP Decisions 인터페이스는 input과 predicate를 사용합니다. Google의 noul 요청을 그대로 복사하지 말고, 문서에 나온 스키마에 맞게 바꿔야 합니다.
게이트웨이에 모델이 등록되어 있다고 모든 국가에서 접근할 수 있는 것은 아닙니다. 데이터가 특정 지역에 있어야 한다는 요구 사항을 충족한다는 뜻도 아닙니다. 프로덕션 트래픽을 옮기기 전에 이용 자격, 데이터 처리 방식, 게이트웨이 요금을 확인합니다.
라우터를 교체하기 전에 측정할 항목
새 라우터가 실제 동작을 제어하지 못하는 상태에서 먼저 실행합니다. 제안한 경로를 정답 라벨이 있는 예제 및 기존 시스템의 결정과 비교합니다.
자동화 비율을 고정한 상태에서 잘못된 자동 동작을 측정합니다. 대체 경로로 넘어가는 빈도, 종단 간 p50 및 p95 지연 시간, 재시도, 총비용도 기록합니다. 모델 버전, 질문 표현, 후보 목록을 바꾸면 임곗값을 다시 확인합니다.
정해진 규칙으로 처리할 수 있는 작업은 코드에 남깁니다. 알려진 종료 코드를 확인하거나 정확한 권한 규칙을 대조할 때 결정 모델의 이점은 크지 않습니다. 패치, 설명, 새로 구성한 인수가 필요한 도구 호출을 만들어야 한다면 여전히 생성형 모델이 적합합니다.
코딩 작업에서는 선택한 실행 모델의 비용과 실패도 비교에 포함합니다. 코딩 에이전트의 작업당 비용 가이드는 라우팅 호출이 더 저렴해도 작업 완료까지의 비용은 더 높아질 수 있는 이유를 설명합니다.