# MONOREPO AI MEDICAL ## ภาพรวม โครงการนี้คือ Monorepo แบบ Full-Stack ที่สร้างบนโครงสร้างพื้นฐานที่มีความพร้อมใช้งานสูง (HA) และถูกออกแบบมาเพื่อรองรับการพัฒนา AI ทางการแพทย์ (Medical AI) โดยใช้เฟรมเวิร์ก MONAI เพื่อสนับสนุนโปรเจค https://gitea.softwarecraft.tech/gitea/hospital-management-api: 1. **Backend (Django/DRF):** โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT รวมถึง Stateless โดยสมบูรณ์ เนื่องจาก Session/Cache ถูกย้ายไปเก็บที่ Redis 2. **ฐานข้อมูล (HA):** CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL) 3. **Frontend (Web):** React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo 4. **Automation:** Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น 5. **Caching/Broker:** Redis สำหรับการเก็บ Session/Cache และใช้เป็น Message Broker ให้ Celery 6. **Async Processing:** Celery Worker สำหรับจัดการ Asynchronous Tasks (งานเบื้องหลัง เช่น การส่งอีเมล, การสร้างรายงาน) 7. **Model Serving:** FastAPI / MONAI / PyTorch สำหรับการโหลดและทำ **Inference** โมเดล AI (เช่น `spleen_ct_spleen_model.ts`) โดยดึงโมเดลจาก MinIO ## การเริ่มต้นใช้งาน (Run Local) ### 1. การเตรียม Repository และ Environment 1. **Clone และเตรียมโค้ด** ```bash git clone https://gitea.softwarecraft.tech/gitea/monorepo-starter-template.git cd monorepo-ai-medical # ล้าง History ของ Template เก่า และเริ่มต้นใหม่ Remove-Item -Path .git -Recurse -Force # สำหรับ PowerShell # หรือใช้คำสั่ง Linux/Mac rm -rf .git git init git add . git commit -m "Initialize MLOps AI Medical Project Base" ``` 2. **เตรียม AI Environment (สำคัญ)** เข้าโฟลเดอร์ `ai-medical/` และสร้าง Virtual Environment เพื่อติดตั้ง MONAI/FastAPI ```bash cd ai-medical python -m venv venv .\venv\Scripts\Activate.ps1 # Windows # หรือ source venv/bin/activate (Linux/Mac) # ติดตั้ง Dependencies pip install -r requirements.ai.txt cd .. ``` --- ### 2. การรัน Infrastructure (DB, Cache, Storage) รัน Services พื้นฐานทั้งหมดใน Docker (ยกเว้น Backend/AI Service ที่จะรันใน Local CLI) ```bash cd infra # รัน DB, Redis, MinIO (ต้องมี MinIO Service ใน docker-compose.yml แล้ว) docker compose up -d cockroach-1 cockroach-2 cockroach-3 init-cluster redis minio ``` ## การหยุดชั่วคราวและรันต่อ ถ้าต้องการหยุดพัฒนาโดยไม่ลบฐานข้อมูล สามารถรัน: ```bash cd ../infra docker compose down ``` เมื่อต้องการกลับมาพัฒนาต่อ ให้รัน: ```bash cd ../infra docker compose up -d ``` คำสั่ง docker compose down -v จะลบ Volume และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่