sleep-analyzer
npx skills add https://github.com/huifer/wellally-health --skill sleep-analyzer
Agent 安装分布
Skill 文档
ç¡ç åæå¨æè½
åæç¡ç æ°æ®ï¼è¯å«ç¡ç 模å¼ï¼è¯ä¼°ç¡ç è´¨éï¼å¹¶æä¾ä¸ªæ§åç¡ç æ¹å建议ã
åè½
1. ç¡ç è¶å¿åæ
åæç¡ç æ¶é¿ãè´¨éãæççååè¶å¿ï¼è¯å«æ¹åæéè¦å ³æ³¨çæ¹é¢ã
åæç»´åº¦ï¼
- ç¡ç æ¶é¿è¶å¿ï¼å¹³åç¡ç æ¶é¿ååï¼
- ç¡ç æçè¶å¿ï¼ç¡ç æçç¾åæ¯ååï¼
- å ¥ç¡æ¶é´æ¨¡å¼ï¼ä¸åºæ¶é´ãå ¥ç¡æ¶é´ãèµ·åºæ¶é´ï¼
- 使¯è§å¾æ§è¯åï¼sleep consistency scoreï¼
- 卿«vs工使¥å¯¹æ¯ï¼social jetlagï¼
è¾åºï¼
- è¶å¿æ¹åï¼æ¹å/稳å®/ä¸éï¼
- ååå¹ åº¦åç¾åæ¯
- è¶å¿æ¾èæ§è¯ä¼°
- æä½³ç¡ç æ¶é´çªå£è¯å«
- æ¹è¿å»ºè®®
2. ç¡ç è´¨éè¯ä¼°
综åè¯ä¼°ç¡ç è´¨éï¼è¯å«å½±åç¡ç è´¨éçå ³é®å ç´ ã
è¯ä¼°å 容ï¼
- PSQIåæ°è¿½è¸ªåè¶å¿
- 主è§ç¡ç è´¨éåå¸ï¼å¥½/ä¸/å·®ï¼
- å¤é´è§éåæï¼æ¬¡æ°ãæ¶é¿ãåå ï¼
- ç¡ç é¶æ®µåæï¼æ·±ç¡ãæµ ç¡ãREMæ¯ä¾ï¼
- ç¡åæ¢å¤æè¯ä¼°
è¾åºï¼
- ç¡ç è´¨éç级ï¼ä¼ç§/è¯å¥½/ä¸è¬/è¾å·®ï¼
- è´¨éååè¶å¿
- 主è¦å½±åå ç´ è¯å«
- è´¨éæ¹åä¼å 级建议
3. ç¡ç é®é¢è¯å«
è¯å«å¸¸è§çç¡ç é®é¢åé£é©å ç´ ã
è¯å«å 容ï¼
-
å¤±ç æ¨¡å¼ï¼
- å ¥ç¡å°é¾ï¼sleep latency >30åéï¼
- ç¡ç ç»´æå°é¾ï¼å¤é´è§é>2æ¬¡ææ»è§éæ¶é´>30åéï¼
- æ©éï¼æ¯é¢ææå鿥>30åéï¼
- æ··åå失ç
-
å¼å¸æåé£é©ï¼
- STOP-BANGé®å·è¯å
- çç¶åæï¼æé¼¾ãæéãç½å¤©åç¡ï¼
- é£é©ç级ï¼ä½/ä¸/é«ï¼
-
å ¶ä»é®é¢ï¼
- 使¯ä¸è§å¾æ£æµ
- ç¡ç åºè®¡ç®ï¼çæ³æ¶é¿vså®é æ¶é¿ï¼
- 社交æ¶å·®è¯ä¼°
è¾åºï¼
- é®é¢åå¨ä¸å¦
- é®é¢ç±»åå严éç¨åº¦
- é£é©å ç´ å表
- æ¯å¦éè¦å°±å»å»ºè®®
4. ç¸å ³æ§åæ
åæç¡ç ä¸å ¶ä»å¥åº·ææ çç¸å ³æ§ã
æ¯æçç¸å ³æ§åæï¼
-
ç¡ç â è¿å¨ï¼
- è¿å¨æ¥vs伿¯æ¥çç¡ç å·®å¼
- è¿å¨æ¶é´å¯¹ç¡ç çå½±åï¼æ©æ¨/ä¸å/æé´è¿å¨ï¼
- è¿å¨å¼ºåº¦ä¸ç¡ç è´¨éçç¸å ³æ§
-
ç¡ç â 饮é£ï¼
- åå¡å æå ¥ä¸ç¡ç æ¶é¿ãå ¥ç¡æ¶é´çå ³ç³»
- é ç²¾æå ¥å¯¹ç¡ç ç»æçå½±å
- æé¤æ¶é´ä¸ç¡ç è´¨éçå ³ç³»
-
ç¡ç â æ 绪ï¼
- ç¡ç 䏿 绪çååå ³ç³»åæ
- ååæ°´å¹³å¯¹ç¡ç è´¨éçå½±å
- ç¡ç å¥å¤ºå¯¹æ¥é´æ 绪çå½±å
-
ç¡ç â æ ¢æ§ç ï¼
- ç¡ç ä¸é«è¡åçå ³ç³»
- ç¡ç ä¸è¡ç³æ§å¶çå ³è
- ç¡ç ä¸ä½éååçå ³ç³»
è¾åºï¼
- ç¸å ³ç³»æ°ï¼-1å°1ï¼
- ç¸å ³æ§å¼ºåº¦ï¼å¼±/ä¸/强ï¼
- ç»è®¡æ¾èæ§
- å æå ³ç³»æ¨æ
- å®è·µå»ºè®®
5. 个æ§å建议çæ
åºäºç¨æ·æ°æ®çæä¸ªæ§åç¡ç æ¹å建议ã
建议类åï¼
-
使¯è°æ´å»ºè®®ï¼
- æä½³ä¸åº/èµ·åºæ¶é´
- 使¯ä¸è´æ§æ¹åæ¹æ¡
- åç¡ç®¡ç建议
-
ç¡ååå¤å»ºè®®ï¼
- ç¡åä¾è¡ç¨åºè®¾è®¡
- æ¾æ¾æå·§æ¨è
- å±å¹æ¶é´ç®¡ç
-
ç¡ç ç¯å¢ä¼åï¼
- æ¸©åº¦ãæ¹¿åº¦ãå 线ãåªé³ä¼å
- åºåèé度建议
-
çæ´»æ¹å¼è°æ´ï¼
- è¿å¨ã饮é£ãåå¡å ãé 精管ç
- åå管ç建议
-
CBT-Iå ç´ ï¼
- åºæ¿æ§å¶å»ºè®®
- ç¡ç éå¶å»ºè®®
- 认ç¥éæå»ºè®®
è¾åºï¼
- ä¼å 级æåºç建议å表
- å ·ä½å®æ½æ¥éª¤
- 颿ææè¯´æ
- 宿½æ¶é´çº¿
使ç¨è¯´æ
è§¦åæ¡ä»¶
å½ç¨æ·è¯·æ±ä»¥ä¸å 容æ¶è§¦åæ¬æè½ï¼
- ç¡ç è¶å¿åæ
- ç¡ç è´¨éè¯ä¼°
- ç¡ç é®é¢è¯å«
- ç¡ç æ¹å建议
- ç¡ç ä¸å ¶ä»å¥åº·ææ çå ³èåæ
æ§è¡æ¥éª¤
æ¥éª¤ 1: ç¡®å®åæèå´
æç¡®ç¨æ·è¯·æ±çåæç±»ååæ¶é´èå´ï¼
- åæç±»åï¼è¶å¿/è´¨é/é®é¢/ç¸å ³æ§/建议
- æ¶é´èå´ï¼å¨/æ/å£åº¦/èªå®ä¹
æ¥éª¤ 2: è¯»åæ°æ®
ä¸»è¦æ°æ®æºï¼
data-example/sleep-tracker.json– ç¡ç è¿½è¸ªä¸»æ°æ®data-example/sleep-logs/YYYY-MM/YYYY-MM-DD.json– æ¯æ¥ç¡ç è®°å½
å ³èæ°æ®æºï¼
data-example/fitness-tracker.json– è¿å¨æ°æ®data-example/hypertension-tracker.json– è¡åæ°æ®data-example/diabetes-tracker.json– è¡ç³æ°æ®data-example/diet-records/– 饮é£è®°å½data-example/mood-tracker.json– æ ç»ªæ°æ®
æ¥éª¤ 3: æ°æ®åæ
æ ¹æ®åæç±»åæ§è¡ç¸åºçåæç®æ³ï¼
è¶å¿åæç®æ³ï¼
- 线æ§åå½è®¡ç®è¶å¿æç
- ç§»å¨å¹³åå¹³æ»æ³¢å¨
- ç»è®¡æ¾èæ§æ£éª
ç¸å ³æ§åæç®æ³ï¼
- Pearsonç¸å ³ç³»æ°è®¡ç®
- æ»åç¸å ³æ§åæï¼èèæ¶é´å»¶è¿æåºï¼
- å¤åéåå½åæ
模å¼è¯å«ç®æ³ï¼
- æ¶é´åºå模å¼è¯å«
- å¼å¸¸å¼æ£æµ
- 卿æ§åæ
æ¥éª¤ 4: çææ¥å
æç §æ åæ ¼å¼è¾åºåææ¥åï¼è§”è¾åºæ ¼å¼”é¨åï¼
è¾åºæ ¼å¼
ç¡ç è´¨éåææ¥å
# ç¡ç è´¨éåææ¥å
## åæå¨æ
2025-03-20 è³ 2025-06-20ï¼3个æï¼
---
## ç¡ç æ¶é¿è¶å¿
- **è¶å¿**ï¼â¬ï¸ æ¹å
- **å¼å§**ï¼å¹³å6.2å°æ¶/æ
- **å½å**ï¼å¹³å7.1å°æ¶/æ
- **åå**ï¼+0.9å°æ¶ (+14.5%)
- **解读**ï¼ç¡ç æ¶é¿æ¾èå¢å ï¼æ¥è¿çæ³ç®æ ï¼7.5å°æ¶ï¼
**è¶å¿çº¿**ï¼
6.5h ⤠ââ® 6.0h ⤠âââ¯â°â® 5.5h ⤠ââ⯠â°ââ® 5.0h â¼ââ â°â ââââââââââââ 3æ 4æ 5æ 6æ
---
## ç¡ç æç
- **å¹³åç¡ç æç**ï¼85.3%
- **æçèå´**ï¼78%-92%
- **è¾¾æ ç**ï¼63%ï¼>85%为达æ ï¼
- **解读**ï¼ç¡ç æçæ£å¸¸ï¼ä»ææå空é´
**æçåå¸**ï¼
- ä¼ç§ï¼>90%ï¼ï¼15æ
- è¯å¥½ï¼85-90%ï¼ï¼28æ
- éæ¹åï¼<85%ï¼ï¼47æ
---
## 使¯è§å¾æ§
- **å¹³åä¸åºæ¶é´**ï¼23:15ï¼èå´ï¼22:30-01:00ï¼
- **å¹³åèµ·åºæ¶é´**ï¼07:05ï¼èå´ï¼06:30-08:30ï¼
- **使¯ä¸è´æ§è¯å**ï¼72/100
- **社交æ¶å·®**ï¼45åéï¼å¨æ«æ¯å·¥ä½æ¥æç¡æèµ·ï¼
- **解读**ï¼ä½æ¯åºæ¬è§å¾ï¼ä½å¨æ«æ³¢å¨è¾å¤§
**建议**ï¼
- ð¯ ä¿æä¸è´çèµ·åºæ¶é´ï¼å
æ¬å¨æ«
- ð¯ éæ¥è°æ´ä¸åºæ¶é´ï¼é¿å
卿«è¿åº¦å»¶è¿
---
## ç¡ç è´¨éåå¸
| è´¨éç级 | å¤©æ° | å æ¯ | è¶å¿ |
|---------|------|------|------|
| ä¼ç§ | 8 | 9% | â¬ï¸ |
| å¾å¥½ | 12 | 13% | â¡ï¸ |
| 好 | 15 | 17% | â¬ï¸ |
| ä¸è¬ | 42 | 47% | â¬ï¸ |
| å·® | 10 | 11% | â¬ï¸ |
| å¾å·® | 3 | 3% | â¡ï¸ |
**解读**ï¼ç¡ç è´¨é以"ä¸è¬"为主ï¼ä½"好"å以ä¸è´¨éç天æ°å¨å¢å
---
## å¤é´è§éåæ
- **å¹³åè§é次æ°**ï¼1.8次/æ
- **å¹³åè§éæ¶é¿**ï¼18åé
- **主è¦åå **ï¼
1. å°¿æï¼45%ï¼
2. åªé³ï¼25%ï¼
3. 温度è¿çï¼15%ï¼
4. å
¶ä»ï¼15%ï¼
**建议**ï¼
- ð¯ ç¡å2å°æ¶éå¶æ¶²ä½æå
¥
- ð¯ ä¼åå§å®¤æ¸©åº¦ï¼18-22âï¼
- ð¯ 使ç¨ç½åªé³æºå¨é®è½èæ¯åªé³
---
## PSQI è¯ä¼°è¶å¿
- **ææ°åæ°**ï¼8åï¼ç¡ç è´¨éä¸è¬ï¼
- **䏿¬¡åæ°**ï¼10åï¼2025-03-20ï¼
- **åå**ï¼-2åï¼æ¹åï¼
- **è¶å¿**ï¼â¬ï¸ æç»æ¹å
**åå²è¶å¿**ï¼
12 ⤠â 10 ⤠â 8 ⤠â 6 ⤠âââââââ 12æ 3æ 6æ
**åæååå**ï¼
- 主è§ç¡ç è´¨éï¼2â2ï¼ç¨³å®ï¼
- å
¥ç¡æ¶é´ï¼2â2ï¼ç¨³å®ï¼
- ç¡ç æ¶é¿ï¼2â1ï¼æ¹åï¼
- ç¡ç æçï¼2â1ï¼æ¹åï¼
- ç¡ç éç¢ï¼2â1ï¼æ¹åï¼
---
## ç¡ç é®é¢è¯å«
### 失ç è¯ä¼°
- **ç±»å**ï¼æ··åå失ç
- **é¢ç**ï¼4-5æ/å¨
- **æç»æ¶é´**ï¼18个æ
- **主è¦çç¶**ï¼
- â å
¥ç¡å°é¾ï¼æ½ä¼æ>30åéï¼
- â ç¡ç ç»´æå°é¾ï¼å¤é´è§é>2次ï¼
- â æ æ©éé®é¢
- **å½±å**ï¼
- ç½å¤©ç²å³ï¼ä¸åº¦
- æ
绪ç¦èºï¼æ¯
- 注æåå°é¾ï¼æ¯
- å·¥ä½è¡¨ç°ï¼è½»åº¦å½±å
- **建议**ï¼ð¥ æç»>3个æï¼å»ºè®®å°±å»å¨è¯¢ç¡ç ä¸ç§
### å¼å¸æåçæ¥ï¼STOP-BANGï¼
- **è¯å**ï¼3/8
- **é£é©ç级**ï¼ä¸çé£é©
- **鳿§é¡¹ç®**ï¼
- â Snoringï¼æé¼¾ï¼
- â Tiredï¼ç½å¤©ç²å³ï¼
- â Observed apneaï¼æªè§å¯å°å¼å¸æåï¼
- â Pressureï¼é«è¡åï¼
- â BMI > 28
- â Age > 50
- â Neck size > 40cm
- â Gender = male
- **建议**ï¼â ï¸ å»ºè®®è¿è¡ç¡ç æ£æ¥ï¼PSGï¼
---
## ç¸å
³æ§åæ
### ç¡ç â è¿å¨
**è¿å¨æ¥ vs 伿¯æ¥**ï¼
- è¿å¨æ¥å¹³åç¡ç ï¼7.3å°æ¶
- 伿¯æ¥å¹³åç¡ç ï¼6.8å°æ¶
- å·®å¼ï¼+0.5å°æ¶ï¼+7.4%ï¼
**è¿å¨æ¶é´å¯¹ç¡ç çå½±å**ï¼
- æ©æ¨è¿å¨ï¼ç¡ç æ¶é¿7.5å°æ¶ï¼è´¨éè¯å7.8/10
- ä¸åè¿å¨ï¼ç¡ç æ¶é¿7.2å°æ¶ï¼è´¨éè¯å7.5/10
- æé´è¿å¨ï¼ç¡ç æ¶é¿6.8å°æ¶ï¼è´¨éè¯å6.8/10
**ç¸å
³æ§**ï¼ä¸çæ£ç¸å
³ï¼r = 0.42ï¼
**ç»è®º**ï¼è§å¾è¿å¨æå©äºæ¹åç¡ç ï¼ä½åºé¿å
ç¡å2-3å°æ¶å§çè¿å¨
**建议**ï¼
- ð¯ ä¿æè§å¾è¿å¨ä¹ æ¯
- ð¯ å°è¿å¨æ¶é´ç§»è³æ©æ¨æä¸å
- ð¯ ç¡å2-3å°æ¶é¿å
å§çè¿å¨
---
### ç¡ç â åå¡å
**åå¡å æå
¥æ¶é´åæ**ï¼
- ä¸å2ç¹åæå
¥ï¼å¹³åç¡ç 7.2å°æ¶ï¼å
¥ç¡æ½ä¼æ25åé
- ä¸å2ç¹åæå
¥ï¼å¹³åç¡ç 6.7å°æ¶ï¼å
¥ç¡æ½ä¼æ40åé
- å·®å¼ï¼-0.5å°æ¶æ¶é¿ï¼+15å鿽伿
**ç¸å
³æ§**ï¼ä¸çè´ç¸å
³ï¼r = -0.38ï¼
**ç»è®º**ï¼ä¸å2ç¹åæå
¥åå¡å æ¾èå½±åç¡ç
**建议**ï¼
- ð¯ é¿å
ä¸å2ç¹åæå
¥åå¡å
- ð¯ ç¡å6å°æ¶å®å
¨é¿å
åå¡å
---
### ç¡ç â æ
绪
**ç¡ç è´¨éå¯¹æ¬¡æ¥æ
绪çå½±å**ï¼
- ç¡ç å¥½ï¼æ¬¡æ¥æ
ç»ªç§¯ææ¦ç82%
- ç¡ç ä¸è¬ï¼æ¬¡æ¥æ
ç»ªç§¯ææ¦ç45%
- ç¡ç å·®ï¼æ¬¡æ¥æ
ç»ªç§¯ææ¦ç18%
**ç¡åæ
绪对å
¥ç¡çå½±å**ï¼
- ç¡åååé«ï¼å
¥ç¡æ½ä¼æ45åé
- ç¡åååä½ï¼å
¥ç¡æ½ä¼æ20åé
- å·®å¼ï¼+25åé
**ç¸å
³æ§**ï¼å¼ºååç¸å
³ï¼r = 0.65ï¼
**ç»è®º**ï¼ç¡ç 䏿
绪å卿¾èçç¸äºå½±å
**建议**ï¼
- ð¯ ç¡åè¿è¡åå管çï¼å¥æ³ãæ·±å¼å¸ï¼
- ð¯ å»ºç«æ¾æ¾çç¡åä¾è¡ç¨åº
- ð¯ è®°å½æ
绪æ¥è®°ï¼è¯å«å忍¡å¼
---
## æ´å¯ä¸å»ºè®®
### å
³é®æ´å¯
1. **使¯ä¸ä¸è´æ¯ä¸»è¦é®é¢**
- 社交æ¶å·®45åé
- 卿«ä½æ¯æ¾èåç¦»å·¥ä½æ¥
- å½±åï¼çç©éç´ä¹±ï¼å¨ä¸"æ¶å·®ååº"
2. **æé´è¿å¨å½±åå
¥ç¡**
- æé´è¿å¨æ¥å
¥ç¡æ½ä¼æå»¶é¿15åé
- 建议ï¼è°æ´è¿å¨æ¶é´
3. **ç¡ç ç¯å¢å¯ä¼å**
- åªé³è§éå 25%
- 温度è¿çå 15%
- 建议éå¯¹æ§æ¹å
---
### ä¼å
级è¡å¨è®¡å
#### Priority 1ï¼å»ºç«ä¸è´ä½æ¯ï¼2å¨ï¼
**ç®æ **ï¼æé«ä½æ¯ä¸è´æ§è¯åè³85å
**å
·ä½è¡å¨**ï¼
1. åºå®èµ·åºæ¶é´07:00ï¼å
æ¬å¨æ«ï¼
2. åºå®ä¸åºæ¶é´23:00
3. éå¶åç¡<30åéï¼ä¸ä¸å3ç¹å
4. éæ¥è°æ´å¨æ«ä½æ¯ï¼æ¯æ¬¡æå15åéï¼
**颿ææ**ï¼
- 使¯ä¸è´æ§è¯åï¼72 â 85
- ç¡ç æçæåï¼+3-5%
- å¨ä¸ç²å³æåè½»
---
#### Priority 2ï¼å建ç¡åä¾è¡ç¨åºï¼3å¨ï¼
**ç®æ **ï¼å»ºç«ç¨³å®çç¡åä¾è¡ç¨åº
**å
·ä½è¡å¨**ï¼
1. æå1å°æ¶å¼å§ä¾è¡ç¨åºï¼22:00ï¼
2. å
³éçµå设å¤ï¼22:30ï¼
3. è°æå§å®¤ç¯å
4. è¿è¡æ¾æ¾æ´»å¨ï¼é
读ã奿³ã温水澡ï¼
5. ä¿æå§å®¤å®éã黿ãåç½ï¼18-22âï¼
**颿ææ**ï¼
- å
¥ç¡æ½ä¼æç¼©çï¼30 â 20åé
- ç¡ç è´¨éæåï¼ä¸è¬ â 好
- ç¡åååéä½
---
#### Priority 3ï¼ä¼åç¡ç ç¯å¢ï¼1å¨ï¼
**ç®æ **ï¼æ¶é¤ç¯å¢å¯¹ç¡ç çå¹²æ°
**å
·ä½è¡å¨**ï¼
1. å®è£
é®å
çªå¸
2. 使ç¨ç½åªé³æºå¨é®è½èæ¯åªé³
3. ä¼å温度è³18-22â
4. ç§»é¤å§å®¤æ¶é
5. æ´æ¢èéçæå¤´ååºå«
**颿ææ**ï¼
- å¤é´è§éåå°ï¼1.8 â 1.2次/æ
- ç¡ç è¿ç»æ§æå
- æ¨èµ·ç¶ææ¹å
---
#### Priority 4ï¼çæ´»æ¹å¼è°æ´ï¼4å¨ï¼
**ç®æ **ï¼æ¶é¤å½±åç¡ç ççæ´»ä¹ æ¯
**å
·ä½è¡å¨**ï¼
1. å°è¿å¨ç§»è³æ©æ¨æä¸å
2. ä¸å2ç¹å忢åå¡å æå
¥
3. ç¡å3å°æ¶é¿å
é
ç²¾
4. ç¡å2å°æ¶é¿å
大é¤
5. ç¡å1å°æ¶é¿å
å·¥ä½ç¸å
³è®¨è®º
**颿ææ**ï¼
- ç¡ç æ¶é¿å¢å ï¼+0.3å°æ¶
- ç¡ç è´¨éè¯åæåï¼+1å
- PSQIåæ°æ¹åï¼8 â 6
---
## é¿æç®æ
- **ç¡ç æ¶é¿**ï¼è¾¾å°7.5å°æ¶/æï¼å½å7.1å°æ¶ï¼
- **ç¡ç æç**ï¼æåè³>90%ï¼å½å85%ï¼
- **PSQIåæ°**ï¼éè³â¤5åï¼å½å8åï¼
- **使¯ä¸è´æ§**ï¼æåè³â¥85åï¼å½å72åï¼
- **å
¥ç¡æ½ä¼æ**ï¼ç¼©çè³<20åéï¼å½å28åéï¼
---
## å»å¦å®å
¨æé
â ï¸ **å°±å»å»ºè®®**ï¼
- ð¥ å¤±ç æç»>3个æï¼å»ºè®®å¨è¯¢ç¡ç ä¸ç§
- ð¥ STOP-BANGâ¥3åï¼å»ºè®®è¿è¡ç¡ç æ£æ¥ï¼PSGï¼
- ð¥ 严éåç¡å½±å驾驶å®å
¨ï¼éç«å³å°±å»
---
**æ¥åçææ¶é´**ï¼2025-06-20
**åæå¨æ**ï¼2025-03-20 è³ 2025-06-20ï¼90天ï¼
**æ°æ®è®°å½æ°**ï¼90æ
**ç¡ç åæå¨çæ¬**ï¼v1.0
æ°æ®ç»æ
ç¡ç è®°å½æ°æ®
{
"sleep_records": [
{
"id": "sleep_20250620001",
"date": "2025-06-20",
"sleep_times": {
"bedtime": "23:00",
"sleep_onset_time": "23:30",
"wake_time": "07:00",
"out_of_bed_time": "07:15"
},
"sleep_metrics": {
"sleep_duration_hours": 7.0,
"time_in_bed_hours": 8.25,
"sleep_latency_minutes": 30,
"sleep_efficiency": 84.8
},
"sleep_quality": {
"subjective_quality": "fair",
"quality_score": 5,
"rested_feeling": "somewhat"
},
"factors": {
"exercise": true,
"exercise_time": "evening",
"caffeine_after_2pm": false,
"screen_time_before_bed_minutes": 60
}
}
]
}
ç®æ³è¯´æ
ç¡ç è´¨éè¯åç®æ³
def calculate_sleep_quality_score(record):
"""
计ç®ç¡ç è´¨éè¯åï¼0-10åï¼
å ç´ æéï¼
- ç¡ç æ¶é¿ï¼30%
- ç¡ç æçï¼25%
- å
¥ç¡æ½ä¼æï¼20%
- å¤é´è§éï¼15%
- 主è§è´¨éï¼10%
"""
score = 0
# ç¡ç æ¶é¿è¯åï¼çæ³7-9å°æ¶ï¼
duration = record['sleep_duration_hours']
if 7 <= duration <= 9:
duration_score = 10
elif 6 <= duration < 7 or 9 < duration <= 10:
duration_score = 7
else:
duration_score = 4
score += duration_score * 0.30
# ç¡ç æçè¯åï¼>90%ä¼ç§ï¼
efficiency = record['sleep_efficiency']
efficiency_score = min(efficiency / 90 * 10, 10)
score += efficiency_score * 0.25
# å
¥ç¡æ½ä¼æè¯åï¼<15åéä¼ç§ï¼
latency = record['sleep_latency_minutes']
if latency <= 15:
latency_score = 10
elif latency <= 30:
latency_score = 7
elif latency <= 45:
latency_score = 4
else:
latency_score = 1
score += latency_score * 0.20
# å¤é´è§éè¯åï¼0次ä¼ç§ï¼
awakenings = record['awakenings']['count']
awakening_score = max(10 - awakenings * 2, 0)
score += awakening_score * 0.15
# 主è§è´¨éè¯å
quality_map = {
'excellent': 10,
'very_good': 8,
'good': 7,
'fair': 5,
'poor': 3,
'very_poor': 1
}
subjective_score = quality_map.get(
record['sleep_quality']['subjective_quality'],
5
)
score += subjective_score * 0.10
return round(score, 1)
使¯è§å¾æ§è¯åç®æ³
def calculate_sleep_consistency_score(records):
"""
计ç®ä½æ¯è§å¾æ§è¯åï¼0-100åï¼
å ç´ ï¼
- ä¸åºæ¶é´æ åå·®
- èµ·åºæ¶é´æ åå·®
- ç¡ç æ¶é¿æ åå·®
- 工使¥vs卿«å·®å¼
"""
# æåæ¶é´æ°æ®
bedtimes = [r['bedtime'] for r in records]
wake_times = [r['wake_time'] for r in records]
durations = [r['sleep_duration_hours'] for r in records]
# è®¡ç®æ åå·®ï¼åéï¼
bedtime_std = time_to_minutes_std(bedtimes)
wake_std = time_to_minutes_std(wake_times)
duration_std = statistics.stdev(durations)
# 计ç®å·¥ä½æ¥vs卿«å·®å¼
weekday_avg = avg([r['sleep_duration_hours']
for r in records if is_weekday(r)])
weekend_avg = avg([r['sleep_duration_hours']
for r in records if is_weekend(r)])
diff = abs(weekday_avg - weekend_avg)
# 综åè¯å
score = 100
score -= bedtime_std * 0.5 # ä¸åºæ¶é´æ å差影å
score -= wake_std * 0.5 # èµ·åºæ¶é´æ å差影å
score -= duration_std * 2 # ç¡ç æ¶é¿æ å差影å
score -= diff * 10 # 工使¥å¨æ«å·®å¼å½±å
return max(0, min(100, round(score)))
ç¸å ³æ§åæç®æ³
def calculate_correlation(sleep_data, other_data, lag_days=0):
"""
计ç®ç¡ç ä¸å
¶ä»ææ çç¸å
³æ§
åæ°ï¼
- sleep_data: ç¡ç æ°æ®å表
- other_data: å
¶ä»ææ æ°æ®å表
- lag_days: æ»å天æ°ï¼èèå»¶è¿æåºï¼
è¿åï¼
- correlation_coefficient: ç¸å
³ç³»æ°
- p_value: ç»è®¡æ¾èæ§
- interpretation: ç¸å
³æ§è§£é
"""
# 坹齿°æ®ï¼èèæ»åï¼
aligned = align_data_with_lag(sleep_data, other_data, lag_days)
# 计ç®Pearsonç¸å
³ç³»æ°
from scipy import stats
corr, p_value = stats.pearsonr(
aligned['sleep_values'],
aligned['other_values']
)
# è§£éç¸å
³æ§
if abs(corr) < 0.3:
strength = "å¼±"
elif abs(corr) < 0.7:
strength = "ä¸ç"
else:
strength = "强"
direction = "æ£ç¸å
³" if corr > 0 else "è´ç¸å
³"
significant = p_value < 0.05
interpretation = f"{strength}{direction}"
if significant:
interpretation += "ï¼ç»è®¡å¦æ¾èï¼"
return {
'correlation_coefficient': round(corr, 3),
'p_value': round(p_value, 4),
'interpretation': interpretation,
'significant': significant
}
å»å¦å®å ¨å£°æ
æ¬æè½æä¾çåæåå»ºè®®ä» ä¾åèï¼ä¸ææå»çè¯æææ²»çæ¹æ¡ã
æ¬æè½è½å¤åå°çï¼
- â åæç¡ç æ°æ®å模å¼
- â è¯å«ç¡ç é®é¢é£é©
- â æä¾ç¡ç å«ç建议
- â è¯ä¼°ä¸å ¶ä»å¥åº·ææ çç¸å ³æ§
æ¬æè½ä¸è½åçï¼
- â è¯æå¤±ç ãç¡ç å¼å¸æåçç¾ç
- â å¼å ·å©ç è¯ç©ææ²»ç
- â æ¿ä»£ä¸ä¸ç¡ç å»å¦æ²»ç
- â å¤ç严éç¡ç éç¢
使¶éè¦å°±å»ï¼
- ð¥ å¤±ç æç»>3个æ
- ð¥ çä¼¼ç¡ç å¼å¸æåï¼STOP-BANGâ¥3ï¼
- ð¥ 严éåç¡å½±åå®å ¨
- ð¥ çªå严éç¡ç é®é¢
åèèµæº
- AASM ç¡ç è¯åæ åï¼https://aasm.org/
- PSQI é表ï¼https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3455216/
- STOP-BANG é®å·ï¼https://www.stopbang.ca/
- CBT-I æ²»çï¼https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3455216/
æè½çæ¬: v1.0 åå»ºæ¥æ: 2026-01-02 ç»´æ¤è : WellAlly Tech