Tool: read_image — Progressive vision-first และ batch สูงสุด 4 ภาพ

read_image ของ Agent Lite รุ่นปัจจุบันใช้หลัก progressive vision-first: ให้ VLM เห็นภาพจริงก่อน แล้วค่อยเรียก sensor เช่น OCR, find หรือ zoom เมื่อมีเหตุผลต้องใช้
นี่ต่างจากแนวทางเก่าที่เอา OCR text มาเป็นข้อมูลหลักตั้งแต่รอบแรก
รอบแรก: original pixels ก่อน
เมื่อภาพยังไม่เคยถูกอ่านใน turn นี้ เส้นทาง overview จะ:
- อ่าน snapshot ของไฟล์
- normalize ภาพ
- ทำ hidden OCR/QR security preflight สำหรับ DLP
- ถ้าปลอดภัย จึง encode และคิว original image เข้า direct-vision context
- บอกโมเดลให้ inspect pixels ก่อน
OCR ที่ใช้ใน security preflight ไม่ถูกแสดงให้โมเดลเป็น visible text ในรอบนี้
ทำไม vision-first
ภาพบางประเภทไม่ต้อง OCR เลย เช่น diagram, scene, UI layout หรือรูปวัตถุ การส่ง OCR text จำนวนมากก่อนอาจรบกวนการตีความภาพจริงของ VLM
ดังนั้น Agent Lite ให้โมเดลเห็น pixels ก่อน แล้วค่อยใช้ sensor เฉพาะเมื่อคำถามต้องการข้อมูลที่ sensor ทำได้ดีกว่า
เมื่อไรค่อยใช้ OCR
ถ้าต้องอ่านตัวอักษรเล็ก, ตัวเลข, label หรือข้อความที่ VLM เห็นไม่ชัด ให้เรียก text/OCR ในรอบถัดไป
Apple Vision OCR ยังคงเป็นเครื่องมือเฉพาะทางที่ดีสำหรับข้อความ แต่ไม่ถูกบังคับให้กลายเป็น representation หลักของทุกภาพ
Batch สูงสุด 4 ภาพ
read_image รับหลาย path ได้สูงสุด 4 ภาพใน call เดียว และเตรียมภาพแบบ bounded parallelism
ตัวอย่างเชิงแนวคิด:
read_image(path=["a.png", "b.jpg", "c.png", "d.jpg"])
แต่ละภาพถูกตรวจ path/size/security แยกจากกัน
เลือก OCR เป็นรายภาพได้
batch mode รองรับการระบุว่าจะขอ OCR สำหรับภาพใดบ้าง ไม่จำเป็นต้อง OCR ทั้งชุด
ถ้าภาพที่ขอ OCR ยังไม่ผ่าน overview ระบบจะ defer visible OCR และแนบ original pixels ก่อน เพื่อรักษา contract vision-first จากนั้น caller ค่อยเรียก batch เดิมอีกครั้งพร้อม OCR selection ที่ต้องการ
Find / region / zoom
หลัง overview แล้ว สามารถอ่านเพิ่มแบบเจาะจง:
detail='text'— OCR/text sensorfind='คำที่ต้องการ'— หา OCR box แล้ว crop รอบตำแหน่งนั้นregion+zoom— crop บริเวณ เช่นมุมขวาบน/กลางภาพแล้วขยาย- detail อื่น เช่น chart/slide ตาม contract ของ tool
ระบบมี attempt budget เพื่อกัน zoom/find loop ไม่จำกัด
DLP ตรวจทั้ง OCR และ QR
ก่อนปล่อยภาพให้ VLM เห็น ระบบตรวจ secret-shaped content จาก OCR และ QR payload
QR สำคัญเพราะ token/credential อาจอยู่ใน QR โดยไม่มีตัวอักษรที่มองเห็นได้ หากตรวจพบ QR แต่ decode ไม่สำเร็จ policy จะ fail closed แทนการสมมติว่าปลอดภัย
Snapshot ที่ส่งเข้าโมเดลคือภาพที่ผ่าน preflight แล้ว
Tool ไม่เพียงเช็ค path แล้วค่อยให้โมเดลอ่านไฟล์ต้นฉบับภายหลัง แต่เตรียม snapshot bytes ที่ผ่าน normalize/security แล้วและคิว snapshot นั้นเข้า vision context ช่วยลด race ที่ไฟล์ต้นทางถูกเปลี่ยนหลัง preflight
ทำไม batch 4 จึงเหมาะกับ Lite
MAX/VLM รุ่นใหญ่สามารถรับ batch มากกว่า แต่ Lite ตั้งเพดาน 4 เพื่อรักษา memory/context budget ของโมเดล 2B และเครื่อง RAM 8GB จุดประสงค์คือประหยัด tool round trip โดยไม่เปลี่ยนภาพหลายสิบภาพให้กลายเป็น workload ก้อนใหญ่เกินเครื่องเป้าหมาย
ความคิดเห็น
กำลังโหลดความคิดเห็น...