MONOREPO AI MEDICAL
ภาพรวม
โปรเจกต์นี้เป็น Monorepo แบบ Full-Stack ที่มีโครงสร้างพร้อมใช้งานสำหรับการพัฒนาและทดสอบ:
- Backend (Django/DRF): โครงสร้าง Modular Monolith พร้อมระบบ Authentication ด้วย Djoser/JWT รวมถึง Stateless โดยสมบูรณ์ เนื่องจาก Session/Cache ถูกย้ายไปเก็บที่ Redis
- ฐานข้อมูล (HA): CockroachDB Cluster 3 Node (เข้ากันได้กับ PostgreSQL)
- Frontend (Web): React + Vite + Tailwind CSS / DaisyUI และ Mobile ผ่าน Expo
- Automation: Docker Compose พร้อมตั้งค่า Database อัตโนมัติเมื่อเริ่มต้น
- Caching/Broker: Redis สำหรับการเก็บ Session/Cache และใช้เป็น Message Broker ให้ Celery
- Async Processing: Celery Worker สำหรับจัดการ Asynchronous Tasks (งานเบื้องหลัง เช่น การส่งอีเมล, การสร้างรายงาน)
- Model Serving: FastAPI / MONAI / PyTorch** สำหรับการโหลดและทำ Inference โมเดล AI (เช่น
spleen_ct_spleen_model.ts) โดยดึงโมเดลจาก MinIO
การเริ่มต้นใช้งาน (Run Local)
1. การเตรียม Repository และ Environment
-
Clone และเตรียมโค้ด
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" -
เตรียม AI Environment (สำคัญ) เข้าโฟลเดอร์
ai-medical/และสร้าง Virtual Environment เพื่อติดตั้ง MONAI/FastAPIcd 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)
cd infra
# รัน DB, Redis, MinIO (ต้องมี MinIO Service ใน docker-compose.yml แล้ว)
docker compose up -d cockroach-1 cockroach-2 cockroach-3 init-cluster redis minio
การหยุดชั่วคราวและรันต่อ
ถ้าต้องการหยุดพัฒนาโดยไม่ลบฐานข้อมูล สามารถรัน:
cd ../infra
docker compose down
เมื่อต้องการกลับมาพัฒนาต่อ ให้รัน:
cd ../infra
docker compose up -d
คำสั่ง docker compose down -v จะลบ Volume และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่
Description
Languages
JavaScript
64.1%
Python
34.7%
Shell
0.5%
Dockerfile
0.4%
HTML
0.1%
Other
0.1%