Key Extraction · API v3
การตั้งค่า
สร้างงานด้วย JSON ที่ POST /api/v3/key-extract/jobsไฟล์ต้องอัปโหลดก่อนที่ POST /api/v3/key-extract/files
ฟิลด์งาน
| ฟิลด์ | ชนิด | จำเป็น | รายละเอียด |
|---|---|---|---|
inputs | array | ใช่ | อย่างน้อย 1 รายการ ตามลำดับหน้าของเอกสารเดียว |
inputs[].file_id | string | ใช่ | id จากขั้นอัปโหลด |
inputs[].pages | integer[] | ไม่ | หน้า PDF 1-based ไม่ซ้ำ ห้ามใช้กับรูป |
data_schema | object | เลือกอย่างใดอย่างหนึ่ง | JSON Schema subset — รากเป็น object |
template | object | เลือกอย่างใดอย่างหนึ่ง | { id, version? } ถ้าไม่ระบุ version จะล็อก latest ตอนรับงาน |
instructions | string | ไม่ | คำแนะนำเพิ่ม ห้ามเปลี่ยน schema |
output.evidence | enum | ไม่ | bbox (ค่าเริ่มต้น) หรือ none |
review_threshold | number | ไม่ | 0–1 ค่าเริ่มต้น 0.8 |
client_reference | string | ไม่ | รหัสฝั่งคุณ — สะท้อนกลับ ไม่ส่งเข้าโมเดล |
webhook_id | string | ไม่ | id webhook ที่ลงทะเบียนแล้ว ไม่ใช่ URL |
retention_hours | integer | ไม่ | เก็บผลได้สูงสุด 168 ชั่วโมง ค่าเริ่มต้น 24 |
template และ data_schema
ส่งได้อย่างใดอย่างหนึ่งเท่านั้น ฟิลด์ที่ไม่รู้จักใน body จะถูกปฏิเสธ เพื่อจับ typo ตั้งแต่ต้น
JSON Schema ที่รองรับ
| ฟีเจอร์ | รองรับ |
|---|---|
| ราก | type: object เท่านั้น |
| สเกลาร์ | string, number, integer, boolean |
| object ซ้อน | ได้ ความลึกสูงสุด 5 |
| ตาราง / ลิสต์ | array ของ object หรือสเกลาร์ ได้สูงสุด 10 ตาราง |
| คำใบ้ | description, examples, enum, format, required |
| format ของ string | date, date-time, time, email, uri |
| คีย์นอก schema | ปิดด้วย additionalProperties: false |
ไม่รองรับใน MVP: $ref, oneOf / anyOf / allOf, recursion, nested arrays ตรวจก่อนยิงงานจริงที่ POST /api/v3/key-extract/schemas/validate (ไม่คิด OCR)
Headers
| Header | จำเป็น | รายละเอียด |
|---|---|---|
X-API-Key | ใช่ | คีย์จาก Dashboard |
Idempotency-Key | ใช่ (สร้างงาน) | retry การสร้างงานโดยไม่คิวซ้ำ |
อัปโหลดไฟล์
- ชนิดที่รับ: JPEG, PNG, WebP, HEIC, HEIF, PDF
- สูงสุด 25 MB ต่อไฟล์ และ 100 MB รวมต่อคำขออัปโหลด
- สูงสุด 50 ไฟล์ใน
inputsและ 200 หน้าต่อเอกสาร - MIME ตรวจจาก magic bytes ไม่เชื่อชื่อไฟล์
- v3 ไม่รับ URL หรือ base64 ในตัวงาน — ต้องได้
file_idก่อน
แนวทางตั้งค่า
- จะวาด overlay — คง
output.evidence: "bbox" - ใบแจ้งหนี้มีหลายตาราง — ใส่หลาย array ใน schema ไม่ต้องมี listConfig
- PDF ยาว — ตัดหน้าด้วย
inputs[].pages - วันที่ไทย พ.ศ. หรือยอดมีจุลภาค — ใส่ใน
instructions