เทคโนโลยีที่ใช้ (Technology Stack)

รายการเทคโนโลยีที่เลือกใช้สำหรับโปรเจค พร้อมเหตุผลทางวิศวกรรม

หมวด องค์ประกอบระบบต้นฉบับ entities/tech-stack.md
tech-stackFlutterFastAPIPyTorchONNXPostgreSQLRedis

เทคโนโลยีที่ใช้ (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

ทำไมถึงเลือก Flutter สำหรับ Mobile?


หน้าที่เกี่ยวข้อง