- Goal: Learn about FastAPI to create an API that serves a Machine Learning model.
- Dates: from 7th to 13th December.
- Where:
#project-of-the-week
in DataTalks.Club (get in slack here: https://datatalks.club/slack.html)
For more information about the "Project of the Week" initiative at DataTalks.Club, see README.md.
If you want to receive reminders about this event, sign up here
- FastAPI
- Scikit-Learn
- Tensorflow
- Pytorch
Note: this is a suggested list of technologies, you can chose alternatives instead
This is a proposed plan only, you don’t have to follow it day-by-day.
- Come up with a project idea
- Select the dataset for your project. You can select a dataset from the suggested material below.
- Create a GitHub repository.
- Share your progress in Slack and on social media.
Suggestions: You can use a Machine Learning model that you might have created before or another project that you like:
- During a previous project-of-the-week:
- An example of a Churn model.
- A list of some datasets that you can use for the project.
- Have a look at this sample project.
- Perform exploratory data analysis of your data in a Jupyter notebook.
- If you are using a previous project, then try to improve the model (or move on to Day 4).
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
- Create a baseline model and save it as a
.pkl
file. - Start studying some introductory material about FastAPI.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested materials
- 📺 FastAPI Introduction - Build Your First Web App - Python Tutorial
- 🗒️ FastAPI First steps
- 🗒️ DataCamp Introduction to Fastapi
Found good materials? Create a PR with links!
- Continue learning about FastAPI
- Create a simple working example of an API:
- Code along with this tutorial.
- Test your API using the interactive API documentation that FastAPI creates automatically with Swagger.
- (Optional) Write a Python script to test your API.
- (Optional) Test your API using curl or Postman.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested materials
- 📺 FastAPI Introduction - Build Your First Web App - Python Tutorial
- 🗒️ FastAPI First steps
- 📺 FastAPI Course for Beginners
- 🗒️ DataCamp Introduction to Fastapi
Found good materials? Create a PR with links!
- Create a new endpoint to serve the model you created (use the
.pkl
file you created on Day 3). - Test your API using the interactive API documentation that FastAPI creates automatically with Swagger.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested materials
- 📺 Machine Learning Model Deployment Using FastAPI
- 🗒️ Introduction to Pydantic for FastAPI
- 🗒️ Fast API Features
Found good materials? Create a PR with links!
- Add schemas in your API using the pydantic library (Base Model and Response Model).
- Add error handling to your API.
- (Optional) Create a Docker container for your project.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested materials
- 📺 Pydantic BaseModel and FAST API (code along)
- 🗒️ The Ultimate FastAPI Tutorial Part 5 - Basic Error Handling
- 🗒️ GET and POST requests using Python
Found good materials? Create a PR with links!
- Continue exploring more about this topic.
- Write documentation for your project.
- (Optional) Deploy your API using Docker.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
- Give us feedback.
- Add the link to your project to this project of the week GitHub page.
Suggested materials
- 📺 Docker Tutorial For Beginners - How To Containerize Python Applications
- 💻 Serving Machine Learning Models GitHub repository
- 🗒️ How to Deploy a Machine Learning Model with FastAPI, Docker and Github Actions
Found good materials? Create a PR with links!
List of projects from our participants:
- https://github.com/lilianabs/fastapi-car-price-pred
- Churn-Prediction-Project
- https://github.com/MarcosMJD/ml-mango-classification
- Energy Efficiency Buildings
- ...
- (Create a PR)
(We will put the projects here after the event finishes)