Skip to content

Project Structure Overview

Each ExpOps project follows a standardized directory structure that organizes configuration, code, data, and artifacts.

Directory Layout

my-project/
├── configs/
│   ├── project_config.yaml      # Main project configuration
│   └── compute_config.yaml      # Optional cluster configuration
├── src/
│   ├── <model_name>.py          # Model implementation (main script)
│   ├── plot_metrics.py           # Static chart generation
│   ├── plot_metrics.js          # Optional dynamic chart generation
│   └── ...                      # Other project modules
├── data/                         # Input datasets
├── requirements.txt              # Main project dependencies
├── requirements-charts.txt       # Chart/reporting dependencies
└── .<project_id>/                # Runtime directory (hidden)
    ├── envs/                     # Project virtual environments
    ├── logs/                     # Execution logs
    ├── cache/                    # Step/process cache
    │   └── <version_hash>/<encoded_probe_path>/
    └── artifacts/                # Charts and other artifacts
        └── <version_hash>/<encoded_probe_path>/

For GCP-backed backends (e.g. Firestore), set the path to your credentials file in your config (e.g. credentials_json: src/firestore.json or credentials_json: firestore.json).

Key Components

Configuration Files

The configs/ directory contains all project configuration: - project_config.yaml: Main configuration (required) - compute_config.yaml: Cluster execution settings (optional)

See Configuration Files for details.

Model Code

The src/ directory contains your ML pipeline and reporting scripts. The main model script (e.g. <model_name>.py) is referenced in project_config.yaml under scripts.main: - Process definitions with @process() decorator - Step functions with @step() decorator - Pipeline logic and data transformations

See Model Code for details.

Chart Generation

Chart scripts live under src/ and are referenced in config (scripts.reporting, scripts.reporting_js): - plot_metrics.py: Static PNG chart generation - plot_metrics.js: Optional dynamic interactive charts

Dependencies

  • requirements.txt: Main dependencies for training/inference
  • requirements-charts.txt: Reporting/chart dependencies