Гибкий вывод
API Gemini Flex — это уровень обработки данных, предлагающий 50% снижение стоимости по сравнению со стандартными тарифами в обмен на переменную задержку и доступность по принципу «наилучших усилий». Он разработан для рабочих нагрузок, устойчивых к задержкам, требующих синхронной обработки, но не нуждающихся в производительности реального времени стандартного API.
Как использовать Flex
Для использования уровня Flex укажите в запросе параметр service_tier как flex . По умолчанию запросы используют стандартный уровень, если это поле опущено.
Python
from google import genai
client = genai.Client()
try:
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="Analyze this dataset for trends...",
service_tier='flex'
)
print(interaction.steps[-1].content[0].text)
except Exception as e:
print(f"Flex request failed: {e}")
JavaScript
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
async function main() {
try {
const interaction = await client.interactions.create({
model: 'gemini-3-flash-preview',
input: 'Analyze this dataset for trends...',
serviceTier: 'flex'
});
console.log(interaction.steps.at(-1).content[0].text);
} catch (e) {
console.log(`Flex request failed: ${e}`);
}
}
await main();
ОТДЫХ
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"model": "gemini-3-flash-preview",
"input": "Analyze this dataset for trends...",
"service_tier": "flex"
}'
Как работает вывод Flex
Функция Gemini Flex Inference устраняет разрыв между стандартным API и 24-часовым временем обработки данных в рамках пакетного API . Она использует вычислительные мощности в непиковые часы, которые можно «отключать», предоставляя экономичное решение для фоновых задач и последовательных рабочих процессов.
| Особенность | Флекс | Приоритет | Стандарт | Партия |
|---|---|---|---|---|
| Цены | скидка 50% | На 75-100% больше, чем стандартная версия. | Полная цена | скидка 50% |
| Задержка | Минуты (целевое значение 1–15 минут) | Низкий уровень (секунды) | Секунды в минуты | До 24 часов |
| Надежность | Максимально возможные варианты (можно сбросить) | Высокая (не линяет) | Высокий / Средне-высокий | Высокий (для обеспечения высокой пропускной способности) |
| Интерфейс | Синхронный | Синхронный | Синхронный | Асинхронный |
Основные преимущества
- Экономическая эффективность : существенная экономия на непроизводственных оценках, фоновых агентах и обогащении данных.
- Простота использования : достаточно добавить всего один параметр к существующим запросам.
- Синхронные рабочие процессы : идеально подходит для последовательных цепочек API, где следующий запрос зависит от результата предыдущего, что делает его более гибким, чем пакетный режим, для агентных рабочих процессов.
Варианты использования
- Офлайн-оценка : проведение регрессионных тестов или составление рейтинговых таблиц с участием студентов магистратуры в роли экспертов.
- Фоновые агенты : Последовательные задачи, такие как обновление CRM, создание профилей или модерация контента, где допустима задержка в несколько минут.
- Исследования с ограниченным бюджетом : академические эксперименты, требующие большого количества токенов при ограниченном бюджете.
Ограничения скорости
Трафик, передаваемый через Flex Inference, учитывается в общих лимитах скорости ; он не предлагает расширенных лимитов скорости, как Batch API .
Вместимость, которую можно свернуть
Трафик Flex обрабатывается с более низким приоритетом. При резком увеличении стандартного трафика запросы Flex могут быть вытеснены или отброшены для обеспечения пропускной способности для пользователей с высоким приоритетом. Если вам требуется определение приоритета, проверьте параметр «Определение приоритета».
коды ошибок
В случае нехватки ресурсов Flex или перегрузки системы API вернет стандартные коды ошибок:
- Ошибка 503: Сервис недоступен : система в данный момент перегружена.
- 429 Слишком много запросов : Ограничения скорости или исчерпание ресурсов.
Ответственность клиента
- Отсутствие резервного варианта на стороне сервера : Во избежание непредвиденных расходов система не будет автоматически переводить запрос Flex на стандартный уровень, если пропускная способность Flex исчерпана.
- Повторные попытки : Вам необходимо реализовать собственную логику повторных попыток на стороне клиента с экспоненциальной задержкой.
- Тайм-ауты : Поскольку запросы Flex могут задерживаться в очереди, мы рекомендуем увеличить тайм-ауты на стороне клиента до 10 минут или более, чтобы избежать преждевременного разрыва соединения.
Настройте временные окна ожидания
Вы можете настроить тайм-ауты для каждого запроса в REST API и клиентских библиотеках. Всегда убедитесь, что ваш клиентский тайм-аут охватывает предполагаемое окно терпения сервера (например, 600 секунд и более для очередей ожидания Flex). SDK ожидают значения тайм-аута в миллисекундах.
Тайм-ауты для каждого запроса
Python
from google import genai
client = genai.Client()
try:
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="why is the sky blue?",
service_tier="flex",
http_options={"timeout": 900000}
)
except Exception as e:
print(f"Flex request failed: {e}")
JavaScript
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
async function main() {
try {
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: "why is the sky blue?",
serviceTier: "flex",
httpOptions: {timeout: 900000}
});
} catch (e) {
console.log(`Flex request failed: ${e}`);
}
}
await main();
Реализовать повторные попытки
Поскольку Flex допускает сброс и завершается с ошибкой 503, вот пример реализации логики повторных попыток для продолжения обработки неудачных запросов:
Python
import time
from google import genai
client = genai.Client()
def call_with_retry(max_retries=3, base_delay=5):
for attempt in range(max_retries):
try:
return client.interactions.create(
model="gemini-3-flash-preview",
input="Analyze this batch statement.",
service_tier="flex",
)
except Exception as e:
if attempt < max_retries - 1:
delay = base_delay * (2 ** attempt) # Exponential Backoff
print(f"Flex busy, retrying in {delay}s...")
time.sleep(delay)
else:
# Fallback to standard on last strike (Optional)
print("Flex exhausted, falling back to Standard...")
return client.interactions.create(
model="gemini-3-flash-preview",
input="Analyze this batch statement."
)
# Usage
interaction = call_with_retry()
print(interaction.steps[-1].content[0].text)
JavaScript
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({});
async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function callWithRetry(maxRetries = 3, baseDelay = 5) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
try {
console.log(`Attempt ${attempt + 1}: Calling Flex tier...`);
const interaction = await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "Analyze this batch statement.",
serviceTier: 'flex',
});
return interaction;
} catch (e) {
if (attempt < maxRetries - 1) {
const delay = baseDelay * (2 ** attempt);
console.log(`Flex busy, retrying in ${delay}s...`);
await sleep(delay * 1000);
} else {
console.log("Flex exhausted, falling back to Standard...");
return await ai.interactions.create({
model: "gemini-3-flash-preview",
input: "Analyze this batch statement.",
});
}
}
}
}
async function main() {
const interaction = await callWithRetry();
console.log(interaction.steps.at(-1).content[0].text);
}
await main();
Цены
Стоимость Flex Inference составляет 50% от стоимости стандартного API и рассчитывается за токен.
Поддерживаемые модели
Следующие модели поддерживают вывод Flex:
| Модель | Гибкий вывод |
|---|---|
| Фонарик Gemini 3.1 | ✔️ |
| Предварительная версия Gemini 3.1 Flash-Lite | ✔️ |
| Gemini 3.1 Pro Preview | ✔️ |
| Предварительный просмотр Gemini 3 Flash | ✔️ |
| Gemini 2.5 Pro | ✔️ |
| Вспышка Gemini 2.5 | ✔️ |
| Фонарь Gemini 2.5 Flash-Lite | ✔️ |
Что дальше?
- Приоритетное определение параметров для сверхнизкой задержки.
- Токены : Разберитесь в токенах.