Skip to content

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 values

Step 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:

LevelSeries KeyMô tả
Orderclient_id|user_id|warehouse|product_idPer-user, per-warehouse
SKUclient_id|product_idAggregated across channels

CrossAuditor (cross_auditor.py) so sánh 2 levels và flag anomalies khi kết quả lệch quá ngưỡng.

Tài liệu liên quan ​

BoxMe Forecast — Tài liệu kỹ thuật nội bộ