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"
import requests
response = requests.post(
"https://team05.aiforthai.in.th/api/v1/webhook/scan",
headers={"X-API-Key": "YOUR_API_KEY"},
files={"file": open("durian-leaf.jpg", "rb")},
)
print(response.json())
const form = new FormData();
form.append("file", fileInput.files[0]);
const res = await fetch(
"https://team05.aiforthai.in.th/api/v1/webhook/scan",
{
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
body: form,
}
);
const data = await res.json();
console.log(data);
Authentication
ทุก Request ต้องส่ง API Key ผ่าน Header X-API-Key
X-API-Key: YOUR_PARTNER_API_KEY
หากไม่ส่ง API Key หรือ Key ไม่ถูกต้อง จะได้รับ HTTP 401
ขอ API Key
API Key ไม่ได้เปิดให้สมัครเอง — กรอกฟอร์มบอกว่าคุณเป็นใครและจะนำไปใช้กับอะไร ทีมงานจะพิจารณาเป็นราย ๆ ถ้าอนุมัติจะส่งคีย์ไปที่อีเมลที่แจ้งไว้ เราไม่ส่งคีย์ทางช่องทางอื่น และไม่แสดงคีย์บนหน้าเว็บ
ส่งคำขอแล้ว
เก็บรหัสอ้างอิงไว้ใช้ตอนติดต่อกลับ ถ้าไม่ได้รับอีเมลภายในไม่กี่วันทำการ ทักมาพร้อมรหัสนี้ได้เลย
ส่งไม่สำเร็จ
Image Analysis API
คัดกรองอาการผิดปกติจากภาพใบทุเรียน ส่งคืนผลลัพธ์ที่เป็นไปได้พร้อมค่าความเชื่อมั่น
Request Parameters
ส่งข้อมูลเป็น multipart/form-data
| Parameter | Type | Required | Description |
|---|---|---|---|
file | file | Yes | ภาพใบทุเรียน (JPG, PNG, WebP, BMP) |
top_k | integer | No | จำนวนผลลัพธ์ที่ต้องการ (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
| Status | Meaning | Description |
|---|---|---|
400 | Bad Request | ไฟล์ว่างหรืออ่านภาพไม่ได้ |
401 | Unauthorized | API Key ไม่ถูกต้องหรือไม่ได้ส่งมา |
413 | Payload Too Large | ไฟล์มีขนาดเกิน 10 MB |
415 | Unsupported Media | ชนิดไฟล์ไม่รองรับ |
429 | Too Many Requests | ส่งคำขอถี่เกินกำหนด |
503 | Service Unavailable | โมเดลยังไม่พร้อมใช้งาน |
API Playground
ทดลองส่ง Request จริงไปยัง API ได้ทันที
Usage Limits
| Limit | Value |
|---|---|
| Max File Size | 10 MB ต่อรูป |
| Max Resolution | 40 ล้านพิกเซลหลังถอดรหัสภาพ |
| Max top_k | 5 |
| Concurrent Inference | 2 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 ซึ่งหมายความว่าโมเดลยังไม่มั่นใจในผลลัพธ์และควรถ่ายภาพใหม่