ExoGen AI is a full-stack platform that combines physics-based validation with deep learning to analyze stellar light curves from NASA's Kepler mission and identify potential exoplanets.
The system integrates a FastAPI backend for model inference and training with a Next.js frontend for data upload, visualization, and result interaction.
-
Clone the repository
git clone https://github.com/alexanderabesteh/ExoGenAI.git cd ExoGenAI/backend -
Install dependencies
pip install -r requirements.txt
-
Download required files
- Trained model:
Downloadbest_model.ptfrom https://drive.google.com/drive/folders/1O8w9Ls2u_D0gkZ8Trnpj9tayAbRcH3Gc?usp=sharing and place it in:backend/checkpoints/best_model.pt - Dataset:
Download from https://drive.google.com/drive/folders/1O8w9Ls2u_D0gkZ8Trnpj9tayAbRcH3Gc?usp=sharing.(labelled time-series data) Place these files:backend/data/exoTrain.csv backend/data/exoTest.csv
- Trained model:
-
Start API server
uvicorn api:app --host 0.0.0.0 --port 8000
-
Test the API
- Health check:
http://localhost:8000/health - Documentation (Swagger):
http://localhost:8000/docs
- Health check:
- Upload: CSV file with
timeandfluxcolumns. - Returns:
- Prediction
- Probabilities
- plot_data
-
No GPU detected?
Editapi.pyline 38:
Changedevice='cuda'todevice='cpu'. -
Port conflict?
Start the server with a different port:uvicorn api:app --host 0.0.0.0 --port 8001
-
Navigate to the frontend directory
cd ../frontend -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser and navigate to http://localhost:3000
-
Upload a CSV file and view results
Ensure both backend and frontend are set up as per the instructions above.
- Start the backend server
cd ../backend uvicorn api:app --host 0.0.0.0 --port 8000 - In a new terminal, start the frontend server
cd ../frontend npm run dev - Open your browser and navigate to http://localhost:3000
- Upload a CSV file and view results