เทคโนโลยีที่ใช้ (Technology Stack)
รายการเทคโนโลยีที่เลือกใช้สำหรับโปรเจค พร้อมเหตุผลทางวิศวกรรม
เทคโนโลยีที่ใช้ (Technology Stack)
รายการเทคโนโลยีที่เลือกใช้สำหรับโปรเจค พร้อมเหตุผลทางวิศวกรรม
สรุป Full Stack
| ส่วนประกอบ | เทคโนโลยี | เหตุผล |
|---|---|---|
| Mobile App | Flutter (Dart) | รองรับ Android (และ iOS ในอนาคต) ด้วย Codebase เดียว; รองรับ Dark Mode ดีเยี่ยม; ใช้ BLoC State Management |
| Admin Portal | React 19 + Vite 8 + Tailwind CSS v4 | SPA แบบ Component-based; build/dev server ด้วย Vite |
| API Backend | Python FastAPI | Async I/O ประสิทธิภาพเทียบเท่า Go/Node.js; ตรวจสอบ Pydantic อัตโนมัติ; Auto-generated OpenAPI Docs |
| AI Training | PyTorch | Framework มาตรฐานอุตสาหกรรมสำหรับ Deep Learning; มี Ecosystem ของ SegFormer รองรับดี |
| AI Inference | ONNX Runtime | เป้าหมายเร็วกว่า PyTorch baseline รุ่นเดียวกัน ≥ 2 เท่า (ภาพ 1080p เฉลี่ย 100 ภาพ บน T4; ยืนยันด้วย benchmark ก่อนอ้างภายนอก); ไม่ยึดติดกับ Framework |
| Primary Database | PostgreSQL | ACID Transactions; ความถูกต้องของ Relational Data; รองรับ PostGIS สำหรับฟีเจอร์พิกัดในอนาคต |
| Cache | Redis | ค้นหา Image Hash ไวระดับ Sub-millisecond; ลดโหลด AI Inference สำหรับรูปซ้ำได้มหาศาล |
| File Storage | Local filesystem (LOCAL_UPLOAD_DIR, default ./uploads) |
เก็บ PNG ต้นฉบับและ Heatmap; FastAPI mount ที่ /uploads ตาม code v1 |
| Reverse Image Search | Google Vision API | ค้นหาภาพย้อนกลับครอบคลุมและแม่นยำที่สุด |
| Push Notifications | Firebase Cloud Messaging (FCM) | ฟรี, เสถียรบน Android, ไม่ต้องบริหาร Infrastructure เอง |
Cloud Object Storage เป็นเป้าหมายในอนาคต ไม่ใช่ storage backend ที่ implementation ปัจจุบันใช้อยู่
รายละเอียดฝั่ง Mobile App
- State Management: BLoC (Business Logic Component)
- HTTP Client: Dio + Secure Storage สำหรับเก็บ JWT
- จัดการรูปภาพ:
image_picker+image_cropper - Platform: Android (หลัก), iOS (อนาคต)
- Architecture: Clean Architecture (Presentation / Domain / Data)
ดูเพิ่มเติมที่ architecture/mobile-app
รายละเอียดฝั่ง AI
| ส่วน | เทคโนโลยี | หมายเหตุ |
|---|---|---|
| Core Model | SegFormer (ONNX เดียว) | Transformer-based Semantic Segmentation, tiling 512/overlap 64 |
| Training Framework | PyTorch | มาตรฐาน; Ecosystem ใหญ่ |
| Serving Format | ONNX | รันผ่าน ONNX Worker subprocess ภายใน Backend เดียวกัน |
| Inference Runtime | ONNX Runtime | Engine สำหรับ Serving ที่ Optimized แล้ว |
| AI-Gen classifier | ค่าความน่าจะเป็นภาพสังเคราะห์จาก AI (0–1, informative ประกอบการตัดสิน — เกณฑ์ตัดสินหลักใช้ Visual/Textual/Source + Risk Grade ดู concepts/risk-scoring) | ยังไม่ตรึงโมเดล/threshold ทางการ — ห้ามอ้างเป็นเกณฑ์ตัดสินจนกว่าจะนิยามใน SRS |
| XAI | แผนที่ความร้อนแบบ mask-to-heatmap overlay | แปลง Segmentation Mask เป็นภาพสีซ้อนทับบนภาพต้นฉบับ |
| XAI reasoning | Qwen2.5-1.5B | สำหรับสร้างคำอธิบายภาษาไทย |
| OCR | Surya OCR v0.5.0 (Native PyTorch) | ดึงข้อความภาษาไทย + อังกฤษ |
| Risk | Hybrid max+bonus 3 ระดับ: Low 0-39 / Medium 40-69 / High 70-100 | คะแนนฐานจากมิติสูงสุด บวกเพิ่มมิติรอง สูงสุดไม่เกิน 100 |