This is an Machine Learning Application for win prediction on DotA 2 matches. The main idea is that we can predict who will win from start of the match:
- We know both teams and players
- We know the drafts
So we can try predict who will win, average score and ever duration.
The cernel of the app is FastAPI app on uvicorn ASGI that interact with other mircoservices like ETL-pipeline, Telegram Bot, PostgresSQL, etc.
The main interface is Telegram Bot, that connect Telegram and FastAPI. The TG Bot interface has several functions:
- heroes stats,
- players stats,
- teams stats,
- predict on drafts,
- help, status, other user's interaction
Non-automated model development happening in Jupyter Lab with MlFlow: setting hypoparameters and fine-tuning, model versioning and model staging.
There is also
- a MinIO S3 storage, that helps MlFlow save metadata,
- a Celery app for background and periodic tasks,
- a Streamlit app like a frontend element for easy interaction.