ภาพรวม Key Extraction
Key Extraction API v3 ดึงข้อมูลมีโครงสร้างจากเอกสารไทย — บัตร ใบแจ้งหนี้ ใบเสร็จ สัญญา — แล้วคืน JSON ตาม schema ที่กำหนด พร้อม bounding box ต่อฟิลด์บนหน้าต้นฉบับ
สัญญาเป็นแบบอะซิงค์: อัปโหลดไฟล์ได้ file_id จากนั้นสร้างงาน poll สถานะ แล้วดึงผลแยก ค่าที่ดึงได้อยู่ใน dataหลักฐาน (confidence + bbox) อยู่ใน field_metadata

ใช้ทำอะไร
- KYC / เปิดบัญชี — เลขบัตร ชื่อ วันเกิด พร้อมกรอบบนรูปบัตร
- ระบบบัญชี — เลขที่ใบแจ้งหนี้ ผู้ขาย รายการสินค้า และยอดรวม
- ใบเสร็จ / สลิป — ร้านค้า วันที่ ยอดสุทธิ วาด overlay ตรวจทาน
- สัญญา — คู่สัญญา วันเริ่ม–สิ้นสุด มูลค่า พร้อมตำแหน่งข้อความต้นทาง
ทำไมต้อง v3
v1 เป็น sync และคืน bbox เป็นพิกเซลเฉพาะเมื่อส่ง model=aksonocr1.5v3 เป็นสัญญาหลักสำหรับ production: งานอะซิงค์, JSON Schema หรือเทมเพลตเวอร์ชัน, และ bounding box แบบ normalize เป็นค่าเริ่มต้น — ไม่ต้องเลือกโมเดลพิเศษ
ความสามารถหลัก
Bounding box ต่อฟิลด์
output.evidence=bbox (ค่าเริ่มต้น) — xyxy ช่วง 0–1 มุมบนซ้ายของหน้า
JSON Schema หรือเทมเพลต
ส่ง data_schema ในงาน หรืออ้าง template ที่ล็อกเวอร์ชัน
หลายไฟล์ = เอกสารเดียว
inputs[] ตามลำดับ เช่น สแกนหน้า 1 แล้วหน้า 2 ของใบเดียวกัน
แยกค่ากับหลักฐาน
data มีเฉพาะค่าที่ดึงได้ field_metadata มี status, confidence, regions
Workflow
อัปโหลดไฟล์
POST /api/v3/key-extract/files ได้ file_id
สร้างงาน
POST /jobs พร้อม schema หรือ template และ output.evidence=bbox
ดึงผล
poll GET /jobs/:id จน completed แล้ว GET /jobs/:id/result
ผลลัพธ์ที่ได้
data
JSON ตาม schema ที่ส่งไป ฟิลด์ที่ไม่มีค่าเป็น null ตารางที่ว่างเป็น []
field_metadata
แมปด้วย JSON Pointer เช่น /invoice_no หรือ /line_items/0/amount แต่ละใบมี status, confidence (0–1) และ regions[].bbox
Bounding box เป็นค่าเริ่มต้น
output.evidence: "bbox" หรือละไว้ (ค่าเริ่มต้นคือ bbox) ถ้าไม่ต้องการพิกัดให้ส่ง "none"