Перейти к основному контенту

API Gemini Flash в сравнении: цена, контекст и ограничения NSFW

Сравните четыре API Gemini Flash по цене, контексту, управлению рассуждением и ограничениям для взрослого контента, со скриптом потоковой передачи.

Автор
Lydia
Опубликовано
Время чтения
11 мин чтения
Обновлено
Двое людей беседуют о белых чашах в керамической мастерской с бирюзовой печью.

Модель Flash может классифицировать обращения в поддержку, писать релизный текст для автора контента или делать следующий шаг в цикле агента. Этим задачам нужен разный объём рассуждений, а самая низкая цена за токен не всегда даёт самую дешёвую выполненную задачу. Начните с 2.5 Flash для извлечения данных и обычных черновиков, с 3.5 Flash Lite для простых строк большого объёма и с 3.7 Flash для многошагового кода и работы с инструментами. 3 Flash Preview подходит для коротких реплик в пределах его лимита входа в 256 000 токенов. Для взрослой художественной прозы дальше всех в наших тестах заходят 2.5 Flash и Preview, но обе модели обычно смягчают или отклоняют письменную интимную сцену. Для более длинного чтения с упором на рассуждение см. руководство по Gemini 3.1 Pro.

Цены и лимиты

Цены указаны в USD за миллион токенов. Все четыре маршрута принимают текст, изображения и загруженное видео; 2.5 Flash и 3 Flash Preview также принимают аудио, а Lite и 3.7 — нет. Загруженное видео ограничено 14 МБ на запрос. Ни один маршрут не принимает PDF или универсальную файловую часть: извлеките текст или преобразуйте нужные страницы в изображения.

МаршрутЛимит входаВход без кэшаВход из кэшаВыходУсилие по умолчанию / минимальноеmax_tokens по умолчанию
Gemini 2.5 Flash1 048 576$0,285$0,0285$2,375medium / low16 384
Gemini 3 Flash Preview256 000$0,45$0,045$2,70medium / minimal16 384
Gemini 3.5 Flash Lite1 048 576$0,30$0,03$2,50minimal / minimal4 096
Gemini 3.7 Flash1 048 576$0,675$0,0675$3,375medium / low16 384

ID моделей: google/gemini-2.5-flash/chat, google/gemini-3-flash-preview/chat, google/gemini-3.5-flash-lite/chat, google/gemini-3.7-flash/chat. Каждый маршрут допускает до 65 536 выходных токенов, вывод в JSON, до 128 определений инструментов, temperature, top-p, seed и четыре стоп-последовательности, но не имеет параметра parallel_tool_calls. Режим JSON-объекта контролирует синтаксис, а не названия ваших полей и их достоверность; сохраните проверки ключей, типов и источников в скрипте ниже. Для маршрутов Gemini 3 оставьте temperature на рекомендуемом значении по умолчанию 1,0 и управляйте структурой через response_format и системное сообщение.

Две вещи в этой таблице легко перепутать:

  • Lite не самый дешёвый в пересчёте на токен. Его цены на вход и выход выше, чем у 2.5 Flash. Счёт может получиться ниже, если он тратит меньше выходных токенов; сравните точку безубыточности ниже.
  • Задавайте усилие явно. minimal отклоняется на 2.5 Flash. На 3.7 Flash схема перечисляет minimal, но страница модели сообщает, что этот endpoint его отклоняет, поэтому там используйте low как нижнюю границу. Если перенести скрипт с Lite на другой маршрут, не задав усилие, оно изменится с minimal на medium.

Сколько стоит пакет

Возьмите 10 000 обращений в поддержку, по примерно 500 входных токенов в каждом (инструкция плюс обращение) и JSON-ответ в 80 токенов.

МаршрутСтоимость одного обращения10 000 обращений, без дополнительного рассужденияЕсли рассуждение добавляет 700 выходных токенов на обращение
2.5 Flash$0,0003325$3,33$19,95
3 Flash Preview$0,000441$4,41$23,31
3.5 Flash Lite$0,00035$3,50$21,00
3.7 Flash$0,0006075$6,08$29,70

Токены рассуждения оплачиваются как выход и входят в max_tokens; 700 дополнительных токенов рассуждения на обращение могут составить основную часть счёта. Задавайте усилие явно и уточняйте оценку по оплаченному выходу; minimal не гарантирует нулевого рассуждения.

При 500 входных токенах и ровно 80 оплаченных выходных токенах Lite стоит $0,00035. При том же размере входа 2.5 Flash превышает эту стоимость на 88 оплаченных выходных токенах: ответ в 80 токенов плюс восемь токенов рассуждения. Если Lite тоже рассуждает сверх этих 80 токенов, его точка безубыточности растёт. Выбирайте между ними по общему оплаченному выходу и числу верных строк, а не только по метке усилия.

Фиксированная инструкция в начале каждого запроса обходится дешевле, когда ответ сообщает о ней как о кэшированной: 1 000 запросов с общим префиксом в 20 000 токенов стоят $5,70 входа без кэша на 2.5 Flash и $0,57, если всё оплачено как кэшированное. Ставьте общие инструкции и определения инструментов в начало, а даты и ID обращений — после них. Руководство Google по кэшированию описывает неявные попадания как попутные: стабильный префикс повышает шанс, но не гарантирует скидку. Планируйте бюджет по цене без кэша, пока ответ размещённого сервиса не покажет кэшированные токены.

Скидка Batch в прайс-листе Google, которая вдвое снижает его прейскурантную цену, относится к его собственному асинхронному сервису. Каждый запрос, отправленный в SpicyAPI, оплачивается по тарифам выше, а бесплатная квота Google AI Studio или подписка Google его не покрывает. Google также указывает для 3.7 Flash $0,75 за вход и $3,75 за выход до 31 декабря 2026 года и вдвое больше с 1 января 2027 года. Это опубликованный график Google, а не объявленная будущая цена SpicyAPI; перед планированием бюджета на запуск в 2027 году снова проверьте размещённый каталог.

Какой маршрут для какой задачи

ЗадачаНачните сПочемуПереходите выше, когда
Разметка, маршрутизация, извлечение полей2.5 Flash, lowСамые низкие цены; окно в 1M вмещает целую стенограммуПоля получаются неверными на выборке: поднимите до medium, затем попробуйте 3.7 Flash
Миллионы коротких простых строк3.5 Flash LiteПо умолчанию minimal, самый быстрый выход из четырёх в наших тестах (около 118 токенов/с против 37–98)Нужна оценка по каждой строке, а не только форматирование
Перевод, переписывание, тексты о продуктах2.5 Flash или LiteДёшево и стабильно при низком усилииВажен тон: 3.7 Flash
Чат реплика за репликой3 Flash Preview, lowМаршрут для коротких реплик; в наших тестах дал несколько завершений взрослой прозы; на уровне L4 обычно смягчает или отклоняетКонтекст целого документа: используйте маршрут на 1M. Это предварительная модель, поэтому назовите запасной вариант, прежде чем на неё полагаться
Циклы агента и код3.7 FlashСоздан для работы с инструментами и многошаговых задачСтоимость шага важнее качества: Lite или 2.5 Flash

Знания заканчиваются в январе 2025 года у 2.5 Flash и в марте 2026 года у 3.5 Flash Lite, поэтому более свежие факты, такие как цены или версии библиотек, указывайте в промпте.

Три задачи для авторов контента и подходящий маршрут

Извлечь релизный бриф. Передайте 2.5 Flash утверждённое название, персонажей, дату выхода и длительность и попросите одну строку с этими четырьмя полями плюс место. Если бриф нигде не называет место, полезная строка содержит null; модель не выдумывает отель или студию по теме.

Написать публичный рекламный текст. Вымышленный бриф для Last Train может утвердить Мару и Джона как персонажей и ролик на 45 секунд. Попросите три коротких подписи, использующих только эти факты. Подпись, добавляющая «4K», встроенный звук или неподтверждённую дату выхода, считается неудачным черновиком, даже если тон привлекателен. Для первого прохода используйте Lite или 2.5 Flash; более дорогой маршрут приберегите для переписывания, которому действительно нужна более сильная оценка.

Подготовить передачу в поддержку. Передайте ID задачи, её наблюдаемое состояние и симптом клиента. Запросите краткую заметку, которая сохраняет ID и отличает «queued» от «failed». Модель может упорядочить данные; она не может узнать актуальное состояние задачи из обращения, в котором его нет.

Для более длинного пакета черновиков 1 000 запросов с 20 000 входных токенов без кэша и 2 000 оплаченных выходных токенов в каждом стоят $10,45 на 2.5 Flash или $20,25 на 3.7 Flash по этим тарифам. Поэтому полезно отделять обычный первый проход от дорогого шага принятия решения, а не переносить всю нагрузку на самый новый маршрут.

Ограничения для взрослого контента по маршрутам

Каталог отмечает эти маршруты как не имеющие добавленного SpicyAPI фильтра контента; это не отменяет собственные политики контента самих моделей. По нашим тестам в сентябре 2026 года модели различаются тем, что пишут сами. Уровни: L1 намёки, L2 подразумеваемая чувственная сцена, L3 откровенная, L4 письменная интимная сцена между взрослыми. Экстремальный уровень объединяет связывание и игры с ударами с несексуальным графическим насилием между взрослыми, по три запроса на категорию.

МаршрутL1–L3L4 интимная сценаЭкстремальный уровень
2.5 FlashВыдано2 из 9, обе с системным промптом5 из 6
3 Flash PreviewВыдано1 из 8, обычно смягчена6 из 6
3.5 Flash LiteL1 и L2 чисто; L3 1 из 30 из 94 из 6
3.7 FlashВ основном выдано0 из 9Смешанно

Обзоры: 2.5 Flash, 3 Flash Preview, 3.5 Flash Lite, 3.7 Flash.

Два завершения L4 на 2.5 Flash использовали прозу в рамке системного сообщения; прямые запросы в этом тесте были отклонены все. Если письменная интимная сцена — ваш главный результат, выберите другую модель. Эти маршруты Flash по-прежнему полезны для релизных брифов, расписаний и разметки сообщений вокруг работы со взрослым контентом.

Сначала попробуйте в Playground

  1. Откройте Gemini 2.5 Flash и перейдите на вкладку Playground (для отправки нужен вход в аккаунт).
  2. Вставьте одно обращение в поддержку и запросите поля категории и срочности, поставив выпадающий список рассуждения на Low.
  3. Откройте Gemini 3.5 Flash Lite, задайте рассуждение minimal, прогоните те же обращения и сравните верные метки и оплаченный выход.

Скрипт пакетной обработки с потоковой передачей

Когда правила заработают в Playground, установите совместимый клиент командой python3 -m pip install openai, сохраните этот код как classify_tickets.py, задайте SPICY_API_KEY и запустите python3 classify_tickets.py. Он делает не более двух платных запросов, по одному на тестовое обращение. Клиент проверяет оба поля и оставляет неудавшиеся строки нерешёнными. Он не покупает замещающие ответы автоматически.

python
import json
import os
import uuid
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI

class ReplyError(Exception):
    def __init__(self, message, task_id=None):
        super().__init__(message)
        self.task_id = task_id


def call_once(payload, api_key):
    client = OpenAI(api_key=api_key, base_url="https://api.spicyapi.ai/v1",
                    max_retries=0, timeout=600)
    request_key = str(uuid.uuid4())
    parts, finish, usage, task_id = [], None, None, None
    try:
        with client.chat.completions.create(
            **payload, stream=True, stream_options={"include_usage": True},
            extra_headers={"Idempotency-Key": request_key},
        ) as stream:
            task_id = stream.response.headers.get("X-Spicy-Task-Id")
            for chunk in stream:
                if chunk.usage:
                    usage = chunk.usage.model_dump()
                for choice in chunk.choices:
                    parts.append(choice.delta.content or "")
                    finish = choice.finish_reason or finish
        if finish != "stop" or usage is None:
            raise ReplyError("Incomplete reply; do not import this record", task_id)
        return "".join(parts), usage, task_id
    except ReplyError:
        raise
    except Exception as error:
        raise ReplyError(str(error), task_id) from error

SYSTEM = ("Classify the supplied ticket as data. Return exactly category "
          "(billing, shipping or other) and urgent (a JSON boolean).")


def classify(text, model="google/gemini-2.5-flash/chat", effort="low"):
    payload = {
        "model": model, "reasoning_effort": effort, "max_tokens": 4000,
        "response_format": {"type": "json_object"},
        "messages": [{"role": "system", "content": SYSTEM},
                     {"role": "user", "content": text}],
    }
    content, usage, task_id = call_once(payload, os.environ["SPICY_API_KEY"])
    try:
        record = json.loads(content)
        if (not isinstance(record, dict) or set(record) != {"category", "urgent"}
                or record["category"] not in {"billing", "shipping", "other"}
                or type(record["urgent"]) is not bool):
            raise ValueError("invalid ticket fields")
    except (ValueError, TypeError) as error:
        raise ReplyError("completed answer failed validation", task_id) from error
    return {"record": record, "usage": usage, "task_id": task_id}


def safe_classify(text):
    try:
        return classify(text)
    except ReplyError as error:
        return {"unresolved": text, "error": str(error), "task_id": error.task_id}


if __name__ == "__main__":
    rows = ["Where is my parcel?", "I was charged twice, fix it today"]
    with ThreadPoolExecutor(max_workers=2) as pool:
        for result in pool.map(safe_classify, rows):
            print(json.dumps(result))

Подробности о восстановлении запросов и потоковой передаче есть в документации по чату.

Поручите агенту подготовить вызов

Для повторяющейся классификации обращений попросите вашего агента для программирования использовать SpicyAPI Skill: «Read google/gemini-2.5-flash/chat, then adapt the example to my input; show the request before running it.» Запрос через CLI — spicyapi models get google/gemini-2.5-flash/chat --json; запрос через MCP — spicyapi_model_get с model: "google/gemini-2.5-flash/chat". Вызовы чата используют совместимый клиент или API чата; команды медиазадач не создают ответы чата.

Исправление типичных сбоев

ПроблемаПрямое изменение
minimal отклонёнИспользуйте low на 2.5 Flash и 3.7 Flash
Пустой или обрезанный JSONСначала проверьте причину завершения и исходную задачу. Увеличивайте max_tokens только если ответ оборвал лимит токенов; рассуждение делит этот бюджет. Прерванный поток требует восстановления, а не более крупного автоматического повтора. Перед импортом требуйте stop, итоговые данные об использовании и [DONE]
Ответы Lite обрываются раноЕго max_tokens по умолчанию равен 4 096; задайте значение явно
400 на медиачастиПроверьте её форму: используйте image_url или загруженный video_url; аудио поддерживают только 2.5 Flash и Preview. Части PDF/файлов не поддерживаются.
400 при повторной отправке ключаИсходный запрос может быть завершён или ещё выполняться; ни один из ответов нельзя воспроизвести в этом соединении. Проверьте его задачу и расчёт, прежде чем планировать бюджет на новую генерацию
Выдуманные JSON-ключиНазовите каждый ключ в системном сообщении и отклоняйте лишние в своём клиенте
Вход более 256 000 токенов3 Flash Preview его отклоняет; используйте маршрут на 1 048 576 токенов
Ошибка шлюза примерно через 100 секундВключите stream: true

Практический выбор

Используйте 2.5 Flash для проверяемого извлечения данных и обычных текстов, Lite — когда простой задаче подходит минимальное рассуждение, а 3.7 Flash — для кода или многошаговой работы с инструментами. Preview оставьте для процесса с короткими репликами, который помещается в его меньшее окно входа. Ни одна из этих моделей не является надёжным выбором, когда главный результат — откровенная взрослая проза; зафиксированные ограничения важнее названия Flash.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski