Improve AI logic

This commit is contained in:
Urtzi Alfaro
2025-11-05 13:34:56 +01:00
parent 5c87fbcf48
commit 394ad3aea4
218 changed files with 30627 additions and 7658 deletions

View File

@@ -170,6 +170,7 @@ class TrainingDataOrchestrator:
logger.error(f"Training data preparation failed: {str(e)}")
raise ValueError(f"Failed to prepare training data: {str(e)}")
@staticmethod
def extract_sales_date_range_utc_localize(sales_data_df: pd.DataFrame):
"""
Extracts the UTC-aware date range from a sales DataFrame using tz_localize.
@@ -246,12 +247,14 @@ class TrainingDataOrchestrator:
if 'date' in record:
record_date = record['date']
# ✅ FIX: Proper timezone handling for date parsing
# ✅ FIX: Proper timezone handling for date parsing - FIXED THE TRUNCATION ISSUE
if isinstance(record_date, str):
# Parse complete ISO datetime string with timezone info intact
# DO NOT truncate to date part only - this was causing the filtering issue
if 'T' in record_date:
record_date = record_date.replace('Z', '+00:00')
# Parse with timezone info intact
parsed_date = datetime.fromisoformat(record_date.split('T')[0])
# Parse with FULL datetime info, not just date part
parsed_date = datetime.fromisoformat(record_date)
# Ensure timezone-aware
if parsed_date.tzinfo is None:
parsed_date = parsed_date.replace(tzinfo=timezone.utc)
@@ -260,8 +263,8 @@ class TrainingDataOrchestrator:
# Ensure timezone-aware
if record_date.tzinfo is None:
record_date = record_date.replace(tzinfo=timezone.utc)
# Normalize to start of day
record_date = record_date.replace(hour=0, minute=0, second=0, microsecond=0)
# DO NOT normalize to start of day - keep actual datetime for proper filtering
# Only normalize if needed for daily aggregation, but preserve original for filtering
# ✅ FIX: Ensure aligned_range dates are also timezone-aware for comparison
aligned_start = aligned_range.start
@@ -885,4 +888,4 @@ class TrainingDataOrchestrator:
1 if len(dataset.traffic_data) > 0 else 0
])
}
}
}