CoolFace
Apppublic

TPunnawitT/waijing-bioage-api

sourceHugging Faceupdated 1mo agoView on Hugging Face
0likes
App README

วัยจริง | WAIJING — Backend API

FastAPI backend สำหรับคำนวณอายุชีวภาพ:

  • POST /api/v1/predict/phenoage — คำนวณ PhenoAge จากผลเลือด 9 ค่า (Liu, Levine et al., PLoS Medicine 2018, ฉบับแก้ไข 2019)
  • POST /api/v1/predict/cxr-age — คำนวณอายุจากภาพเอกซเรย์ทรวงอกด้วยโมเดล ResNet-34 (CXR-Age, Raghu et al. 2021)

รันบนเครื่องตัวเอง

bash
pip install -r requirements.txt
uvicorn main:app --reload

ตัวแปรแวดล้อม (env vars)

ชื่อค่าเริ่มต้นใช้ทำอะไร
ALLOWED_ORIGINSจำกัดเฉพาะ localhost:5173 (dev)โดเมนของ frontend ที่อนุญาตให้เรียก API ได้ (คั่นด้วย , ถ้ามีหลายโดเมน) — ตอน deploy จริงต้องตั้งเป็น URL ของเว็บจริงเสมอ (เช่น https://waijing.vercel.app) ไม่งั้น frontend จะเรียก API ไม่ได้เลย
AUDIT_LOG_SALTค่า default ในโค้ด (ไม่ปลอดภัยสำหรับ production)ใช้แฮช IP ก่อนบันทึกลง audit log — ต้องตั้งเป็นค่าสุ่มของตัวเองตอน deploy จริง อย่าใช้ค่า default

หมายเหตุความปลอดภัย:

  • CORS (ALLOWED_ORIGINS) ป้องกันได้แค่การเรียกจาก JavaScript ในเบราว์เซอร์คนละโดเมน ไม่ได้ป้องกันคนที่เรียก API ตรงๆ ด้วย curl/Postman/เซิร์ฟเวอร์อื่น
  • มี rate limit ต่อ IP ในตัว (phenoage 20 ครั้ง/นาที, cxr-age 10 ครั้ง/นาที) แต่เก็บ state ใน memory ของ process เดียว — ถ้า deploy หลาย worker/instance ต้องเปลี่ยนไปใช้ตัวกลางร่วม (เช่น Redis)
  • มี audit log (audit.log) บันทึก เวลา/endpoint/status/IP ที่แฮชแล้ว ไม่บันทึกค่าผลเลือดหรือภาพเอกซเรย์ — ถ้ารันบน Hugging Face Spaces แบบไม่เปิด persistent storage ไฟล์นี้จะหายเมื่อ container restart

ไม่ใช่เครื่องมือวินิจฉัยทางการแพทย์ — ดูรายละเอียดข้อจำกัดใน disclaimer ของหน้าเว็บ