Improve AI logic
This commit is contained in:
@@ -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
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user