This repo contains community-driven practical examples of building AI applications and solving various tasks with AI using open-source tools and models.
Everyone is welcome to contribute, and we value everybody's contribution! There are several ways you can contribute to the Open-Source AI Cookbook:
- Submit an idea for a desired example/guide via GitHub Issues.
- Contribute a new notebook with a practical example.
- Improve existing examples by fixing issues/typos.
Before contributing, check currently open issues and pull requests to avoid working on something that someone else is already working on.
After you contribute, feel free to ask for a request to join to this organization to claim the badge. 🏅
We believe that the Cookbook will be the most beneficial for everyone in the community if the Jupyter notebooks have the following qualities:
- Practical: Your notebook should provide an illustration of an end-to-end project or a specific aspect of AI development. Aim for real-world applications, but try to avoid overcomplicating. Clearly explain the objectives, challenges and steps involved.
- Build with open-source tools and models: Utilize open source libraries, datasets, and pre-trained models available under permissive licenses. Include links to all resources used within the notebook.
- Clearly written: Ensure your writing is clear, concise, and free from grammatical errors. Maintain a friendly and approachable tone throughout the notebook. Explain the steps you take to solve a problem, challenges, alternative approaches.
- Executes without errors: Test your notebook to avoid runtime errors.
- Adds to existing "recipes": Before submitting, review existing notebooks to confirm that the subject hasn't been covered yet. We welcome diverse use cases, modalities, techniques, and approaches!
To contribute a new example/guide, open a pull request, and tag @merveenoyan and @stevhliu.
Here are some tips:
- Make sure that your notebook's file name is in lowercase.
- Don't forget to add your notebook to the
_toctree.ymland toindex.md. - Right after the notebook's first header, add yourself as an author like this:
_Authored by: [Aymeric Roucher](https://huggingface.co/m-ric)_. You can link to your Hugging Face profile, or to your GitHub profile. - Remove non-informative code cell outputs (e.g. from
pip install). Make sure the notebook doesn't contain any empty code cells. - If using any images in the markdown, upload them to the huggingface/cookbook-images dataset. Then use the link to the image in your markdown, e.g.:

Once your pull request is merged, the notebook will show up in the Open-Source AI Cookbook.
We'd love to have the Cookbook to be available in many more languages! Please follow the step 5BEE s below if you'd like to help translate the notebooks into your language 🙏.
If some of the notebooks have already been translated into your language, add new translated notebooks
under notebooks/your_language. Don't forget to add the new translated notebook to notebooks/your_language/_toctree.yml,
and to notebooks/your_language/index.md.
If the notebooks have not yet been translated to your language, create a directory under notebooks with your LANG-ID
(e.g. see en for English, zh-CN for Chinese). The LANG-ID should be ISO 639-1 (two lower case letters) language
code -- see here for reference. Alternatively,
{two lowercase letters}-{two uppercase letters} format is also supported, e.g. zh-CN.
Create the notebooks/LANG-ID/_toctree.yml, and notebooks/LANG-ID/index.md, and add the translated notebook.
Finally, add your language code (the exact same LANG-ID) to the build_documentation.yml and build_pr_documentation.yml
files in the .github/workflows folder.