Cookiecutter General AI RAG Application Development Template¶
This is a modern Cookiecutter template for initializing Python projects, particularly for General AI RAG Application Development. It provides a comprehensive setup for development, testing, and deployment, incorporating essential tools for effective project management.
Features¶
This template includes the following features:
- Poetry for dependency management
- CI/CD with GitHub Actions
- Pre-commit hooks using pre-commit
- Code quality checks with ruff, mypy, deptry, and prettier
- Publishing to PyPI via GitHub releases
- Testing and coverage with pytest and codecov
- Documentation generation with MkDocs
- Python compatibility testing with Tox
- Containerization using Docker
- Development environment with VSCode devcontainers
- Deployment with Azure Container Apps
You can find an example repository created using this template here.
Quickstart¶
To get started, follow these steps:
Step 1: Install cookiecutter-rag
¶
First, navigate to the directory where you want to create the project and run:
pip install cookiecutter-rag
cc_rag
Alternatively, you can install cookiecutter and use the GitHub repository URL directly:
pip install cookiecutter
cookiecutter git@github.com:DeepakPant93/cookiecutter-rag.git
Step 2: Create a GitHub Repository¶
Create a new repository on GitHub, then run the following commands in your terminal, replacing <project-name>
with your GitHub repository name and <github_author_handle>
with your GitHub username:
cd <project_name>
make init-repo
Step 3: Install the Environment and Pre-commit Hooks¶
Run the following command to install the environment and pre-commit hooks:
make bake-env
Now you're all set to start development! The CI/CD pipeline will automatically trigger on pull requests, merges to the main branch, and new releases.
For instructions on publishing to PyPI, refer to this guide. To enable automatic documentation with MkDocs, follow the steps in this guide. For code coverage setup, refer to this guide.
Acknowledgements¶
This project is inspired by Audrey Feldroy's excellent work on the cookiecutter-pypackage template.