Octopi ML API is a machine learning-powered backend designed to predict software development effort. The model estimates the effort required (in person-hours) based on various project metrics such as Adjusted Function Points (AFP), transaction counts, and code churn.
This AI model was trained on a comprehensive China dataset containing over 500 rows of software projects, ensuring robust and data-driven predictions.
The API exposes endpoints to interact with the trained model and retrieve feature information.
🔗 Frontend Repository: Octopi Frontend
This project leverages the following technologies and libraries:
- Flask: A lightweight WSGI web application framework.
- Flask-RESTx: An extension for Flask for fast building of REST APIs with Swagger documentation.
- Scikit-learn: The machine learning library used for training the prediction model.
- Pandas: For data manipulation and analysis.
- NumPy: For numerical computing.
- SciPy: For scientific computing and technical computing.
- Joblib: For efficient saving and loading of the trained model.
The API provides the following endpoints. You can also explore the interactive Swagger documentation at /docs when running the app.
| Method | Endpoint | Description |
|---|---|---|
POST |
/predict/ |
Predicts effort based on project metrics. |
GET |
/predict/health |
Checks the API health status. |
GET |
/predict/features |
Returns a list of required input features. |
{
"AFP": 1587,
"Input": 774,
"Output": 260,
"Enquiry": 340,
"File": 128,
"Interface": 0,
"Duration": 4,
"Resource": 4,
"Added": 1502,
"Changed": 0,
"Deleted": 0,
"PDR_AFP": 4.7
}-
Clone the repository:
git clone https://github.com/seif-a096/Octopi_model_api.git cd Octopi_model_api -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
This project is licensed under the MIT License - see the LICENSE file for details.