Flex inference
Gemini Flex API هو مستوى استنتاج يتيح خفض التكلفة بنسبة% 50 مقارنةً بالأسعار العادية، مقابل وقت استجابة متغيّر وتوفّر بأفضل جهد. تم تصميمها لأحمال العمل التي تتحمّل وقت الاستجابة وتتطلّب معالجة متزامنة ولكنّها لا تحتاج إلى الأداء في الوقت الفعلي الذي توفّره واجهة برمجة التطبيقات العادية.
كيفية استخدام Flex
لاستخدام فئة Flex، حدِّد service_tier على أنّه flex في طلبك. تستخدم الطلبات تلقائيًا الفئة العادية في حال حذف هذا الحقل.
Python
# This will only work for SDK newer than 2.0.0
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
// This will only work for SDK newer than 2.0.0
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...',
service_tier: 'flex'
});
console.log(interaction.steps.at(-1).content[0].text);
} catch (e) {
console.log(`Flex request failed: ${e}`);
}
}
await main();
REST
# Specifies the API revision to avoid breaking changes when they become default
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3-flash-preview",
"input": "Analyze this dataset for trends...",
"service_tier": "flex"
}'
طريقة عمل استنتاج Flex
تساعد Gemini Flex Inference في سد الفجوة بين واجهة برمجة التطبيقات العادية وBatch API التي تستغرق 24 ساعة. تستفيد هذه الخدمة من سعة الحوسبة "القابلة للتخفيض" في غير أوقات الذروة لتوفير حلّ فعّال من حيث التكلفة للمهام التي تعمل في الخلفية وسير العمل التسلسلي.
| الميزة | التعبير | الأولوية | خطة "الرزمة العادية" | مجمّعة |
|---|---|---|---|---|
| الأسعار | خصم بنسبة% 50 | أكثر بنسبة تتراوح بين 75% و100% من خطة Standard | السعر الكامل | خصم بنسبة% 50 |
| وقت الاستجابة | الدقائق (المدة المستهدَفة من دقيقة واحدة إلى 15 دقيقة) | منخفض (ثوانٍ) | من ثوانٍ إلى دقائق | ما يصل إلى 24 ساعة |
| الموثوقية | أفضل جهد (يمكن التخلي عنه) | عالية (غير قابلة للإزالة) | مرتفع / مرتفع إلى حد ما | عالية (لمعدّل نقل البيانات) |
| الواجهة | متزامن | متزامن | متزامن | غير متزامن |
المزايا الرئيسية
- فعالية التكلفة: توفير كبير في التكاليف عند إجراء عمليات التقييم غير الإنتاجية، واستخدام برامج الخلفية، وإثراء البيانات
- سهولة الاستخدام: ما عليك سوى إضافة مَعلمة واحدة إلى طلباتك الحالية.
- نماذج سير العمل المتزامنة: هي الأنسب لسلاسل واجهات برمجة التطبيقات المتسلسلة التي يعتمد فيها الطلب التالي على ناتج الطلب السابق، ما يجعلها أكثر مرونة من "المعالجة المجمّعة" لنماذج سير العمل المستندة إلى الوكلاء.
حالات الاستخدام
- التقييمات بلا إنترنت: إجراء اختبارات الانحدار أو قوائم الصدارة باستخدام "نماذج اللغة الكبيرة كحكم"
- الوكلاء الذين يعملون في الخلفية: المهام المتسلسلة، مثل تعديلات نظام إدارة علاقات العملاء أو إنشاء الملفات الشخصية أو الإشراف على المحتوى، حيث يكون التأخير لبضع دقائق مقبولاً
- البحث المقيّد بالميزانية: تجارب أكاديمية تتطلّب عددًا كبيرًا من الرموز المميزة بميزانية محدودة.
حدود معدّل الاستخدام
يتم احتساب عدد الزيارات التي تستخدم ميزة "الاستنتاج المرن" ضمن حدود المعدّل العامة، ولا توفّر حدودًا موسّعة للمعدّل مثل Batch API.
السعة القابلة للخفض
يتم التعامل مع الزيارات المرنة بأولوية أقل. في حال حدوث ارتفاع مفاجئ في عدد الزيارات العادية، قد يتم إيقاف طلبات Flex أو إزالتها لضمان توفّر سعة للمستخدمين ذوي الأولوية العالية. إذا كنت تبحث عن استنتاج ذي أولوية عالية، يمكنك الاطّلاع على الاستنتاج ذو الأولوية.
رموز الخطأ
عندما تكون سعة Flex غير متاحة أو يكون النظام مزدحمًا، ستعرض واجهة برمجة التطبيقات رموز الخطأ العادية التالية:
- 503 Service Unavailable: النظام حاليًا في أقصى طاقته.
- 429 Too Many Requests: حدود المعدّل أو استنفاد الموارد
مسؤولية العميل
- عدم توفّر خيار احتياطي من جهة الخادم: لمنع فرض رسوم غير متوقّعة، لن يرقّي النظام تلقائيًا طلب Flex إلى فئة Standard إذا كانت سعة Flex ممتلئة.
- عمليات إعادة المحاولة: يجب تنفيذ منطق إعادة المحاولة من جهة العميل باستخدام خوارزمية الرقود الأسي الثنائي.
- مهلات: بما أنّ طلبات Flex قد تبقى في صفّ الانتظار، ننصحك بزيادة المهلات من جهة العميل إلى 10 دقائق أو أكثر لتجنُّب إغلاق الاتصال قبل الأوان.
تعديل فترات المهلة
يمكنك ضبط مهلات زمنية لكل طلب في واجهة REST API ومكتبات العملاء. احرص دائمًا على أن يغطي المهلة الزمنية من جهة العميل فترة انتظار الخادم المقصودة (على سبيل المثال، 600 ثانية أو أكثر لقوائم انتظار Flex). تتوقّع حِزم SDK قيم المهلة بالملي ثانية.
انتهاء المهلة لكل طلب
Python
from google import genai
client = genai.Client(http_options={"timeout": 900000})
try:
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input="why is the sky blue?",
service_tier="flex",
)
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?",
service_tier: "flex",
}, {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.",
service_tier: '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 من واجهة برمجة التطبيقات العادية ويتم تحصيل الرسوم لكل رمز مميز.
النماذج المتوافقة
تتيح الطُرز التالية الاستدلال المرن:
| الطراز | Flex inference |
|---|---|
| Gemini 3.1 Flash-Lite | ✔️ |
| معاينة Gemini 3.1 Flash-Lite | ✔️ |
| إصدار تجريبي من Gemini 3.1 Pro | ✔️ |
| معاينة Gemini 3 Flash | ✔️ |
| Gemini 2.5 Pro | ✔️ |
| Gemini 2.5 Flash | ✔️ |
| Gemini 2.5 Flash-Lite | ✔️ |
الخطوات التالية
- استنتاج الأولوية لوقت الاستجابة الفائق السرعة
- الرموز المميزة: تعرَّف على الرموز المميزة.