DooDurian API

ยินดีต้อนรับสู่ DooDurian Developer Documentation เราให้บริการ Image Processing API สำหรับนักพัฒนาที่ต้องการนำระบบคัดกรองโรคใบทุเรียนจากภาพไปใช้งานร่วมกับแอปพลิเคชันหรือแพลตฟอร์มของคุณ

  • รูปแบบไฟล์ที่รองรับ: JPG, JPEG, PNG, WebP, BMP
  • ขนาดไฟล์สูงสุด: 10 MB ต่อรูป
  • Base URL: https://team05.aiforthai.in.th

Quick Start

ส่งภาพใบทุเรียนไปยัง API เพียง 1 คำสั่ง:

curl -X POST \
  "https://team05.aiforthai.in.th/api/v1/webhook/scan" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@durian-leaf.jpg"

Authentication

ทุก Request ต้องส่ง API Key ผ่าน Header X-API-Key

X-API-Key: YOUR_PARTNER_API_KEY

หากไม่ส่ง API Key หรือ Key ไม่ถูกต้อง จะได้รับ HTTP 401

ขอ API Key

API Key ไม่ได้เปิดให้สมัครเอง — กรอกฟอร์มบอกว่าคุณเป็นใครและจะนำไปใช้กับอะไร ทีมงานจะพิจารณาเป็นราย ๆ ถ้าอนุมัติจะส่งคีย์ไปที่อีเมลที่แจ้งไว้ เราไม่ส่งคีย์ทางช่องทางอื่น และไม่แสดงคีย์บนหน้าเว็บ

เราจะส่ง API Key ไปที่อีเมลนี้ถ้าอนุมัติ — ใช้อีเมลที่คุณเปิดอ่านจริง

ช่องนี้คือสิ่งที่ใช้ตัดสิน — เขียนให้เห็นภาพว่าใครเป็นคนใช้และใช้ตอนไหน

ยังไม่รู้ตัวเลขก็ปล่อยว่างได้ ไว้ค่อยคุยกันตอนอนุมัติ

ข้อมูลที่กรอกใช้เพื่อพิจารณาคำขอและติดต่อกลับเท่านั้น

Image Analysis API

คัดกรองอาการผิดปกติจากภาพใบทุเรียน ส่งคืนผลลัพธ์ที่เป็นไปได้พร้อมค่าความเชื่อมั่น

POST /api/v1/webhook/scan

Request Parameters

ส่งข้อมูลเป็น multipart/form-data

ParameterTypeRequiredDescription
filefileYesภาพใบทุเรียน (JPG, PNG, WebP, BMP)
top_kintegerNoจำนวนผลลัพธ์ที่ต้องการ (1–5) ค่าเริ่มต้น 3

Response Format

{
  "request_id": "45dd4a9bdac34437b696da4c89b0b887",
  "label": "Leaf_Colletotrichum",
  "confidence": 0.8421,
  "confident": true,
  "min_confidence": 0.6,
  "predictions": [
    { "label": "Leaf_Colletotrichum", "confidence": 0.8421 },
    { "label": "Leaf_Algal", "confidence": 0.1032 },
    { "label": "Leaf_Healthy", "confidence": 0.0341 }
  ],
  "model": {
    "name": "efficientnet_b0.ra_in1k",
    "version": "unknown",
    "backend": "onnx"
  },
  "disclaimer": "ผลตรวจเป็นการคัดกรองเบื้องต้น ไม่ใช่การยืนยันโรค"
}

ค่าใน model เป็นค่าที่โมเดลบนเซิร์ฟเวอร์รายงานจริง ตรวจสอบได้ตลอดเวลาจาก GET /api/v1/model ซึ่งคืนชื่อโมเดล รายชื่อคลาสทั้งหมด และเกณฑ์ความมั่นใจปัจจุบัน แนะนำให้อ่านค่าจาก endpoint นั้นแทนการ hardcode ไว้ในฝั่งผู้เรียก

Error Codes

StatusMeaningDescription
400Bad Requestไฟล์ว่างหรืออ่านภาพไม่ได้
401UnauthorizedAPI Key ไม่ถูกต้องหรือไม่ได้ส่งมา
413Payload Too Largeไฟล์มีขนาดเกิน 10 MB
415Unsupported Mediaชนิดไฟล์ไม่รองรับ
429Too Many Requestsส่งคำขอถี่เกินกำหนด
503Service Unavailableโมเดลยังไม่พร้อมใช้งาน

API Playground

ทดลองส่ง Request จริงไปยัง API ได้ทันที

Usage Limits

LimitValue
Max File Size10 MB ต่อรูป
Max Resolution40 ล้านพิกเซลหลังถอดรหัสภาพ
Max top_k5
Concurrent Inference2 slots — คำขอที่เกินจะรอคิว ไม่ถูกปฏิเสธทันที
Rate Limitระบบสงวนสิทธิ์จำกัดอัตราการเรียก ผู้เรียกควรรองรับ 429 และหน่วงแบบ exponential backoff

Model Information

  • Model: efficientnet_b0.ra_in1k
  • Architecture: EfficientNet-B0 (convolutional)
  • Backend: ONNX Runtime (CPU)
  • Preprocessing: ลบพื้นหลังใบด้วยโมเดล segmentation ก่อนเข้าโมเดลจำแนก เพราะโมเดลถูกเทรนบนภาพที่ตัดพื้นหลังแล้ว
  • Classes (6): Leaf_Algal, Leaf_Blight, Leaf_Colletotrichum, Leaf_Healthy, Leaf_Phomopsis, Leaf_Rhizoctonia
  • Min Confidence Threshold: 0.6

ผลลัพธ์ที่มีค่า confidence ต่ำกว่า threshold จะมี confident: false ซึ่งหมายความว่าโมเดลยังไม่มั่นใจในผลลัพธ์และควรถ่ายภาพใหม่