check / check (push) Waiting to run
quak backup and quak backup-metadata write each file's ML data without its CLIP embedding, and keywords in its place: the titles of the Discover categories of Ente's photos app that the file falls in, by the app's rule. src/clip-keywords.ts applies the rule. src/clip-keyword-vectors.ts holds the 16 categories from Ente's discover.json with the text embedding Ente's CLIP text model gives each query. bin/clip-keyword-vectors writes that file and the test fixture in a digest-pinned Python image, with every download pinned by sha256; it runs by hand only. quak gains no dependency. Model: opus-5-5
26 lines
1.3 KiB
Bash
Executable File
26 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Writes src/clip-keyword-vectors.ts and test/clip-keywords-sunset.json by
|
|
# running bin/clip-keyword-vectors.py in a Python image pinned by digest, with
|
|
# its packages pinned by hash. Run it by hand from a checkout, then `make fmt`;
|
|
# no gate runs it. It downloads about 215 MB, most of it Ente's two CLIP models.
|
|
set -eu
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# python:3.13-slim (Python 3.13.17 on Debian 13.7), 2026-10-21. The wheels
|
|
# below are the ones for this image on linux/amd64.
|
|
image=python@sha256:57b29a7c050c4e679e4bea572e14b3965cf4b5839de2da49d55e49ffc4024f39
|
|
|
|
docker run --rm -i --platform linux/amd64 \
|
|
--user "$(id -u):$(id -g)" -e HOME=/tmp \
|
|
-v "$PWD:/repo" -w /repo "$image" sh -c '
|
|
python -m venv /tmp/venv &&
|
|
/tmp/venv/bin/pip install --quiet --disable-pip-version-check \
|
|
--no-cache-dir --no-deps --require-hashes -r /dev/stdin &&
|
|
/tmp/venv/bin/python bin/clip-keyword-vectors.py' <<'EOF'
|
|
numpy==2.5.3 --hash=sha256:a5fa86b80fd24bcd1aff83ad23be44ea323de3f787be8f8b15d4a65621e25321
|
|
onnxruntime==1.30.0 --hash=sha256:86f940afc801ea9681a4da8af84fbe95e1d9ea7d80903952cc1bfad54faad38f
|
|
pillow==12.3.0 --hash=sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3
|
|
tokenizers==0.23.2 --hash=sha256:41c2f84d172449b4dadb9cdc508e3e364076613c35b16e76ecfe47a60d1e3305
|
|
EOF
|