Ocriva Logo

Documents

ตัวอย่างและ Best Practices

ตัวอย่าง Template จริงและเคล็ดลับสำหรับการดึงข้อมูลที่มีประสิทธิภาพ

Published: 3/31/2026

ตัวอย่างและ Best Practices

ตัวอย่าง Template

ตัวอย่างที่ 1: ดึงข้อมูลใบกำกับภาษีไทย (JSON)

Template นี้ดึงข้อมูลฟิลด์ที่จำเป็นทั้งหมดจากใบกำกับภาษีไทยมาตรฐานและส่งคืนเป็น JSON สำหรับจัดเก็บในฐานข้อมูล

การตั้งค่า Template:

  • ชื่อ: ใบกำกับภาษีไทย
  • Result Format: json
  • AI Provider: OpenAI gpt-4o

Schema:

{
  "type": "object",
  "properties": {
    "invoice_number": {
      "type": "string",
      "description": "เลขที่ใบกำกับตามที่พิมพ์บนเอกสาร"
    },
    "invoice_date": {
      "type": "string",
      "description": "วันที่ออกในรูปแบบ YYYY-MM-DD แปลง พ.ศ. เป็น ค.ศ. โดยลบ 543"
    },
    "seller_name": {
      "type": "string",
      "description": "ชื่อบริษัทผู้ขาย ให้เก็บชื่อภาษาไทยตามต้นฉบับ"
    },
    "seller_tax_id": {
      "type": "string",
      "description": "เลขประจำตัวผู้เสียภาษี 13 หลักของผู้ขาย"
    },
    "seller_address": {
      "type": "string",
      "description": "ที่อยู่ผู้ขายตามที่ปรากฏบนใบกำกับ"
    },
    "buyer_name": {
      "type": "string",
      "description": "ชื่อบริษัทหรือบุคคลผู้ซื้อ"
    },
    "buyer_tax_id": {
      "type": "string",
      "description": "เลขประจำตัวผู้เสียภาษี 13 หลักของผู้ซื้อ ถ้ามี"
    },
    "line_items": {
      "type": "array",
      "description": "รายการสินค้าหรือบริการทั้งหมด",
      "items": {
        "type": "object",
        "properties": {
          "description": { "type": "string" },
          "quantity": { "type": "number" },
          "unit_price": { "type": "number" },
          "amount": { "type": "number" }
        }
      }
    },
    "subtotal": {
      "type": "number",
      "description": "ยอดเงินก่อนภาษีมูลค่าเพิ่ม"
    },
    "vat_rate": {
      "type": "number",
      "description": "อัตราภาษีเป็นทศนิยม เช่น 0.07 สำหรับ 7%"
    },
    "vat_amount": {
      "type": "number",
      "description": "จำนวนเงินภาษีมูลค่าเพิ่ม"
    },
    "total_amount": {
      "type": "number",
      "description": "ยอดรวมทั้งสิ้นรวมภาษีแล้ว"
    },
    "currency": {
      "type": "string",
      "description": "สกุลเงิน เริ่มต้น THB"
    }
  }
}

Instructions:

คุณเป็นผู้ช่วยดึงข้อมูลใบกำกับภาษีไทย ดึงข้อมูลทั้งหมดตามที่ปรากฏในใบกำกับ
กฎดังนี้:
- แปลงวันที่ พ.ศ. ทั้งหมดเป็น ค.ศ. โดยลบ 543
- ส่งคืนค่าทางการเงินทั้งหมดเป็นตัวเลขล้วนๆ ไม่มีเครื่องหมายจุลภาคหรือสัญลักษณ์
- ถ้าฟิลด์ใดไม่มีอยู่ ให้ส่งคืน null
- เก็บชื่อบริษัทภาษาไทยตามต้นฉบับ
- รวมทุกรายการในตารางสินค้า

ตัวอย่างที่ 2: เครื่องสแกนใบเสร็จค่าใช้จ่าย (CSV)

Template นี้สแกนใบเสร็จค่าใช้จ่ายและ Export ผลลัพธ์เป็น CSV สำหรับการประมวลผลรายงานค่าใช้จ่าย

การตั้งค่า Template:

  • ชื่อ: ใบเสร็จค่าใช้จ่าย
  • Result Format: csv
  • CSV Config: csvColumnsOnly: true
  • AI Provider: Google Gemini gemini-2.0-flash

Schema:

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "วันที่ใบเสร็จ YYYY-MM-DD"
    },
    "merchant": {
      "type": "string",
      "description": "ชื่อร้านค้าหรือผู้ขาย"
    },
    "category": {
      "type": "string",
      "description": "หมวดหมู่ค่าใช้จ่าย: อาหาร, การเดินทาง, ที่พัก, เครื่องใช้สำนักงาน, อื่นๆ"
    },
    "amount": {
      "type": "number",
      "description": "ยอดรวมที่ชำระ"
    },
    "currency": {
      "type": "string",
      "description": "สกุลเงิน เช่น THB"
    },
    "payment_method": {
      "type": "string",
      "description": "เงินสด, บัตรเครดิต, บัตรเดบิต, พร้อมเพย์, หรืออื่นๆ"
    },
    "vat_included": {
      "type": "boolean",
      "description": "True ถ้าใบเสร็จแสดงรวมภาษีมูลค่าเพิ่มแล้ว"
    },
    "vat_amount": {
      "type": "number",
      "description": "จำนวนเงินภาษีมูลค่าเพิ่ม"
    }
  }
}

การตั้งค่า CSV Column Order:

["date", "merchant", "category", "amount", "currency", "payment_method", "vat_amount"]

Instructions:

ดึงข้อมูลค่าใช้จ่ายจากใบเสร็จนี้
จัดหมวดหมู่ค่าใช้จ่ายเป็น: อาหาร, การเดินทาง, ที่พัก, เครื่องใช้สำนักงาน, หรืออื่นๆ
สำหรับใบเสร็จไทยที่มี QR Code พร้อมเพย์ ให้ตั้ง payment_method เป็น "พร้อมเพย์"
ยอดเงินทั้งหมดในสกุลเงินต้นฉบับ ไม่ต้องแปลง

ตัวอย่างที่ 3: สรุปเอกสาร (Free Text)

Template นี้สร้างสรุปข้อความธรรมดาของเอกสารใดก็ได้ เหมาะสำหรับการทำ Index ค้นหาหรือตรวจสอบอย่างรวดเร็ว

การตั้งค่า Template:

  • ชื่อ: สรุปเอกสาร
  • Result Format: text
  • AI Provider: Anthropic claude-sonnet-4-5

Schema: (ไม่จำเป็นสำหรับ Free Text)

Instructions:

อ่านเอกสารทั้งหมดและสร้างสรุปที่มีโครงสร้างโดยมีส่วนดังนี้:
 
1. ประเภทเอกสาร: ระบุว่าเอกสารนี้คืออะไร
2. ฝ่ายที่เกี่ยวข้อง: ระบุบุคคล บริษัท หรือองค์กรทั้งหมดที่กล่าวถึง
3. หัวข้อหลัก: หนึ่งย่อหน้าอธิบายว่าเอกสารเกี่ยวกับอะไร
4. วันที่สำคัญ: ระบุวันที่สำคัญทั้งหมดและความหมาย
5. ตัวเลขสำคัญ: ระบุจำนวนเงิน ปริมาณ หรือหมายเลขอ้างอิงที่สำคัญทั้งหมด
6. รายการที่ต้องดำเนินการ: งาน ข้อผูกมัด หรือ Deadline ใดๆ ที่กล่าวถึง
 
เขียนเป็นภาษาไทยโดยไม่คำนึงว่าเอกสารต้นฉบับเป็นภาษาใด
ให้สรุปทั้งหมดไม่เกิน 400 คำ

Best Practices

การออกแบบ Schema

  • ตั้งชื่อฟิลด์ให้สื่อความหมายinvoice_issue_date ชัดเจนกว่า date1
  • เพิ่ม description เสมอ — ทุกฟิลด์ควรมี Description ที่ทำหน้าที่เป็นคำสั่งย่อสำหรับ AI
  • ใช้ประเภทที่รองรับ Null — หลีกเลี่ยงการ Required ฟิลด์ที่อาจไม่มีอยู่เสมอ ให้ฟิลด์ที่ขาดหายส่งคืน null
  • ทดสอบกับกรณีพิเศษ — รัน Template กับเอกสารที่สแกนเอียง ความละเอียดต่ำ หรือ Layout ผิดปกติ
  • เน้น Schema ให้ Focused — Template ที่มี 8 ฟิลด์ที่กำหนดดีนั้นทำงานได้ดีกว่า Template ที่มี 25 ฟิลด์ที่กำหนดไม่ดี

การเลือกโมเดล AI

  • เริ่มต้นด้วย gpt-4o-mini หรือ gemini-2.0-flash เพื่อประหยัดค่าใช้จ่ายระหว่างการทดสอบ
  • อัปเกรดเป็น gpt-4o หรือ gemini-2.5-pro สำหรับ Production เมื่อความแม่นยำเป็นสิ่งสำคัญ
  • ใช้โมเดล Qwen สำหรับเอกสารที่เป็นภาษาจีนเป็นหลัก
  • ใช้ Kimi moonshot-v1-32k สำหรับเอกสารยาวมาก เช่น สัญญา รายงาน

การเขียนคำสั่ง

  • เขียนคำสั่งในภาษาเดียวกับเอกสาร ถ้าเป็นไปได้ — หรือระบุภาษาของเอกสารอย่างชัดเจน
  • เพิ่มตัวอย่างค่า ในคำสั่งเมื่อรูปแบบไม่ชัดเจน เช่น "ส่งคืนวันที่เป็น YYYY-MM-DD เช่น 2024-11-15"
  • เขียนคำสั่งไม่เกิน 500 คำ — คำสั่งที่ยาวมากอาจสร้างความสับสนให้ AI
  • จัดเวอร์ชันคำสั่ง — เมื่ออัปเดตคำสั่ง ให้บันทึกวันที่เปลี่ยนแปลงใน Description ของ Template เพื่อติดตามว่าเวอร์ชันไหนประมวลผลเอกสารใด

รูปแบบ Output

  • ใช้ JSON เป็นค่าเริ่มต้น — มีความยืดหยุ่นสูงสุดและแปลงเป็นรูปแบบอื่นได้ง่ายในภายหลัง
  • ใช้ CSV เฉพาะเมื่อ Schema แบบ Flat — Schema ที่ซ้อนลึกสร้างชื่อคอลัมน์ที่ดูแปลกใน CSV
  • ใช้ PDF/DOCX สำหรับรายงานที่มนุษย์อ่านเท่านั้น ไม่ใช่สำหรับ Pipeline อัตโนมัติ

การทดสอบ

  1. รวบรวมเอกสารตัวอย่างที่เป็นตัวแทน 5–10 ชิ้นก่อน Deploy Template
  2. รวมกรณีพิเศษ: ข้อความจาง, ลายมือ, เอกสารหลายหน้า, ฟิลด์ที่ขาดหาย
  3. เปรียบเทียบ Output ของ AI กับข้อมูลที่ดึงด้วยมือเพื่อวัดความแม่นยำ
  4. ติดตาม Processing History สำหรับข้อผิดพลาดที่เกิดซ้ำและปรับปรุงคำสั่งตามนั้น

Data Files

  • ให้ไฟล์ข้อมูลมีขนาดเล็กและ Focused (ใต้ 500KB ต่อไฟล์)
  • อัปเดตไฟล์ข้อมูลเมื่อข้อมูลอ้างอิงเปลี่ยนแปลง เช่น แคตตาล็อกสินค้า รายชื่อลูกค้า
  • ใช้ไฟล์ .md สำหรับเอกสารกฎ — การจัดรูปแบบ Markdown ช่วยให้ AI แยกวิเคราะห์กฎที่มีโครงสร้างได้ดีขึ้น

สรุป

งานตั้งค่าที่
กำหนดฟิลด์ที่ดึงSchema (รูปแบบ JSON Schema)
เลือกโมเดล AIAssistant Config > Provider + Model
เขียนกฎการดึงข้อมูลAssistant Config > Instructions
ตั้งรูปแบบ OutputResult Format
ตั้งค่าคอลัมน์ CSVResult Format > csvColumnOrder
เพิ่มเอกสารอ้างอิงData Files
สร้างรูปภาพResult Format > image + imageUserOptions

สำหรับการเชื่อมต่อผ่าน API ดู API Reference สำหรับ Endpoint การจัดการ Template และวิธีเปิดใช้งานการประมวลผลผ่านโปรแกรม