Spaces:
Sleeping
Sleeping
File size: 3,140 Bytes
c01955c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import fastapi
import logging
import sys
import os
from utils.main_utils import read_yaml_file_sync
router = fastapi.APIRouter()
@router.get("/get_available_attributes")
async def get_attributes():
"""Description is just for your understanding do not pass it to the api"""
try:
# Fixed path to match current structure
config_path = os.path.join("src", "CodeRunAndModelTrain", "config", "model_train.yaml")
config = read_yaml_file_sync(config_path)
res = {
"make_regression_params": {
"n_samples": {"type": "int", "default": 100, "description": "Number of samples"},
"n_features": {"type": "int", "default": 100, "description": "Number of total features"},
"n_informative": {"type": "int", "default": 10, "description": "Number of informative features"},
"n_targets": {"type": "int", "default": 1, "description": "Number of regression targets"},
"bias": {"type": "float", "default": 0.0, "description": "The bias term in the underlying linear model"},
"noise": {"type": "float", "default": 0.0, "description": "The standard deviation of the gaussian noise"},
"shuffle": {"type": "bool", "default": True, "description": "Shuffle the samples and the features"},
"random_state": {"type": "int", "default": None, "description": "Determines random number generation"}
},
"make_classification_params": {
"n_samples": {"type": "int", "default": 100, "description": "Number of samples"},
"n_features": {"type": "int", "default": 20, "description": "Number of total features"},
"n_informative": {"type": "int", "default": 2, "description": "Number of informative features"},
"n_redundant": {"type": "int", "default": 2, "description": "Number of redundant features"},
"n_repeated": {"type": "int", "default": 0, "description": "Number of repeated features"},
"n_classes": {"type": "int", "default": 2, "description": "Number of classes"},
"n_clusters_per_class": {"type": "int", "default": 2, "description": "Number of clusters per class"},
"flip_y": {"type": "float", "default": 0.01, "description": "Fraction of samples whose class is assigned randomly"},
"class_sep": {"type": "float", "default": 1.0, "description": "The factor multiplying the hypercube size"},
"shuffle": {"type": "bool", "default": True, "description": "Shuffle the samples and the features"},
"random_state": {"type": "int", "default": None, "description": "Determines random number generation"}
},
"regression_models": list(config.get("regression_models", {}).keys()),
"classification_models": list(config.get("classification_models", {}).keys()),
"model_train_config": config
}
return res
except Exception as e:
logging.error(f"Error in get_available_attributes: {str(e)}")
return {"error": str(e)}
|