Bringing Generative AI to the way the Civil Service works
136
stars
3,131
commits
Jupyter Notebook
primary language
Jan 9, 2026
updated
[!IMPORTANT] This project is ending, we will stop running this as a service at the end of 2025 and this repo will be archived shortly after, please see 5-key-lessons to understand why.
Redbox is an app that uses GenAI to chat with and summarise civil service documents. It's designed to handle a variety of administrative sources, such as letters, briefings, minutes, and speech transcripts.
https://github.com/i-dot-ai/redbox-copilot/assets/8233643/e7984242-1403-4c93-9e68-03b3f065b38d
Please refer to the DEVELOPER_SETUP.md for detailed instructions on setting up the project.
For a quick start, you can use GitHub Codespaces to run the project in a cloud-based development environment. Click the button below to open the project in a new Codespace.
Download and install pre-commit to benefit from pre-commit hooks
pip install pre-commitpre-commit installmake help to see all the available build activities.This project is in two parts:
The project is structured approximately like this:
redbox/
├── django_app
│ ├── redbox_app/
│ ├── static/
│ ├── tests/
│ ├── manage.py
│ ├── pyproject.toml
│ └── Dockerfile
├── redbox-core/
│ ├── redbox
│ │ ├── chains/
│ │ ├── models/
│ │ └── app.py
│ ├── tests/
│ ├── pyproject.toml
│ └── Dockerfile
├── docker-compose.yaml
├── pyproject.toml
├── Makefile
└── README.md
System-wide, static, settings are defined Settings.py, these are set via environment file .env
Dynamic, per-request, settings are defined in AISettings.py, these are set within the django-app, and can be changed by an administrator. This includes the LLM to use which by default will be GPT-4o.
We welcome contributions to this project. Please see the CONTRIBUTING.md file for more information.
This project is licensed under the MIT License - see the LICENSE file for details.
If you discover a security vulnerability within this project, please follow our Security Policy.
colima down
colima start --memory 8
docker: /var/lib/... no space left on device
This is caused by your own laptop being too full to create a new image.
Clear out old docker artefacts:
docker system prune --all --force
To build the frontend assets, from the django_app/frontend/ folder run:
npm install
Then, for a one-off build run:
npx parcel build
Or, to watch for changes (e.g. if making CSS and JS changes):
npx parcel watch
On initial app setup you will need to run poetry run python manage.py collectstatic to copy them to the frontend folder from where runserver can serve them. Or you can run make build-django-static which combines the parcel build and collectstatic commands.
To run the web-component tests, first ensure you have a user set up in Django that is the same as the FROM_EMAIL env. Then from the frontend folder run:
npm run test
checkout the main branch of the following repos:
Replace var.image_tag in infrastructure/aws/ecs.tf with the hash of the build you want deployed. Make sure that the hash corresponds to an image that exists in ECR,
if in doubt build it via the build-action.
Login to aws via aws-vault exec admin-role and run the commands below from the redbox repo root
make tf_init env=<ENVIRONMENT>
make tf_apply env=<ENVIRONMENT>
where ENVIRONMENT is one of dev, preprod or prod
The django-app uses django-q to schedule task, this includes management tasks. Follow the instructions here https://django-q2.readthedocs.io/en/master/schedules.html#management-commands, i.e.
delete old filesdjango.core.management.call_command"delete_expired_data"Jupyter Notebook
81.6%
Python
10.2%
JavaScript
3.4%
HTML
2.7%
SCSS
1.1%
Bringing Generative AI to the way the Civil Service works
136
stars
3,131
commits
Jupyter Notebook
primary language
Jan 9, 2026
updated
[!IMPORTANT] This project is ending, we will stop running this as a service at the end of 2025 and this repo will be archived shortly after, please see 5-key-lessons to understand why.
Redbox is an app that uses GenAI to chat with and summarise civil service documents. It's designed to handle a variety of administrative sources, such as letters, briefings, minutes, and speech transcripts.
https://github.com/i-dot-ai/redbox-copilot/assets/8233643/e7984242-1403-4c93-9e68-03b3f065b38d
Please refer to the DEVELOPER_SETUP.md for detailed instructions on setting up the project.
For a quick start, you can use GitHub Codespaces to run the project in a cloud-based development environment. Click the button below to open the project in a new Codespace.
Download and install pre-commit to benefit from pre-commit hooks
pip install pre-commitpre-commit installmake help to see all the available build activities.This project is in two parts:
The project is structured approximately like this:
redbox/
├── django_app
│ ├── redbox_app/
│ ├── static/
│ ├── tests/
│ ├── manage.py
│ ├── pyproject.toml
│ └── Dockerfile
├── redbox-core/
│ ├── redbox
│ │ ├── chains/
│ │ ├── models/
│ │ └── app.py
│ ├── tests/
│ ├── pyproject.toml
│ └── Dockerfile
├── docker-compose.yaml
├── pyproject.toml
├── Makefile
└── README.md
System-wide, static, settings are defined Settings.py, these are set via environment file .env
Dynamic, per-request, settings are defined in AISettings.py, these are set within the django-app, and can be changed by an administrator. This includes the LLM to use which by default will be GPT-4o.
We welcome contributions to this project. Please see the CONTRIBUTING.md file for more information.
This project is licensed under the MIT License - see the LICENSE file for details.
If you discover a security vulnerability within this project, please follow our Security Policy.
colima down
colima start --memory 8
docker: /var/lib/... no space left on device
This is caused by your own laptop being too full to create a new image.
Clear out old docker artefacts:
docker system prune --all --force
To build the frontend assets, from the django_app/frontend/ folder run:
npm install
Then, for a one-off build run:
npx parcel build
Or, to watch for changes (e.g. if making CSS and JS changes):
npx parcel watch
On initial app setup you will need to run poetry run python manage.py collectstatic to copy them to the frontend folder from where runserver can serve them. Or you can run make build-django-static which combines the parcel build and collectstatic commands.
To run the web-component tests, first ensure you have a user set up in Django that is the same as the FROM_EMAIL env. Then from the frontend folder run:
npm run test
checkout the main branch of the following repos:
Replace var.image_tag in infrastructure/aws/ecs.tf with the hash of the build you want deployed. Make sure that the hash corresponds to an image that exists in ECR,
if in doubt build it via the build-action.
Login to aws via aws-vault exec admin-role and run the commands below from the redbox repo root
make tf_init env=<ENVIRONMENT>
make tf_apply env=<ENVIRONMENT>
where ENVIRONMENT is one of dev, preprod or prod
The django-app uses django-q to schedule task, this includes management tasks. Follow the instructions here https://django-q2.readthedocs.io/en/master/schedules.html#management-commands, i.e.
delete old filesdjango.core.management.call_command"delete_expired_data"Jupyter Notebook
81.6%
Python
10.2%
JavaScript
3.4%
HTML
2.7%
SCSS
1.1%