Skip to content

Refactor/experiments to models clean - #419

Merged
cristian-tamblay merged 11 commits into
developfrom
refactor/experiments-to-models-clean
Jan 19, 2026
Merged

Refactor/experiments to models clean#419
cristian-tamblay merged 11 commits into
developfrom
refactor/experiments-to-models-clean

Conversation

@Creylay

@Creylay Creylay commented Jan 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Renames the Experiment entity to ModelSession throughout the entire codebase to better reflect its purpose in the Models workflow. This includes database models, API endpoints, frontend components, and type definitions. The change improves code clarity by using terminology that aligns with the user-facing "Sessions" concept in the Models module.


Type of Change

Check all that apply like this [x]:

  • Backend change
  • Frontend change
  • CI / Workflow change
  • Build / Packaging change
  • Bug fix
  • Documentation

Changes (by file)

Backend - API:

  • DashAI/back/api/api_v1/endpoints/experiments.pymodel_sessions.py: Renamed endpoint file and updated all routes from /experiments to /model-sessions
  • DashAI/back/api/api_v1/schemas/experiments_params.pymodel_sessions_params.py: Renamed schema file and updated class names
  • DashAI/back/api/api_v1/api.py: Updated router imports and tags from experiments to model_sessions
  • DashAI/back/api/api_v1/endpoints/runs.py: Updated references from experiment_id to model_session_id
  • DashAI/back/api/api_v1/endpoints/explainers.py: Updated to use model_session_id
  • DashAI/back/api/api_v1/endpoints/predict.py: Updated to use model_session_id
  • DashAI/back/api/api_v1/endpoints/datasets.py: Updated experiment references to model session
  • DashAI/back/api/api_v0/endpoints/old_endpoints.py: Updated legacy endpoints

Backend - Database & Jobs:

  • DashAI/back/dependencies/database/models.py: Renamed Experiment model to ModelSession, changed table name and all foreign key references
  • DashAI/back/dependencies/database/__init__.py: Updated model exports
  • DashAI/back/job/model_job.py: Updated to use model_session_id instead of experiment_id
  • DashAI/back/job/explainer_job.py: Updated job references
  • DashAI/back/job/predict_job.py: Updated job references
  • DashAI/back/pipeline/train_node.py: Updated pipeline node references

Backend - Dataloaders:

  • DashAI/back/dataloaders/classes/dashai_dataset.py: Updated to use model_session_id

Frontend - API Layer:

  • DashAI/front/src/api/experiment.tsmodelSession.ts: Renamed API file and updated all function names (e.g., getExperimentsgetModelSessions)
  • DashAI/front/src/api/run.ts: Updated run schema to use model_session_id
  • DashAI/front/src/api/datasets.ts: Updated dataset filtering to use model_session_id
  • DashAI/front/src/api/oldEndpoints.ts: Updated legacy API calls

Frontend - Types:

  • DashAI/front/src/types/experiment.tsmodelSession.ts: Renamed type file and interface
  • DashAI/front/src/types/run.ts: Updated Run interface to use model_session_id
  • DashAI/front/src/types/predict.ts: Updated prediction types

Frontend - Components (Models Module):

  • DashAI/front/src/components/models/RunCard.jsx: Updated PropTypes to use model_session_id
  • DashAI/front/src/components/models/RunOperations.jsx: Updated PropTypes to use model_session_id
  • DashAI/front/src/components/models/PredictionCreationDialog.jsx: Renamed experiment state to modelSession, updated to use model_session_id
  • DashAI/front/src/components/models/CreateSessionSteps.jsx: Updated to use model session terminology
  • DashAI/front/src/pages/models/ModelsContent.jsx: Updated imports and API calls

Frontend - Components (Experiments Module):

  • DashAI/front/src/components/experiments/ExperimentsTable.jsx: Updated API calls to getModelSessions and deleteModelSession
  • DashAI/front/src/components/experiments/NewExperimentModal.jsx: Updated to use model session API
  • DashAI/front/src/components/experiments/PrepareDatasetStep.jsx: Updated session references

Frontend - Components (Other Modules):

  • DashAI/front/src/components/explainers/TrainedModelsTable.jsx: Updated extractRows function to use model_session_id, added validation
  • DashAI/front/src/components/explainers/SelectDatasetStep.jsx: Updated to use getModelSessionById
  • DashAI/front/src/components/predictions/PredictionModal.jsx: Updated to use model_session_id
  • DashAI/front/src/components/predictions/ManualInput.jsx: Updated experiment references
  • DashAI/front/src/components/pipelines/nodes/TrainNode.jsx: Updated pipeline node
  • DashAI/front/src/components/results/ExperimentsList.jsx: Updated list component
  • DashAI/front/src/components/datasets/ConvertDatasetModal.jsx: Updated dataset conversion

Frontend - Pages:

  • DashAI/front/src/pages/experiments/Experiments.jsx: Updated imports and API calls
  • DashAI/front/src/pages/home/Home.jsx: Updated home page references
  • DashAI/front/src/pages/results/components/ResultsTable.jsx: Updated filtering logic to use model_session_id
  • DashAI/front/src/pages/results/components/ResultsTabInfo.jsx: Updated to use getModelSessionById
  • DashAI/front/src/pages/results/components/LiveMetricsChart.jsx: Updated API call to getModelSessionById

Frontend - Tours:

  • DashAI/front/src/constants/tours/homeTour.js: Updated tour content from "experiments" to "models"

Backend - Tests:

  • tests/back/api/test_runs_api.py: Renamed fixture experiment_idmodel_session_id, updated endpoints to /api/v1/model-session/, updated all JSON requests and query parameters
  • tests/back/api/test_explainer_jobs.py: Renamed fixture create_experimentcreate_model_session, updated variable names, fixed import ordering (alphabetical), updated Run instantiation
  • tests/back/api/test_explanations_api.py: Renamed fixture experiment_idmodel_session_id, updated model session creation and both run fixtures
  • tests/back/api/test_predict_api.py: Renamed fixture create_experimentcreate_model_session, updated all model session references and Run creation
  • tests/back/api/test_jobs.py: Renamed fixture create_experimentcreate_model_session, updated JSON requests and both run fixtures
  • tests/back/api/test_experiments_api.py: Renamed fixtures create_experiment_1/2create_model_session_1/2, updated all endpoints to /api/v1/model-session/, renamed all test functions (e.g., test_create_and_get_experimenttest_create_and_get_model_session), updated expected error messages
  • tests/back/dashai_dataset_types_test.py: Updated import prepare_for_experimentprepare_for_model_session, updated function calls

Testing

  1. Models Module: Verify that sessions can be created, viewed, and deleted correctly
  2. Results Page: Confirm that run results display correctly and filter by the correct model session
  3. Explainers: Test that the trained models table loads without errors
  4. Predictions: Verify predictions can be created for runs
  5. Legacy Experiments Module: Ensure backward compatibility is maintained
  6. Database migrations: Verify that existing data migrates correctly from experiment to model_session tables

Notes

  • This is a major refactoring that touches both backend and frontend
  • Database table renamed from experiment to model_session
  • All foreign key references updated from experiment_id to model_session_id
  • API endpoints changed from /experiments to /model-sessions
  • Frontend maintains backward compatibility where shared components are used across modules
  • The Experiments module UI still uses "Experiments" terminology for users, but internally uses ModelSession
  • Added validation in TrainedModelsTable.jsx to prevent errors when model sessions are not found

- Updated API routes to include 'model-sessions' instead of 'experiments'.
- Removed 'experiments.py' endpoint file and replaced it with 'model_sessions.py'.
- Adjusted database models to reflect the change from 'Experiment' to 'ModelSession'.
- Modified schemas to accommodate new model session parameters.
- Updated all relevant endpoints, jobs, and data loaders to utilize 'ModelSession' instead of 'Experiment'.
- Ensured that all references to experiments in validation, creation, and deletion processes are now aligned with model sessions.
…ionDialog, RunCard, and RunOperations components
@cristian-tamblay
cristian-tamblay merged commit bf6da43 into develop Jan 19, 2026
18 checks passed
@cristian-tamblay
cristian-tamblay deleted the refactor/experiments-to-models-clean branch January 19, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants