Google: Gemini 3.5 Flash (batch)
Gemini 3.5 Flash ผสานความเข้าใจหลายสื่อกับการให้เหตุผลสำหรับโค้ดและงานเอเจนต์หลายขั้นตอน รับข้อความ ภาพ วิดีโอ เสียง และ PDF ส่งออกข้อความ พร้อมเอาต์พุตมีโครงสร้าง เครื่องมือ และขีดจำกัดอินพุต 1,048,576 โทเคนตามโปรไฟล์ที่ระบุ
เกี่ยวกับโมเดล
คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก
Gemini 3.5 Flash เป็นโปรไฟล์โมเดล Flash หลายสื่อของ Google สำหรับงานโค้ดและเอเจนต์ต่อเนื่อง อินพุตที่ระบุคือข้อความ ภาพ วิดีโอ เสียง และ PDF โดยส่งออกข้อความ งานที่เน้นรวมการเขียนโค้ดแบบวนปรับ สำรวจทางเลือกแก้ปัญหา และลำดับคำสั่งกับการใช้เครื่องมือที่ยาวขึ้น รุ่น 3.5 มีตัวควบคุม thinking อินพุตหลายสื่อ และเวิร์กโฟลว์เครื่องมือตามเอกสาร
งานโค้ดรวมข้อกำหนดเขียน ไฟล์ซอร์สที่เกี่ยวข้อง และภาพหน้าจอผลที่ต้องการได้ ให้พฤติกรรมที่พบ พฤติกรรมที่คาดหวัง และข้อจำกัดที่ต้องรักษา ตัวอย่างบรีฟคือ “เทียบภาพหน้าจอกับข้อความคอมโพเนนต์ ระบุจุดไม่ตรงในเวิร์กโฟลว์ฟอร์ม และเสนอการแก้เฉพาะจุดหนึ่งข้อ อธิบายว่ารายละเอียดซอร์สใดสนับสนุนการเปลี่ยน” สำหรับงานเอกสาร ให้หน้าที่เกี่ยวข้องและขอเทียบกับข้อกำหนดชัดแจ้ง พร้อมอ้างอิงต้นทางแต่ละข้อค้นพบ
รุ่นนี้ระบุระดับ thinking minimal, low, medium และ high ค่าเริ่มต้นคือ medium ซึ่งเปลี่ยนจาก high ของ Gemini 3 Flash Preview ระดับ minimal เหมาะกับคำตอบง่ายและการตัดสินใจเครื่องมือตรงไปตรงมา โดยไม่รับรองว่าปิดการให้เหตุผลทั้งหมด low สำหรับงานใช้ขั้นตอนน้อย ส่วน high ให้เหตุผลลึกขึ้นสำหรับคณิตศาสตร์ โค้ด และปัญหาเอเจนต์ยาก Google แนะนำ thinking_level สำหรับควบคุมความพยายามและคงค่า sampling เริ่มต้น แทนพยายามบังคับเหตุผลด้วย temperature, top-p หรือ top-k
พฤติกรรมเด่นคือรักษาบริบทการให้เหตุผลตลอดงานหลายเทิร์น เวิร์กโฟลว์ Interactions ของ Google ส่งบริบทนั้นให้อัตโนมัติ ส่วน GenerateContent ต้องมีประวัติสนทนาทั้งหมดที่ไม่แก้ รวม thought signatures รองรับงานดีบักหรือรีแฟกเตอร์ต่อเนื่องที่เหตุผลก่อนหน้าช่วยขั้นถัดไป เก็บโครงสร้างสนทนาจริง แทนเปลี่ยนทุกคำถามต่อยอดเป็นพรอมป์ต์ไม่เกี่ยวกัน และรักษาชิ้นงานสุดท้ายที่ขอให้ชัดระหว่างทำงาน
ชุดเครื่องมือที่ระบุรวม Google Search, การอิง Google Maps, File Search, Code Execution, URL Context และ Function Calling มาตรฐาน โดยการใช้เครื่องมือผสมและ Computer Use เป็นพรีวิว Structured Outputs ให้ระเบียนข้อมูลที่กำหนดได้ กำหนดจุดประสงค์ฟังก์ชันและนิยามพารามิเตอร์ชัด โมเดลเลือกฟังก์ชัน ส่วนแอปพลิเคชันที่เชื่อมต่อทำงานและคืนผล Google กำหนดให้ผลฟังก์ชันตรงกับการเรียกก่อนหน้าด้วยเอกลักษณ์ ชื่อ และจำนวน ผลหลายสื่อต้องอยู่ภายในคำตอบฟังก์ชัน
ตารางโมเดล API ตรงตัวระบุอินพุตสูงสุด 1,048,576 และเอาต์พุตสูงสุด 65,536 โทเคน ประวัติสนทนาและสื่อรวมอยู่ในงบอินพุต โปรไฟล์นี้ระบุแคชและการประมวลผล batch พร้อม Flex และ Priority เพิ่มเติมในตาราง Google ขีดจำกัดและความสามารถนี้อธิบายรุ่นผู้ผลิต ไม่ได้บังคับให้คำตอบเต็มหน้าต่างเอาต์พุตหรือทำให้ทุกเครื่องมือจำเป็นต่อทุกงาน
โปรไฟล์นี้สร้างข้อความแทนภาพหรือเสียงและไม่ใช้ Live API คู่มือนักพัฒนายังไม่รวมการแบ่งส่วนภาพ สำหรับคำถามภาพ ให้ขอคำอธิบาย ดึงข้อมูล หรือตีความข้อมูลที่ให้ สำหรับเสียงพูดบันทึก ให้ขอผลข้อความ เมื่อคำตอบขึ้นกับข้อมูลใหม่ เวิร์กโฟลว์อิงผลค้นหาที่ระบุเพิ่มแหล่งข้อมูลเกินความรู้ฝึกได้ บอกว่าจำเป็นต้องมีข้อมูลภายนอกหรือไม่และคำตอบสุดท้ายต้องเก็บหลักฐานใด
สำหรับงานยาวที่มีประโยชน์ ให้กำหนดผลสุดท้ายและเกณฑ์เสร็จก่อนขั้นแรก งานวิเคราะห์ฝ่ายสนับสนุนอาจขอตารางปัญหาที่พบ ข้อความรองรับ และร่างคำตอบ งานโค้ดอาจต้องมีการแก้เฉพาะจุดและผลตรวจที่เกี่ยวข้อง แนบบริบทต้นทางสำคัญ ระบุการใช้เครื่องมือที่อนุญาต และขอคำตอบสุดท้ายชัดแจ้งที่แยกงานเสร็จจากคำถามที่ยังต้องมีข้อมูล วิธีนี้เปลี่ยนเวิร์กโฟลว์ต่อเนื่องของโมเดลเป็นชิ้นงานข้อความ โค้ด หรือข้อมูลมีโครงสร้างที่เป็นรูปธรรม
Ailoot Ultra · การประมวลผลแบบชุด POST /v1/batches google/gemini-3.5-flash:batch
google/gemini-3.5-flash:batchเริ่มต้น
Gemini 3.5 Flash ผสานความเข้าใจหลายสื่อกับการให้เหตุผลสำหรับโค้ดและงานเอเจนต์หลายขั้นตอน รับข้อความ ภาพ วิดีโอ เสียง และ PDF ส่งออกข้อความ พร้อมเอาต์พุตมีโครงสร้าง เครื่องมือ และขีดจำกัดอินพุต 1,048,576 โทเคนตามโปรไฟล์ที่ระบุ
- อินพุตที่รองรับ
- ข้อความ
- ผลลัพธ์
- ข้อความ
ใช้งานได้ใน Ailoot · อินพุตและเมธอด
Ailoot Ultra · การประมวลผลแบบชุด POST /v1/batches
- ขาเข้า
text- ขาออก
text- รูปแบบเอาต์พุต
- JSON ของ results[].response.body ที่ส่งกลับโดยตรง
| ฟิลด์ | ประเภท | ข้อกำหนด | ค่าและข้อจำกัด | ค่าเริ่มต้น |
|---|---|---|---|---|
ฟิลด์endpoint | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด /v1/chat/completions | ค่าเริ่มต้น— |
ฟิลด์model | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด google/gemini-3.5-flash:batch | ค่าเริ่มต้น— |
ฟิลด์requests | ประเภทbatch_item[] | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด จำนวนรายการขั้นต่ำ: 1 | ค่าเริ่มต้น— |
ฟิลด์requests[].custom_id | ประเภทstring | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์requests[].body.messages | ประเภทmessage[] | ข้อกำหนดจำเป็น | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์completion_window | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด 24h | ค่าเริ่มต้น— |
ฟิลด์provider | ประเภทobject|null | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด | ค่าเริ่มต้น— |
ฟิลด์requests[].body.model | ประเภทstring | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด google/gemini-3.5-flash:batch, google/gemini-3.5-flash | ค่าเริ่มต้น— |
ฟิลด์provider.only | ประเภทstring[] | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด google-vertex/global | ค่าเริ่มต้น— |
ฟิลด์provider.allow_fallbacks | ประเภทboolean|null | ข้อกำหนดไม่บังคับ | ค่าและข้อจำกัด false, null | ค่าเริ่มต้น— |
พารามิเตอร์และวงจรการทำงานของเมธอด
| พารามิเตอร์ | ข้อกำหนด |
|---|---|
พารามิเตอร์content_type | ข้อกำหนดapplication/json |
พารามิเตอร์required | ข้อกำหนดendpoint, model, requests |
พารามิเตอร์material_types | ข้อกำหนดtext |
พารามิเตอร์representation | ข้อกำหนดส่ง requests[] ไว้ในคำขอโดยตรง โดยแต่ละรายการมี custom_id และ body |
พารามิเตอร์request_endpoint_profile | ข้อกำหนด/v1/chat/completions |
พารามิเตอร์file_material | ข้อกำหนดผู้เรียกใช้อาจอ่านไฟล์ JSONL ที่เข้ารหัส UTF-8 จากเครื่องของตนลงใน requests[] ได้ ไม่มีการใช้ค่าระบุวัตถุประสงค์การอัปโหลด input_file_id หรือการอ้างอิงไฟล์ หากไม่มีข้อมูลของลูกค้าหรือข้อมูลว่าง ให้หยุดการเตรียมก่อนส่ง POST |
พารามิเตอร์serialization_order | ข้อกำหนดendpoint, model, provider (หากระบุมา), completion_window (หากระบุมา), requests อยู่ท้ายสุด |
พารามิเตอร์optional_controls | ข้อกำหนดprovider.only, provider.allow_fallbacks, completion_window |
พารามิเตอร์schema_scope | ข้อกำหนดเนื้อหาคำขอ Chat Completions แบบข้อความ ภายในโครงสร้างคำขอแบบชุดที่ส่งโดยตรงตามที่ระบุในเอกสาร |
วงจรการทำงาน: asynchronous
GET /v1/batches/{operation_id} · ค่า response.id จริงจากการตอบกลับคำขอสร้างครั้งเดิม โดยใช้ผู้ใช้/คีย์/กลุ่มเดิม
ราคา
ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก
- โหมดรวดเร็ว
- ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว
- โหมดยืดหยุ่น
- ไม่ได้ระบุ เมื่อเลือกโหมด flex
- ระดับการใช้เหตุผลสูงสุด
- ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด
- การคิดราคาแคชแบบระบุชัด
- ไม่ได้เปิดใช้ เมื่อร้องขอแคชแบบระบุชัด
อัตราค่าบริการ Ailoot
ราคาตามการตั้งค่า
เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน
| การตั้งค่า | ตารางอัตราค่าบริการ | โทเค็นบริบท มากกว่า | โทเค็นบริบท ไม่เกินและรวมค่า | ค่าบริการ |
|---|---|---|---|---|
| การตั้งค่าอัตราราคาพื้นฐานของโทเคน | ตารางอัตราค่าบริการอัตราพื้นฐาน | โทเค็นบริบท มากกว่า— | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0015 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.009 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00015 / 1K โทเค็น ขาเข้า · การเขียนแคช — / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
| การตั้งค่าระดับความยาวคำขอ 1 | ตารางอัตราค่าบริการ— | โทเค็นบริบท มากกว่า0 | โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุด | ค่าบริการ ขาเข้า · โทเค็นอินพุต $0.0015 / 1K โทเค็น ขาออก · โทเค็นเอาต์พุต $0.009 / 1K โทเค็น ขาเข้า · การอ่านแคช $0.00015 / 1K โทเค็น ขาเข้า · การเขียนแคช — / 1K โทเค็น ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น |
Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →
ตัวอย่างคำขอ
Ailoot Ultra · การประมวลผลแบบชุด
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"google/gemini-3.5-flash:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['google/gemini-3.5-flash:batch', 'google/gemini-3.5-flash']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3.5-flash:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
รับและบันทึกผลลัพธ์
Ailoot Ultra · การประมวลผลแบบชุด
JSON ของ results[].response.body ที่ส่งกลับโดยตรง
GET /v1/batches/{operation_id}
ตรวจสอบสถานะงาน
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด
เก็บทุกการตอบกลับ ไฟล์ และส่วนเนื้อหาที่ส่งกลับมาอย่างครบถ้วน
เก็บ JSON สถานะเดิมให้ครบถ้วน รวมถึงผลลัพธ์/custom_id ทุกรายการ และเนื้อหาการตอบกลับหรือข้อผิดพลาดทั้งหมด บันทึก results[] ที่เสร็จสมบูรณ์เป็น JSONL โดยไม่กรองข้อมูล
เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ
เก็บ ID การดำเนินการเดิมไว้ การตอบกลับ 503 result_pending_check มี X-Should-Retry:false ห้ามส่งงานแบบชุดเดิมซ้ำเด็ดขาดเมื่อยังไม่ทราบสถานะของงาน
ฟิลด์การตอบกลับ
| ฟิลด์ | ประเภท |
|---|---|
ฟิลด์results[].custom_id | ประเภทstring |
ฟิลด์results[].response.body.choices[].message.content | ประเภทstring|null |
ฟิลด์results[].error | ประเภทobject|null |
ฟิลด์usage | ประเภทobject|null |
ฟิลด์id | ประเภทstring |
ฟิลด์model | ประเภทstring |
ฟิลด์endpoint | ประเภทstring |
ฟิลด์status | ประเภทstring |
ฟิลด์request_counts | ประเภทobject |
ฟิลด์results[].id | ประเภทstring |
ฟิลด์results[].response.status_code | ประเภทinteger |
ฟิลด์results[].response.request_id | ประเภทstring |
ข้อผิดพลาดและขั้นตอนถัดไป
| การตอบกลับ | เงื่อนไข | ขั้นตอนถัดไป |
|---|---|---|
การตอบกลับ400 · invalid_request_error | เงื่อนไขโครงสร้างคำขอแบบส่งโดยตรงตามเอกสารไม่ถูกต้อง มีคีย์ซ้ำ หรือมีข้อขัดแย้งเกี่ยวกับตัวตนของรายการหรือความสามารถของโมเดลที่กำหนดไว้ | ขั้นตอนถัดไปแก้ไขฟิลด์ที่ระบุให้ถูกต้องก่อนส่งคำขอใหม่ทุกครั้ง |
การตอบกลับ401 · authentication_error | เงื่อนไขคีย์ API ไม่ถูกต้อง | ขั้นตอนถัดไปใช้คีย์ Ailoot ที่ได้รับอนุญาต |
การตอบกลับ403 · permission_error | เงื่อนไขกลุ่มสำหรับการประมวลผลแบบชุดไม่พร้อมใช้งาน | ขั้นตอนถัดไปตรวจสอบสิทธิ์ของคีย์/กลุ่ม |
การตอบกลับ422 · invalid_request_error | เงื่อนไขการประมวลผลแบบชุดเรียกเก็บเงินจากยอดเงินคงเหลือ คำขอสร้างที่ใช้การเรียกเก็บผ่านการสมัครสมาชิกจะถูกปฏิเสธ | ขั้นตอนถัดไปใช้กลุ่มที่ได้รับอนุญาตให้เรียกเก็บเงินจากยอดเงินคงเหลือ |
การตอบกลับ422 · price_unavailable | เงื่อนไขไม่สามารถคำนวณราคาล่วงหน้าสำหรับข้อมูลนำเข้าของงานแบบชุดได้ | ขั้นตอนถัดไปเก็บการตอบกลับไว้ และใช้ข้อมูลนำเข้าตามเอกสารของ API ประเภทนั้น |
การตอบกลับ402 · billing_error | เงื่อนไขไม่สามารถกันยอดเงินสำรองสำหรับการประมวลผลแบบชุดได้ | ขั้นตอนถัดไปแก้ไขเงื่อนไขการรับคำขอให้เรียบร้อยก่อนส่งคำขอใหม่ |
การตอบกลับ503 · price_unavailable | เงื่อนไขราคาของวิธีประมวลผลแบบชุด/อัตราราคาของระบบไม่พร้อมใช้งาน | ขั้นตอนถัดไปเก็บการตอบกลับไว้ ห้ามแทนที่ด้วยราคาอื่น |
การตอบกลับ503 · api_error | เงื่อนไขเส้นทางที่ระบุไว้ของผู้ให้บริการต้นทางไม่พร้อมใช้งาน | ขั้นตอนถัดไปเก็บการตอบกลับไว้เพื่อแก้ไขเส้นทางการส่งคำขอ |
การตอบกลับ503 · result_pending_check | เงื่อนไขผลลัพธ์เดิมต้องได้รับการตรวจสอบ โดยมี X-Should-Retry:false | ขั้นตอนถัดไปเก็บค่า operation_id/id เดิมไว้แล้วอ่านสถานะของการดำเนินการนั้น ห้ามส่ง POST เดิมซ้ำเด็ดขาด |
การตอบกลับ404 · not_found | เงื่อนไขไม่พบการดำเนินการตรวจสอบสถานะงานแบบชุด หรือการดำเนินการนั้นเป็นของตัวตนอื่น | ขั้นตอนถัดไปใช้ค่า id เดิมให้ตรงทุกตัว พร้อมผู้ใช้/คีย์/กลุ่มเดิม |
ชื่ออื่น
ชื่ออื่นของโมเดล
Ailoot Ultra google/gemini-3.5-flash:batch
ชื่อพาธเมธอดอื่น
ใช้พาธเมธอดที่แสดงด้านบน
ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล
FAQ · Google: Gemini 3.5 Flash (batch)
- มีอินพุตและผลลัพธ์ใดบ้าง?
POST /v1/batches·google/gemini-3.5-flash:batch:text→text- คำขอใช้ฟิลด์ใดบ้าง?
POST /v1/batches·google/gemini-3.5-flash:batch:endpoint,model,requests,completion_window,provider- มีข้อจำกัดใดบ้าง?
POST /v1/batches·google/gemini-3.5-flash:batch:requests.min_items:1