הסקת מסקנות גמישה
Gemini Flex API הוא מסלול תמחור להיקש שמציע הפחתה של 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();
REST
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"
}'
איך פועל הסקת המסקנות הגמישה
ההסקה של Gemini Flex מגשרת על הפער בין ה-API הרגיל לבין זמן התגובה של 24 שעות של Batch API. הוא משתמש בקיבולת מחשוב מחוץ לשעות השיא שאפשר להקצות מחדש, כדי לספק פתרון חסכוני למשימות ברקע ולתהליכי עבודה רציפים.
| תכונה | Flex | עדיפות | רגיל | Batch |
|---|---|---|---|---|
| תמחור | הנחה של 50% | 75% עד 100% יותר מבתוכנית Standard | מחיר מלא | הנחה של 50% |
| זמן אחזור | דקות (יעד של 15-1 דקות) | נמוך (שניות) | שניות לדקות | עד 24 שעות |
| אמינות | האיכות הטובה ביותר (ניתן להפחית את האיכות) | גבוהה (לא נושרת) | גבוהה / בינונית-גבוהה | גבוהה (לתפוקה) |
| ממשק | סינכרוני | סינכרוני | סינכרוני | אסינכרוני |
יתרונות עיקריים
- יעילות בעלויות: חיסכון משמעותי בהערכות שאינן בסביבת ייצור, בסוכני רקע ובהעשרת נתונים.
- קלות שימוש: כל מה שצריך לעשות הוא להוסיף פרמטר אחד לבקשות הקיימות.
- תהליכי עבודה סינכרוניים: מתאימים במיוחד לשרשראות של בקשות API שבהן הבקשה הבאה תלויה בפלט של הבקשה הקודמת. הם גמישים יותר מפעולות מקובצות בתהליכי עבודה של סוכנים.
תרחישים לדוגמה
- הערכות אופליין: הרצת בדיקות רגרסיה או טבלאות השוואה של מודלים גדולים של שפה (LLM) בתור שופטים.
- סוכנים ברקע: משימות רציפות כמו עדכוני CRM, בניית פרופילים או משימות של מודרציה של תוכן, שבהן עיכוב של כמה דקות הוא סביר.
- מחקרים בהגבלת תקציב: ניסויים אקדמיים שנדרש בהם נפח גבוה של טוקנים בהגבלת תקציב.
מגבלות קצב
תנועת ההסקה של Flex נספרת במסגרת מגבלות הקצב הכלליות, ולא מוצעות לה מגבלות קצב מורחבות כמו ב-Batch API.
קיבולת שניתן להקצות
התנועה הגמישה מקבלת עדיפות נמוכה יותר. אם יש עלייה חדה בתנועה הרגילה, יכול להיות שבקשות Flex יידחו או יבוטלו כדי להבטיח קיבולת למשתמשים בעדיפות גבוהה. אם אתם מחפשים הסקה בעדיפות גבוהה, כדאי לעיין במאמר בנושא הסקה בעדיפות גבוהה
קודי שגיאה
אם הקיבולת הגמישה לא זמינה או שהמערכת עמוסה, ה-API יחזיר קודי שגיאה רגילים:
- 503 השירות לא זמין: המערכת נמצאת כרגע בקיבולת מלאה.
- 429 Too Many Requests: חריגה ממגבלות קצב או ניצול יתר של משאבים.
באחריות הלקוח
- אין מעבר אוטומטי לגיבוי בצד השרת: כדי למנוע חיובים לא צפויים, המערכת לא תשדרג אוטומטית בקשת Flex לרמה Standard אם הקיבולת של Flex מלאה.
- ניסיונות חוזרים: אתם צריכים להטמיע לוגיקה משלכם לביצוע ניסיונות חוזרים בצד הלקוח עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff).
- פסק זמן (timeout): בקשות Flex עשויות להמתין בתור, ולכן מומלץ להגדיל את פסק הזמן בצד הלקוח ל-10 דקות או יותר כדי למנוע סגירה מוקדמת של החיבור.
שינוי חלונות הזמן הקצוב לתפוגה
אפשר להגדיר פסק זמן לכל בקשה עבור API בארכיטקטורת REST וספריות לקוח. חשוב לוודא תמיד שזמן קצוב לתפוגה בצד הלקוח מכסה את חלון ההמתנה המיועד של השרת (לדוגמה, 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 הרגיל, והחיוב הוא לפי טוקן.
מודלים נתמכים
המודלים הבאים תומכים בהסקת מסקנות גמישה:
| דגם | הסקת מסקנות גמישה |
|---|---|
| Gemini 3.1 Flash-Lite | ✔️ |
| גרסת טרום-השקה של Gemini 3.1 Flash-Lite | ✔️ |
| Gemini 3.1 Pro Preview | ✔️ |
| תצוגה מקדימה של Gemini 3 Flash | ✔️ |
| Gemini 2.5 Pro | ✔️ |
| Gemini 2.5 Flash | ✔️ |
| Gemini 2.5 Flash-Lite | ✔️ |
המאמרים הבאים
- הסקת עדיפות לזמן טעינה קצר במיוחד.
- טוקנים: הסבר על טוקנים.