This project is an end-to-end MLOps implementation for an anime recommendation system. Users can rate anime they have watched, and the system will generate new recommendations based on their ratings.
- Try the App: https://anime-recommendation-next-app.vercel.app/
- Model API Endpoint: https://fastapi-example-265p.onrender.com/docs
This project demonstrates a full machine learning lifecycle, from raw data to a live, user-facing application.
- Data Ingestion: The initial anime and user rating data is sourced and versioned using DVC (Data Version Control), allowing us to track large data files alongside our code.
- Experiment Tracking: MLflow is used to log and manage all training experiments. This includes saving model parameters, performance metrics, and the final model artifacts, ensuring reproducibility and easy comparison.
The best-performing model from our experiments is automatically deployed as a REST API.
- Backend: A FastAPI server wraps the trained model, exposing a simple
/recommendendpoint. - Deployment: This API is continuously deployed to Render. A push to the main branch automatically triggers a new build and deployment, ensuring the API is always up-to-date with the latest stable model.
A decoupled frontend application provides the user interface.
- Frontend: A Next.js application allows users to rate anime and view their personalized recommendations.
- Deployment: The Next.js app is deployed on Vercel. It communicates with the FastAPI backend on Render to fetch recommendations, completing the end-to-end user experience.
- Experimentation: Python, MLflow (Deployed on DagsHub for live, collaborative experiment tracking -> simulating a real-world team environment), DVC (Connected to Google Cloud Storage as DVC Remote), Jupyter Notebooks
- Backend API: FastAPI
- Frontend App: Next.js (React)
- Deployment & Hosting: Render (Backend API), Vercel (Frontend App)
- Automation: GitHub Actions (for CI/CD workflows)