การอนุมานแบบยืดหยุ่น
Gemini Flex API เป็นระดับการอนุมานที่ช่วยลดต้นทุนได้ 50% เมื่อเทียบกับอัตรามาตรฐาน แลกกับการหน่วงเวลาที่เปลี่ยนแปลงได้และความพร้อมใช้งานอย่างเต็มที่ API นี้ออกแบบมาสำหรับภาระงานที่ยอมรับการหน่วงเวลาได้ ซึ่งต้องมีการประมวลผลแบบซิงโครนัส แต่ไม่จำเป็นต้องมีประสิทธิภาพแบบเรียลไทม์ของ API มาตรฐาน
วิธีใช้แบบยืดหยุ่น
หากต้องการใช้ระดับแบบยืดหยุ่น ให้ระบุ service_tier เป็น flex ในคำขอ โดยค่าเริ่มต้น คำขอจะใช้ระดับมาตรฐานหากละเว้นช่องนี้
Python
from google import genai
client = genai.Client()
try:
interaction = client.interactions.create(
model="gemini-3.5-flash",
input="Analyze this dataset for trends...",
service_tier='flex'
)
print(interaction.output_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.5-flash',
input: 'Analyze this dataset for trends...',
service_tier: 'flex'
});
console.log(interaction.output_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" \
-H "Api-Revision: 2026-05-20" \
-d '{
"model": "gemini-3.5-flash",
"input": "Analyze this dataset for trends...",
"service_tier": "flex"
}'
วิธีการทำงานของการอนุมานแบบยืดหยุ่น
การอนุมานแบบยืดหยุ่นของ Gemini ช่วยลดช่องว่างระหว่าง API มาตรฐานกับ API แบบกลุ่มที่ใช้เวลาดำเนินการ 24 ชั่วโมง ของ Batch API โดยใช้ความสามารถในการประมวลผลนอกช่วงเวลาที่มีการใช้งานสูงสุด ซึ่งสามารถลดได้ เพื่อมอบโซลูชันที่คุ้มค่าสำหรับงานเบื้องหลังและเวิร์กโฟลว์แบบลำดับ
| ฟีเจอร์ | ยืดหยุ่น | รายการสำคัญ | มาตรฐาน | กลุ่ม |
|---|---|---|---|---|
| การกำหนดราคา | ส่วนลด 50% | มากกว่ามาตรฐาน 75-100% | ราคาเต็ม | ส่วนลด 50% |
| การหน่วงเวลา | นาที (เป้าหมาย 1-15 นาที) | ต่ำ (วินาที) | วินาทีถึงนาที | สูงสุด 24 ชั่วโมง |
| ความเชื่อถือได้ | อย่างเต็มที่ (ลดได้) | สูง (ลดไม่ได้) | สูง / สูงปานกลาง | สูง (สำหรับอัตราการส่งข้อมูล) |
| อินเทอร์เฟซ | แบบซิงโครนัส | แบบซิงโครนัส | แบบซิงโครนัส | แบบอะซิงโครนัส |
สิทธิประโยชน์ที่สำคัญ
- ความคุ้มค่า: ประหยัดค่าใช้จ่ายได้อย่างมากสำหรับการประเมินที่ไม่ใช่การใช้งานจริง, เอเจนต์เบื้องหลัง และการเพิ่มคุณค่าของข้อมูล
- ความยุ่งยากต่ำ: เพียงเพิ่มพารามิเตอร์เดียวลงในคำขอที่มีอยู่
- เวิร์กโฟลว์แบบซิงโครนัส: เหมาะอย่างยิ่งสำหรับเชน API แบบลำดับที่คำขอถัดไปขึ้นอยู่กับเอาต์พุตของคำขอก่อนหน้า ซึ่งทำให้มีความยืดหยุ่นมากกว่า Batch สำหรับเวิร์กโฟลว์แบบเอเจนต์
กรณีการใช้งาน
- การประเมินแบบออฟไลน์: การทดสอบการถดถอยหรือลีดเดอร์บอร์ด "LLM-as-a-judge"
- เอเจนต์เบื้องหลัง: งานแบบลำดับ เช่น การอัปเดต CRM, การสร้างโปรไฟล์ หรือการกลั่นกรองเนื้อหาที่ยอมรับการหน่วงเวลาได้เป็นนาที
- การวิจัยที่ถูกจำกัดด้วยงบประมาณ: การทดลองทางวิชาการที่ต้องใช้โทเค็นจำนวนมากโดยมีงบประมาณจำกัด
ขีดจำกัดอัตรา
การเข้าชมการอนุมานแบบยืดหยุ่นจะนับรวมในขีดจำกัดอัตราทั่วไป โดยไม่มี ขีดจำกัดอัตราที่ขยายออกไปเหมือนกับ Batch API
ความสามารถในการลด
ระบบจะถือว่าการเข้าชมแบบยืดหยุ่นมีความสำคัญต่ำกว่า หากมีการเข้าชมมาตรฐานเพิ่มขึ้นอย่างรวดเร็ว ระบบอาจขัดจังหวะหรือนำคำขอแบบยืดหยุ่นออกเพื่อให้มีความสามารถในการรองรับผู้ใช้ที่มีลำดับความสำคัญสูง หากต้องการการอนุมานที่มีลำดับความสำคัญสูง ให้ดู การอนุมานที่มีลำดับความสำคัญ
รหัสข้อผิดพลาด
เมื่อความสามารถในการรองรับแบบยืดหยุ่นไม่พร้อมใช้งานหรือระบบมีการใช้งานหนาแน่น API จะแสดงรหัสข้อผิดพลาดมาตรฐาน ดังนี้
- 503 ไม่พร้อมให้บริการ: ขณะนี้ระบบมีความสามารถในการรองรับสูงสุดแล้ว
- 429 มีคำขอมากเกินไป: ขีดจำกัดอัตราหรือทรัพยากรหมด
ความรับผิดชอบของไคลเอ็นต์
- ไม่มีการย้อนกลับฝั่งเซิร์ฟเวอร์: เพื่อป้องกันค่าใช้จ่ายที่ไม่คาดคิด ระบบจะไม่ ยกระดับคำขอแบบยืดหยุ่นเป็นระดับมาตรฐานโดยอัตโนมัติหากความสามารถในการรองรับแบบยืดหยุ่น เต็ม
- การลองอีกครั้ง: คุณต้องใช้ตรรกะการลองอีกครั้งฝั่งไคลเอ็นต์ของคุณเองด้วย Exponential Backoff
- ระยะหมดเวลา: เนื่องจากคำขอแบบยืดหยุ่นอาจอยู่ในคิว เราจึงแนะนำให้ เพิ่มระยะหมดเวลาฝั่งไคลเอ็นต์เป็น 10 นาทีขึ้นไปเพื่อหลีกเลี่ยงการ ปิดการเชื่อมต่อก่อนเวลา
ปรับกรอบเวลาระยะหมดเวลา
คุณสามารถกำหนดค่าระยะหมดเวลาต่อคำขอสำหรับ REST API และไลบรารีของไคลเอ็นต์ได้ ตรวจสอบเสมอว่าระยะหมดเวลาฝั่งไคลเอ็นต์ครอบคลุมกรอบเวลาที่เซิร์ฟเวอร์ตั้งใจจะรอ (เช่น 600 วินาทีขึ้นไปสำหรับคิวรอแบบยืดหยุ่น) SDK คาดหวังค่าระยะหมดเวลาเป็นมิลลิวินาที
ระยะหมดเวลาต่อคำขอ
Python
from google import genai
client = genai.Client(http_options={"timeout": 900000})
try:
interaction = client.interactions.create(
model="gemini-3.5-flash",
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.5-flash",
input: "why is the sky blue?",
service_tier: "flex",
}, {timeout: 900000});
} catch (e) {
console.log(`Flex request failed: ${e}`);
}
}
await main();
ใช้การลองอีกครั้ง
เนื่องจากแบบยืดหยุ่นสามารถลดได้และล้มเหลวโดยมีข้อผิดพลาด 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.5-flash",
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:
print("Flex exhausted, falling back to Standard...")
return client.interactions.create(
model="gemini-3.5-flash",
input="Analyze this batch statement."
)
interaction = call_with_retry()
print(interaction.output_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.5-flash",
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.5-flash",
input: "Analyze this batch statement.",
});
}
}
}
}
async function main() {
const interaction = await callWithRetry();
console.log(interaction.output_text);
}
await main();
การกำหนดราคา
การอนุมานแบบยืดหยุ่นมีราคาอยู่ที่ 50% ของ API มาตรฐาน และเรียกเก็บเงินต่อโทเค็น
โมเดลที่รองรับ
โมเดลต่อไปนี้รองรับการอนุมานแบบยืดหยุ่น
| รุ่น | การอนุมานแบบยืดหยุ่น |
|---|---|
| Gemini 3.5 Flash | ✔️ |
| 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 | ✔️ |
ขั้นตอนถัดไป
- การอนุมานที่มีลำดับความสำคัญสำหรับเวลาในการตอบสนองต่ำมาก
- โทเค็น: ทำความเข้าใจโทเค็น