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ộ