import asyncio from fastapi import FastAPI, HTTPException from pydantic import BaseModel from new_experiment_planner import run_experiment # Импортируем функцию из твоего скрипта from db.csv_to_db import csv_to_db app = FastAPI() # Модель данных для передачи параметров class ExperimentParameters(BaseModel): outer_blades_count: str outer_blades_length: str outer_blades_angle: str middle_blades_count: str load: str recycling: str # Эндпоинт для запуска эксперимента @app.post("/run_experiment/") def run_experiment_api(params: ExperimentParameters): try: # Вызываем функцию run_experiment с параметрами run_experiment( params.outer_blades_count, params.outer_blades_length, params.outer_blades_angle, params.middle_blades_count, params.load, params.recycling ) return {"status": "success", "message": "Experiment started successfully."} except Exception as e: raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}") @app.get('/init_db_data') def init_db_data(): try: asyncio.run(csv_to_db()) return {"status": "success", "message": "Experiment started successfully."} except Exception as e: raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")