Pass raw health metrics to AI instead of hardcoded correlations
- Replace HealthService.analyzeCorrelations() with computeHealthAverages() - Remove hardcoded threshold-based correlation analysis (8k steps, 7hrs sleep, etc.) - Pass raw averages (steps, exercise, sleep, HRV, HR, mindfulness, calories) to AI - Let Apple Intelligence find nuanced multi-variable patterns naturally - Update MoodDataSummarizer to format raw health data for AI prompts - Simplifies code by ~200 lines while improving insight quality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -149,20 +149,11 @@ class InsightsViewModel: ObservableObject {
|
||||
|
||||
updateState(.loading)
|
||||
|
||||
// Fetch health data if enabled
|
||||
var healthCorrelations: [HealthCorrelation] = []
|
||||
// Fetch health data if enabled - pass raw averages to AI for correlation analysis
|
||||
var healthAverages: HealthService.HealthAverages?
|
||||
if healthService.isEnabled && healthService.isAuthorized {
|
||||
let healthData = await healthService.fetchHealthData(for: validEntries)
|
||||
let correlations = healthService.analyzeCorrelations(entries: validEntries, healthData: healthData)
|
||||
|
||||
// Convert to HealthCorrelation format
|
||||
healthCorrelations = correlations.map {
|
||||
HealthCorrelation(
|
||||
metric: $0.metric,
|
||||
insight: $0.insight,
|
||||
correlation: $0.correlation
|
||||
)
|
||||
}
|
||||
healthAverages = healthService.computeHealthAverages(entries: validEntries, healthData: healthData)
|
||||
}
|
||||
|
||||
do {
|
||||
@@ -170,7 +161,7 @@ class InsightsViewModel: ObservableObject {
|
||||
for: validEntries,
|
||||
periodName: periodName,
|
||||
count: 5,
|
||||
healthCorrelations: healthCorrelations
|
||||
healthAverages: healthAverages
|
||||
)
|
||||
updateInsights(insights)
|
||||
updateState(.loaded)
|
||||
|
||||
Reference in New Issue
Block a user