FastAPI Application

The main module contains the FastAPI application with REST API endpoints.

Endpoints

Module Reference

FastAPI backend for 5D neural network interpolation system.

class main.FeatureStats(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

min_avg: float
max_avg: float
target_mean: float
target_std: float
target_min: float
target_max: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.FeatureRange(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

min: float
max: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.UploadResponse(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

status: str
message: str
n_samples: Optional[int]
n_features: Optional[int]
missing_values: Optional[int]
duplicate_rows: Optional[int]
memory_usage_mb: Optional[float]
feature_stats: Optional[FeatureStats]
feature_ranges: Optional[List[FeatureRange]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.TrainRequest(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

hidden_sizes: List[int]
learning_rate: float
max_iter: int
random_state: int
train_size: float
val_size: float
test_size: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.LossHistoryItem(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

epoch: int
loss: float
val_loss: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.PredictionSample(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

true: float
pred: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.TrainResponse(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

status: str
message: str
train_r2: Optional[float]
val_r2: Optional[float]
test_r2: Optional[float]
train_mse: Optional[float]
val_mse: Optional[float]
test_mse: Optional[float]
epochs_used: Optional[int]
training_time_seconds: Optional[float]
loss_history: Optional[List[LossHistoryItem]]
predictions_sample: Optional[List[PredictionSample]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.PredictRequest(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

features: List[float]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class main.PredictResponse(**data)[source]

Bases: BaseModel

Parameters:

data (Any)

status: str
prediction: float
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

async main.root()[source]
async main.health_check()[source]
async main.upload_dataset(file=File(PydanticUndefined))[source]

Upload a .pkl dataset file with ‘X’ and ‘y’ keys. X must have 5 features.

Parameters:

file (UploadFile)

async main.train_model(request)[source]

Train a neural network model on the uploaded dataset.

Requires a dataset to be uploaded first via /upload endpoint.

Parameters:

request (TrainRequest)

async main.predict(request)[source]

Make a prediction using the trained model.

Requires a model to be trained first via /train endpoint.

Parameters:

request (PredictRequest)