Giao diện
Pipeline & Orchestration
TÓM TẮT
ForecastPipeline (core/pipeline.py, ~710 dòng) là orchestrator chính điều phối flow: preprocess → features → train → predict → evaluate → save.
File: forecast_engine/src/core/pipeline.py
Pipeline Steps
Step 1: Preprocessing
python
def _preprocess_raw_data(df):
# - Standardize column names
# - Aggregate to daily granularity
# - Compute series_key: client_id|user_id|warehouse|product_id
# - Handle missing valuesStep 2: Feature Engineering
40+ features được tạo. Xem Feature Engineering.
Step 3: Model Training
Two-stage model training. Xem DemandForecastModel.
Step 4: Prediction
- Two-stage prediction với threshold tuning
- Quantile predictions (P10/P50/P90)
Step 5: Evaluation
python
metrics = {
'wmape': weighted_mape(y_true, y_pred),
'bias': bias_score(y_true, y_pred),
'fnr': false_negative_rate(y_true, y_pred),
'mae': mean_absolute_error(y_true, y_pred)
}Step 6: Save to Supabase
Via repository.py — save forecast_results + model_metadata.
Two-Level Forecasting
Pipeline hỗ trợ 2 cấp dự báo:
| Level | Series Key | Mô tả |
|---|---|---|
| Order | client_id|user_id|warehouse|product_id | Per-user, per-warehouse |
| SKU | client_id|product_id | Aggregated across channels |
CrossAuditor (cross_auditor.py) so sánh 2 levels và flag anomalies khi kết quả lệch quá ngưỡng.