ความสามารถของแพลตฟอร์ม
ภาพรวมฟีเจอร์ครบวงจร
Ocriva ถูกจัดระเบียบตามห้าขั้นตอนของ Pipeline Document Automation Transformer (DAT): Ingest, Extract, Transform, Automate และ Integrate หน้านี้จัดทำเอกสารความสามารถหลักทุกอย่าง จัดเรียงตามขั้นตอนที่เกี่ยวข้อง
ขั้นตอนที่ 1: Ingest (รับเข้า)
ขั้นตอน Ingest จัดการการรับเอกสาร — รับไฟล์จากทุกที่ที่มาของเอกสารและเตรียมพร้อมสำหรับการประมวลผล
อัปโหลดไฟล์เดียว
- Interface ลากวางใน Web Application
- เลือกไฟล์โดยคลิก
- ยืนยันการอัปโหลดทันทีพร้อม Preview ไฟล์
- รูปแบบที่รองรับ: PDF, JPG, PNG, WebP, BMP
Batch Upload
- อัปโหลดสูงสุด 50 ไฟล์ในการ Submit ครั้งเดียว
- ลากวางหลายไฟล์พร้อมกัน
- ติดตามสถานะต่อไฟล์ระหว่าง Batch Upload
- Queue อัตโนมัติสำหรับ Batch Processing
- Export รวมเมื่อ Batch เสร็จสมบูรณ์
API Upload
- REST API Endpoint สำหรับการ Submit เอกสารแบบ Programmatic
- รองรับ multipart/form-data สำหรับการอัปโหลดไฟล์
- คืนค่า Processing ID สำหรับการติดตามสถานะ
- ยืนยันตัวตนผ่าน JWT หรือ API Token
- เอกสาร OpenAPI/Swagger ฉบับเต็มให้ใช้งานได้
การรับเข้าแบบ Webhook-Triggered
- รับเอกสารจากระบบต้นทางผ่าน Webhook Events
- Pipeline การประมวลผลแบบ Event-driven
- ตั้งค่าได้ต่อโปรเจกต์
LINE Integration
- รับเอกสารผ่านมือถือด้วย LINE Messaging
- ผู้ใช้ถ่ายรูปเอกสารบนมือถือและส่งผ่าน LINE
- เอกสารถูก Route ไปยังโปรเจกต์ Ocriva ที่กำหนดค่าโดยอัตโนมัติ
- สามารถส่งผลลัพธ์กลับมายังบทสนทนา LINE ได้
ขั้นตอนที่ 2: Extract (สกัด)
ขั้นตอน Extract คือจุดที่ AI ประมวลผลเอกสารและระบุข้อมูลที่คุณต้องการ
AI Providers
Ocriva เชื่อมต่อกับ AI ผู้ให้บริการ 6 ราย แต่ละ Template ระบุว่าจะใช้ผู้ให้บริการและโมเดลใด
| ผู้ให้บริการ | โมเดล | ลักษณะเฉพาะ |
|---|---|---|
| OpenAI | GPT-4o | ความแม่นยำทั่วไปดีที่สุด, ทำตามคำสั่งได้ดี |
| OpenAI | GPT-4o-mini | เร็วกว่า, ต้นทุนต่ำกว่า, เหมาะสำหรับเอกสารง่ายๆ ปริมาณมาก |
| Google Gemini | Gemini 2.0 Flash | ประมวลผลความเร็วสูง, เก่งด้านการสกัดที่มีโครงสร้าง |
| Google Gemini | Gemini 2.5 Pro | ความแม่นยำสูงสุด, รองรับเอกสารยาว |
| Anthropic | Claude Sonnet | ความเข้าใจละเอียดอ่อน, เอกสารยาว, สัญญา |
| Anthropic | Claude Haiku | เร็วและประหยัดต้นทุนสำหรับการสกัดงานประจำ |
| DeepSeek | DeepSeek V3 | การสกัดทั่วไปประหยัดต้นทุน |
| DeepSeek | DeepSeek R1 | เสริมด้วย Reasoning สำหรับเอกสารที่ซับซ้อน |
| Qwen | Qwen VL | โมเดล Visual-Language ที่รองรับอักษรเอเชียได้ดี |
| Kimi | Moonshot Vision | ความเข้าใจเอกสาร Context ยาว |
TIP
เลือก AI Provider ตามสมดุลระหว่างความแม่นยำและต้นทุน — GPT-4o แม่นที่สุด ส่วน GPT-4o-mini และ Gemini Flash คุ้มค่าสำหรับเอกสารทั่วไป
TIP
เลือกโมเดลตามความต้องการ ระหว่างความแม่นยำกับต้นทุน เช่น ใช้ GPT-4o สำหรับงานสำคัญ และ Gemini Flash หรือ DeepSeek สำหรับงานปริมาณมากที่งบจำกัด
รองรับหลายภาษา
- ภาษาไทยและภาษาอังกฤษในเอกสารเดียวกัน จัดการในการผ่านการสกัดครั้งเดียว
- ไม่ต้อง Configuration ภาษาแยกกัน
- การรู้จำตัวอักษรไทย รวมถึงตัวแปรลายมือที่พบบ่อย
- เอกสารหลายภาษา (เช่น ใบแจ้งหนี้ไทยที่มีรหัสสินค้าภาษาอังกฤษ) สกัดได้แม่นยำ
โหมดการสกัด
การสกัดแบบมีโครงสร้าง (JSON Schema)
กำหนด JSON Schema ใน Template Ocriva สั่ง AI ให้คืนข้อมูลที่ตรงกับ Schema Output เป็น JSON ที่ถูกต้องและมีประเภทข้อมูลเสมอ
ตัวอย่าง Schema:
{
"invoice_number": "string",
"vendor_name": "string",
"total_amount": "number",
"due_date": "date",
"line_items": [
{
"description": "string",
"quantity": "number",
"unit_price": "number"
}
]
}การสกัดแบบข้อความอิสระ
ให้ Prompt อธิบายสิ่งที่ต้องการสกัด AI คืนการตอบสนองเป็นข้อความ มีประโยชน์สำหรับสรุป, การวิเคราะห์สัญญา หรือการสกัดใดๆ ที่ไม่ Map กับ Schema ตายตัว
Templates
Template คือ Configuration การสกัดที่นำมาใช้ซ้ำได้ เมื่อสร้างแล้ว Template ประมวลผลทุกเอกสารในประเภทเดิมในวิธีเดิม
แต่ละ Template กำหนด:
- ชื่อ Template — สำหรับการระบุตัวตน
- AI Provider และโมเดล — จะใช้ AI อะไร
- โหมดการสกัด — JSON Schema ที่มีโครงสร้างหรือข้อความอิสระ
- Prompt / คำสั่ง — จะสกัดอะไรและจัดการกรณีขอบอย่างไร
- รูปแบบ Output — รูปแบบปลายทางสำหรับผลลัพธ์
- การ Assign โปรเจกต์ — โปรเจกต์ใดที่ Template นี้อยู่
Preset Templates
Ocriva มี Preset Template 19 ตัวสำหรับประเภทเอกสารทั่วไป:
| หมวดหมู่ | Templates |
|---|---|
| การเงิน | ใบแจ้งหนี้, ใบกำกับภาษี, ใบเสร็จ, ใบสั่งซื้อ, รายงานค่าใช้จ่าย |
| บัตรประจำตัว | บัตรประจำตัวประชาชนไทย, หนังสือเดินทาง, ใบขับขี่ |
| กฎหมาย | สรุปสัญญา, สัญญาไม่เปิดเผยข้อมูล |
| HR | ประวัติ CV, หนังสือรับรองการทำงาน, สลิปเงินเดือน |
| โลจิสติกส์ | ป้ายจัดส่ง, ใบตราส่งสินค้า, ใบขนสินค้า |
| การแพทย์ | ใบรับรองแพทย์, ใบสั่งยา, รายงานผลตรวจ |
| การศึกษา | ผลการเรียน, ใบรับรองการสำเร็จการศึกษา |
Custom Templates
สร้าง Custom Template สำหรับประเภทเอกสารที่ Preset ไม่ครอบคลุม:
- กำหนด Schema ฟิลด์ใดก็ได้สำหรับประเภทเอกสารใดก็ได้
- เขียนคำสั่ง AI แบบ Custom ที่เหมาะกับเอกสารเฉพาะของคุณ
- ตั้งค่ากฎ Normalization (รูปแบบวันที่, รูปแบบตัวเลข, ลำดับชื่อ)
- ทดสอบการสกัดบนตัวอย่างเอกสารก่อน Deploy
- ปรับปรุงตามประวัติการสกัด
Data Files (RAG)
แนบเอกสารอ้างอิงกับ Template เพื่อปรับปรุงความแม่นยำการสกัด:
- อัปโหลดคำศัพท์เฉพาะบริษัท, ข้อตกลงการกำหนดหมายเลข หรือหนังสือรหัส
- AI ใช้เอกสารอ้างอิงเหล่านี้เป็นบริบทระหว่างการสกัด
- มีประโยชน์สำหรับประเภทเอกสารภายในที่มีข้อตกลงขององค์กร
- ไฟล์ถูก Scope ต่อ Template ไม่แชร์ข้าม Template
ขั้นตอนที่ 3: Transform (แปลง)
ขั้นตอน Transform แปลงข้อมูลที่สกัดมาเป็นรูปแบบที่ระบบปลายทางของคุณต้องการ
รูปแบบ Output
| รูปแบบ | คำอธิบาย | เหมาะสำหรับ |
|---|---|---|
| JSON | Output Key-value ที่มีโครงสร้างพร้อมรองรับ Nesting เต็มรูปแบบ | API Integration, ฐานข้อมูล, การประมวลผลแบบ Programmatic |
| CSV | ไฟล์ Flat ตารางพร้อมรองรับการจัดลำดับคอลัมน์ | สเปรดชีต, Data Pipeline, การนำเข้า Analytics |
| รายงานที่จัดรูปแบบแล้วพร้อมฟิลด์ที่สกัดมา | ตรวจสอบโดยมนุษย์, จัดเก็บ, Audit Trail | |
| DOCX | Word Document ที่แก้ไขได้ | Workflow ตรวจสอบ, การ Annotate, การแก้ไข |
| XML | Markup ที่มีโครงสร้างพร้อมลำดับชั้น Element | ระบบ Enterprise เก่า, EDI Integration |
| HTML | ผลลัพธ์ที่จัดรูปแบบสำหรับเว็บ | การแสดงผลบนเว็บ, ฝังใน Email |
| Text | Output ข้อความธรรมดา | Pipeline ง่ายๆ, Logging, Debugging |
การตั้งค่า CSV
- ตั้งค่าลำดับคอลัมน์สำหรับ CSV Export
- Map ชื่อฟิลด์ที่สกัดมากับชื่อคอลัมน์ Custom
- เลือก Delimiter (จุลภาค, เซมิโคลอน, Tab)
- Batch CSV รวม Rows จากหลายเอกสารเป็นไฟล์เดียว
โหมดการสร้างรูปภาพ
- สร้างการแสดงภาพของข้อมูลที่สกัดมาซ้อนทับบนเอกสารต้นฉบับ
- มีประโยชน์สำหรับ Workflow ตรวจสอบที่ต้องการเก็บเอกสารที่ Annotate ไว้คู่กับ Record
- Output เป็นรูปภาพหรือ PDF
Batch Export
- ประมวลผล 50 เอกสารใน Batch และ Export ผลลัพธ์ทั้งหมดเป็นไฟล์เดียว
- JSON Array รวม, CSV รวม หรือไฟล์แยกต่อเอกสาร
- ตั้งค่าได้ในระดับ Template
ขั้นตอนที่ 4: Automate (อัตโนมัติ)
ขั้นตอน Automate จัดการปริมาณ, กำหนดเวลา และความน่าเชื่อถือ — เปลี่ยนการประมวลผลเอกสารให้กลายเป็น Infrastructure ในการปฏิบัติงาน
Batch Processing
- Submit สูงสุด 50 เอกสารใน Batch เดียว
- ติดตามความคืบหน้าแบบเรียลไทม์: แต่ละเอกสารแสดงสถานะ pending, in_progress, completed หรือ failed
- การประมวลผลแบบขนาน — หลายเอกสารถูกประมวลผลพร้อมกัน
- สรุปสถานะระดับ Batch: จำนวนทั้งหมด, จำนวนเสร็จ, จำนวนล้มเหลว
- UI Live Update ด้วย WebSocket — ไม่ต้อง Refresh หน้า
Processing Queue
- เอกสารทุกฉบับเข้าสู่ Queue ที่จัดการได้เมื่อ Submit
- Queue ประมวลผลตามลำดับพร้อม Concurrency ที่ตั้งค่าได้
- Retry อัตโนมัติเมื่อเกิดความล้มเหลวชั่วคราว
- เอกสารที่ล้มเหลวถูกตั้งค่าสถานะพร้อมรายละเอียดข้อผิดพลาดสำหรับการตรวจสอบ
- สถานะ Queue มองเห็นได้ใน Web Interface และผ่าน API
Processing History
- ทุกเอกสารที่ประมวลผลผ่าน Ocriva มีบันทึกประวัติถาวร
- บันทึกประกอบด้วย: เอกสารต้นฉบับ, Template ที่ใช้, โมเดล AI ที่ใช้, สถานะ, Timestamps, ข้อมูลผลลัพธ์
- Filter และค้นหาประวัติตามโปรเจกต์, Template, สถานะ, ช่วงวันที่
- ประมวลผลซ้ำเอกสารประวัติใดก็ได้ด้วย Template เดิมหรือที่อัพเดทแล้ว
- Export บันทึกประวัติสำหรับ Audit หรือการรายงาน
ระบบ Credits
- การประมวลผลแต่ละเอกสารใช้ Credits ตามความซับซ้อนของเอกสารและโมเดล AI ที่ใช้
- ซื้อ Credits ล่วงหน้าผ่าน Stripe
- แสดง Credit Balance แบบเรียลไทม์ใน Web Interface
- การแจ้งเตือน Balance ต่ำตั้งค่าได้ต่อองค์กร
- ประวัติการใช้ Credit อย่างละเอียดแยกตามโปรเจกต์, Template และ AI Provider
- การใช้ Credit ตรวจสอบได้: แต่ละ Processing Record แสดง Credit ที่ใช้ไป
WARNING
แต่ละครั้งที่ประมวลผลจะหัก Credits ตรวจสอบ Credit Balance ก่อนรัน Batch ขนาดใหญ่ และตั้งค่าการแจ้งเตือน Balance ต่ำเพื่อไม่ให้งานหยุดชะงัก
ลำดับชั้น Organization → Project → Template
Organization (หน่วย Billing, การจัดการทีม)
└── Project (การจัดกลุ่มตรรกะสำหรับ Use Case หรือแผนก)
├── Templates (Configuration การสกัด)
├── Processing History
├── Webhooks
└── API Tokens- หลาย Organization ต่อบัญชี (สำหรับ Agency หรือบริษัทที่มีหลายนิติบุคคล)
- หลาย Project ต่อ Organization (การเงิน, HR, โลจิสติกส์ ฯลฯ)
- หลาย Template ต่อ Project (เครื่องมือสกัดใบแจ้งหนี้, เครื่องสแกนใบเสร็จ ฯลฯ)
- Billing และ Credits จัดการในระดับ Organization
การติดตามสถานะ
บันทึกการประมวลผลเอกสารทุกฉบับมีสถานะใดสถานะหนึ่งใน 4 สถานะ:
| สถานะ | ความหมาย |
|---|---|
pending | รับเอกสารแล้ว รอใน Queue |
in_progress | AI กำลังประมวลผลเอกสารอยู่ |
completed | สกัดสำเร็จ ผลลัพธ์พร้อมใช้งาน |
failed | การประมวลผลล้มเหลว รายละเอียดข้อผิดพลาดพร้อมใช้งาน |
WARNING
ทุกครั้งที่ประมวลผลเอกสารจะหัก Credits ติดตามยอดคงเหลือใน Dashboard และตั้งการแจ้งเตือนก่อน Credits หมด
ขั้นตอนที่ 5: Integrate (เชื่อมต่อ)
ขั้นตอน Integrate ส่งผลลัพธ์ไปยังระบบที่ต้องการโดยอัตโนมัติ
REST API
- CRUD API เต็มรูปแบบสำหรับทรัพยากร Ocriva ทั้งหมด
- Endpoints สำหรับ: Organizations, Projects, Templates, Uploads, Processing History, Analytics
- ยืนยันตัวตนผ่าน JWT (ตาม Session) หรือ API Tokens (Service-to-service)
- Paginated List Endpoints พร้อม Filtering และ Sorting
- OpenAPI 3.0 Specification ที่
/api/docs - Swagger UI สำหรับการสำรวจ API แบบ Interactive
API Tokens
- สร้าง API Tokens ต่อโปรเจกต์สำหรับการ Integration ภายนอก
- Token ถูก Scope ไปยังโปรเจกต์เฉพาะ
- หลาย Token ต่อโปรเจกต์ (หนึ่งต่อการ Integration)
- Token สามารถ Revoke ได้โดยไม่กระทบการ Integration อื่น
Webhooks
ตั้งค่า Webhook Endpoints เพื่อรับการแจ้งเตือน Event เมื่อเหตุการณ์การประมวลผลเกิดขึ้น
Events ที่รองรับ:
| Event | Triggered เมื่อ |
|---|---|
document.uploaded | รับเอกสารและ Queue แล้ว |
document.processed | เอกสารเสร็จสมบูรณ์หรือล้มเหลว |
batch.completed | เอกสารทั้งหมดใน Batch ถูกประมวลผลแล้ว |
โครงสร้าง Webhook Payload:
{
"event": "document.processed",
"timestamp": "2026-03-31T10:15:00Z",
"organizationId": "org_xyz",
"projectId": "proj_abc",
"processingId": "proc_123",
"status": "completed",
"result": {
"fields": { ... },
"format": "json"
}
}- Webhook มี Signature Header สำหรับการยืนยัน Payload
- การส่ง Webhook ที่ล้มเหลวถูก Retry ด้วย Exponential Backoff
- ประวัติและสถานะการส่งมองเห็นได้ต่อ Webhook
IMPORTANT
Webhook มีระบบ retry อัตโนมัติเมื่อ Endpoint ปลายทางตอบสนองไม่ได้ ควรตรวจสอบ Webhook Signature ทุกครั้งเพื่อยืนยันว่า Payload มาจาก Ocriva จริง
WebSocket Real-Time Notifications
- เชื่อมต่อผ่าน Socket.IO สำหรับ Processing Events แบบเรียลไทม์
- อัพเดทสถานะการประมวลผล Push ไปยัง Client ที่เชื่อมต่อตามที่เกิดขึ้น
- Batch Progress Events Streamed แบบ Live
- อัพเดท Credit Balance Push แบบเรียลไทม์
- ไม่ต้อง Polling — UI อัพเดทอัตโนมัติ
LINE Integration
- เชื่อมต่อ Ocriva กับ LINE Official Account
- ผู้ใช้ส่งรูปถ่ายเอกสารโดยตรงผ่าน LINE
- เอกสารถูกประมวลผลตาม Default Template ของโปรเจกต์
- สามารถส่งผลลัพธ์กลับมายังบทสนทนา LINE ได้ (ตั้งค่าได้)
- มีประโยชน์สำหรับ Workflow ที่ใช้มือถือเป็นหลัก: พนักงานภาคสนาม, พนักงานส่งของ, ปฏิบัติการสาขา
Notifications
- การแจ้งเตือนใน App สำหรับการเสร็จสมบูรณ์ของการประมวลผล, ข้อผิดพลาด และการแจ้งเตือน Credit
- การแจ้งเตือนทาง Email สำหรับการเสร็จสมบูรณ์ของ Batch และคำเตือน Credit ต่ำ
- การแจ้งเตือน LINE Push สำหรับบัญชีที่เชื่อมต่อ
- Preferences การแจ้งเตือนตั้งค่าได้ต่อผู้ใช้
เอกสาร OpenAPI / Swagger
- เอกสาร API แบบ Interactive ที่
/api/docs - Schema Request/Response ครบวงจรสำหรับทุก Endpoint
- Authentication ถูก Integrate เข้ากับ Swagger UI
- ดาวน์โหลด OpenAPI Spec สำหรับการสร้างโค้ดหรือเครื่องมือ API Client
Security และการควบคุมการเข้าถึง
- JWT Authentication — Auth ตาม Session สำหรับผู้ใช้ Web Application
- API Token Authentication — Auth ตาม Token สำหรับการ Integration แบบ Programmatic
- Data Isolation ระดับ Organization — Organization ไม่สามารถเข้าถึงข้อมูลของกันและกัน
- Scope ระดับ Project — API Tokens ถูก Scope ไปยังโปรเจกต์เดียว
- httpOnly Cookies — Session Token เก็บใน httpOnly Cookies ไม่สามารถเข้าถึงได้จาก JavaScript
- Input Validation — Input ของ API ทั้งหมดถูก Validate ด้วย class-validator (NestJS)
- Webhook Signature Verification — Payload ถูกลงนามด้วย HMAC เพื่อยืนยันความถูกต้อง
