from fastapi import APIRouter, HTTPException from schemas.schemas import LaptopCreate, LaptopResponse, PredictPriceResponse from services.service import LaptopService import os router = APIRouter() # Инициализация сервиса MODEL_PATH = os.getenv("MODEL_PATH", "services/laptop_price_model.pkl") FEATURE_COLUMNS_PATH = os.getenv("FEATURE_COLUMNS_PATH", "services/feature_columns.pkl") laptop_service = LaptopService(model_path=MODEL_PATH, feature_columns_path=FEATURE_COLUMNS_PATH) @router.post("/predict_price/", response_model=PredictPriceResponse, summary="Predict laptop price", description="Predict the price of a laptop based on its specifications.", response_description="The predicted price of the laptop.") def predict_price(data: LaptopCreate): """ Predict the price of a laptop given its specifications. - **processor**: Type of processor (e.g., i5, i7) - **ram**: Amount of RAM in GB - **os**: Operating system (e.g., Windows, MacOS) - **ssd**: Size of SSD in GB - **display**: Size of the display in inches """ try: return laptop_service.predict_price(data.dict()) except Exception as e: raise HTTPException(status_code=400, detail=str(e))