Service¶
The FastAPI service exposes the preprocessing, generation, training, evaluation, and virtualisation workflows as HTTP endpoints.
Long-running operations run as background jobs. Clients submit a request and poll the job endpoints for its status and result.
The running service provides complete request and response documentation at /docs. Request models that add semantics beyond their corresponding CLI are documented here. Request bodies that mirror CLI arguments are documented by the CLI entry points.
_api
¶
Endpoints¶
root
async
¶
Return the API root response.
Source code in _api.py
healthz
async
¶
Job status¶
JobStatus
¶
Bases: BaseModel
Status of a background job.
Generation and training endpoints return a job status while the work runs in the background. Callers poll the jobs endpoints for completion.
Source code in _api.py
Generation requests¶
DirectGenerationRequest
¶
Bases: BaseModel
Request model for direct Hugging Face model generation.
Source code in _utils/_api/generation.py
MakePromptsRequest
¶
Bases: BaseModel
Request body for POST /generate/make-prompts.
Manual mode constructs prompts from compositions and condition_lists according to mode.
Automatic mode extracts prompts from a dataset. Exactly one mode is used per request.
Source code in _utils/_api/generation.py
GenerateCIFsRequest
¶
Bases: BaseModel
Request body for POST /generate/cifs.
The endpoint uses the supplied configuration to run a CIF generation job.
Source code in _utils/_api/generation.py
Training requests¶
TrainRequest
¶
Bases: BaseModel
Request body for POST /train.
When multi_gpu is unset, the API uses torchrun automatically when at least two GPUs are
visible. nproc_per_node defaults to the number of visible GPUs.
Source code in _utils/_api/training.py
Metrics requests¶
VUNMetricsRequest
¶
Bases: BaseModel
Request body for POST /metrics/vun.
Source code in _utils/_api/metrics.py
EHullMetricsRequest
¶
Bases: BaseModel
Request body for POST /metrics/ehull.
The endpoint computes the hull metrics using MACE-based structure relaxation rather than DFT.
Source code in _utils/_api/metrics.py
XRDMetricsRequest
¶
Bases: BaseModel
Request body for POST /metrics/xrd.
Source code in _utils/_api/metrics.py
PropertyMetricsRequest
¶
Bases: BaseModel
Request body for POST /metrics/property.
Source code in _utils/_api/metrics.py
Virtualiser requests¶
VirtualiseRequest
¶
Bases: BaseModel
Request body for POST /virtualise.