Gemini Decision 1 и Jev: цены, задержка и настройка Python
Выберите Gemini Decision 1 для мультимодальных решений и сравните Jev на текстовых задачах. Разберите цены и результаты Artificial Analysis, рассчитайте стоимость общих входных данных, запустите выбор инструмента на Python и проверьте квоты, пороги уверенности и различия API-шлюзов.
Содержание

Попробуйте Gemini Decision 1 для маршрутизации по мультимодальным данным и множества независимых проверок одного ввода. Для маршрутизации текстовых запросов сначала сравните результат с Jev, особенно когда важны цена и задержка. Когда нужны код, объяснение, произвольные извлечённые значения или аргументы инструментов, используйте генеративную модель.
Google представила Gemini Decision 1 11 ноября 2026 года. По состоянию на 2026-11-13 Decisions API доступен через Gemini API, а поддержка Python есть в google-genai начиная с 3.2.0. Это отдельный API для принятия решений, а не замена модели в чате для работы с кодом.
Какие ответы возвращает 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 стоит проверить отдельно, когда встроенная поддержка разных типов данных меняет способ решения задачи.
Цены прямого доступа взяты со страницы тарифов Google и из пояснения TypeSafe о стоимости Jev. Результаты тестов приведены из карточек Gemini Decision 1 и Jev 1.14 на Artificial Analysis. Данные — по состоянию на 2026-11-13.
| Показатель | Gemini Decision 1 | Jev 1.14 |
|---|---|---|
| ID модели при прямом доступе | gemini-decision-1 | jev-1.14.0 |
| Цена входа напрямую, USD за 1M tokens | $0.10 | $0.042 |
| Плата за выходные токены напрямую | $0 | $0 |
| Artificial Analysis Decision Index | 66 | 66 |
| Стоимость 1M задач бенчмарка AA, USD | $345 | $156 |
| Время на задачу, AA Time per Task | 211 ms | 92 ms |
Показатели AA говорят в пользу Jev по стоимости и времени при одинаковом округлённом балле индекса. Они не доказывают равную точность на ваших вопросах о выборе инструментов. Задачи бенчмарка также отличаются от HTTP-запросов: не рассчитывайте счёт, умножая эти показатели на число запросов.
Google заявляет о лидерстве в собственном наборе тестов, представленном при запуске. Компания также сообщает о почти 5x меньшей стоимости относительно Gemini 3.5 Flash-Lite через Interactions API на общих тестах. Это другое сравнение, чем индекс AA. Оно не доказывает превосходство над Jev во всех сценариях.
В анализе запуска от 12 ноября Artificial Analysis указала оценку Брайера, или Brier score: 0.18 для Gemini и 0.19 для Jev. Эта метрика измеряет ошибку вероятностного прогноза; меньше — лучше. Небольшая разница в общей оценке не позволяет выбрать безопасный порог уверенности для вашего приложения.
Заявленная Google задержка тоже относится к определённым условиям: медианное время вычислений модели составляет 50–100 ms, полное время запроса — 150–250 ms. Эти цифры относятся к контексту до 16K tokens. При увеличении числа вопросов с 1 до 100 задержка почти не меняется. Не переносите это утверждение на 1,000 вопросов или полный контекст 256K.
Для мультимодальных задач различие заметнее. Google документирует встроенную поддержку текста, изображений, аудио, видео и PDF. В справочнике моделей TypeSafe указаны текст и изображения, но нет встроенной поддержки аудио или видео. В анонсе Jev 1.14 TypeSafe также называет работу с изображениями экспериментальной.
Для решений по аудиозаписям, видео или PDF сначала проверьте Gemini. Для существующего текстового маршрутизатора начните с Jev. Пересмотрите выбор, если тест на размеченных данных покажет меньше ошибок, приемлемую задержку и меньшую стоимость всего процесса.
Как общие входные данные влияют на стоимость?
Отправляйте связанные вопросы вместе, если они проверяют одни и те же данные. Google учитывает общий ввод в оплате один раз на запрос. Каждый вопрос всё равно добавляет токены своих инструкций, критериев и форматирования.
Для прямого платного доступа по тарифу на 2026-11-13 расчёт выглядит так:
request cost in USD =
(shared input tokens + all question tokens) × $0.10 / 1,000,000
Возьмём расчётный пример: общие входные данные занимают 10,000 tokens, а вопросов — 100. Предположим, каждый вопрос добавляет 80 оплачиваемых токенов, включая форматирование.
| Организация запросов | Расчётный оплачиваемый ввод | Расчётная стоимость прямого доступа |
|---|---|---|
| Один запрос со 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 напрямую, если ваш доступ соответствует региональным условиям Google. Так первичную проверку не усложнят различия форматов у API-шлюзов.
Для указанной ниже версии SDK нужен Python 3.11 или новее. Создайте ключ по инструкции Google и проверьте поддерживаемые регионы.
По состоянию на 2026-11-13 России, Беларуси и Ирана нет в этом списке. Условия Gemini API разрешают доступ к сервисам и предоставление API-клиентов пользователям только в поддерживаемых регионах. Не считайте успешное соединение через VPN подтверждением разрешённого доступа.
Для пробного запуска используйте синтетические данные. Перед отправкой содержимого закрытого репозитория изучите правила обработки данных в условиях 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.85, 0.80 и 1.5 показывают возможные правила приложения, а не рекомендации поставщика. Строки small и reasoning — локальные метки маршрутизации, а не ID моделей API.
Программа создаёт план. Она не читает файлы, не выполняет команды и не вызывает модель выбранного уровня. Управляющий код агента должен сопоставить метки с разрешёнными инструментами и развёрнутыми моделями. Права на доступ к файлам и подтверждение команд не должны зависеть только от решения модели.
Тот же принцип действует в бизнес-автоматизации. В разборе маршрутизации обращений с Jev показано, как встроить классификацию в процесс с проверками и передачей спорных случаев человеку.
Какие лимиты действуют и что делать при ошибках?
Перед нагрузочным тестом проверьте ограничения и на число запросов, и на входные токены. Большое допустимое число вопросов не отменяет ограничений частоты запросов.
В опубликованных лимитах Gemini Decision 1 на 2026-11-13 указаны следующие значения:
| Уровень использования | Запросов в минуту | Входных токенов в минуту | Запросов в сутки |
|---|---|---|---|
| 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 — и ограничивать число повторов. Если исчерпана суточная квота, дождитесь её сброса или запросите увеличение. Частые повторы этого не исправят.
Для модерации контента предусмотрите отдельную обработку блокировок. Если фильтры безопасности блокируют входные данные, Decisions API может вернуть 400 Bad Request вместо ответов. Блокировка запроса не означает, что проверяемое условие получило ответ «нет».
Передайте такой случай человеку или обработайте по другому утверждённому сценарию. Не считайте отсутствие ответов разрешением продолжить действие.
Подойдёт ли тот же запрос для OpenRouter и Vercel?
Оба шлюза предлагают google/gemini-decision-1, но их интерфейсы отличаются от прямого Python-вызова Google. Выбирайте шлюз под существующую интеграцию. Одной замены базового URL недостаточно.
Модель указана в каталоге OpenRouter. Его справочник Decisions API описывает POST https://openrouter.ai/api/alpha/decisions; общие входные данные передаются в state. Этот API находится на стадии alpha, и его схема может измениться. На странице модели также указано, что маршрутизация с обработкой данных внутри ЕС пока недоступна.
В анонсе Vercel указан тот же ID модели. Для PDF, аудио и видео нужен описанный там способ подключения через AI SDK 7. TypeSafe-совместимый API и Decisions API поддерживают текст и изображения.
В документации интерфейсов Vercel различаются и форматы запросов. AI SDK использует state и boolean, а HTTP-интерфейс Decisions — input и predicate. Не переносите запрос Google с noul без изменений: сначала адаптируйте его к документированной схеме.
Наличие модели в каталоге шлюза не гарантирует доступ из России или любой другой страны. Оно также не подтверждает соблюдение требований к месту обработки данных. Например, условия Vercel требуют соблюдать применимые торговые ограничения, включая санкции и экспортный контроль.
Перед переносом рабочего трафика проверьте условия доступа, правила обработки данных и комиссии шлюза.
Что измерить перед заменой маршрутизатора?
Сначала запустите новый маршрутизатор без права управлять действиями. Сравните предложенные маршруты с размеченными примерами и решениями действующей системы.
Измеряйте число ошибочных автоматических действий при фиксированной доле автоматизации. Также записывайте частоту перехода на запасной сценарий, полную задержку p50 и p95, повторные попытки и общую стоимость. Заново проверяйте пороги после смены версии модели, формулировки вопроса или списка вариантов.
Детерминированные проверки оставьте в коде. Модель принятия решений мало что добавляет к проверке известного кода завершения или точного правила доступа. Генеративная модель по-прежнему нужна, если результатом должен стать патч, объяснение или вызов инструмента с новыми аргументами.
Для задач программирования включайте в сравнение стоимость и ошибки модели, которая выполняет выбранную работу. В руководстве по стоимости задачи coding-агента объясняется, почему дешёвый вызов маршрутизатора может увеличить стоимость завершённой задачи.