74 lines
3.7 KiB
Markdown
74 lines
3.7 KiB
Markdown
# MONOREPO AI MEDICAL
|
|
|
|
## ภาพรวม
|
|
โปรเจกต์นี้เป็น Monorepo แบบ Full-Stack ที่มีโครงสร้างพร้อมใช้งานสำหรับการพัฒนาและทดสอบ:
|
|
|
|
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 และฐานข้อมูลทั้งหมด ใช้เฉพาะตอนต้องการเริ่มต้นฐานข้อมูลใหม่
|