reflections-encoder / README.md
system's picture
system HF Staff
deploy: sync encoder from 26315a9
b79fb38 verified
|
Raw
History Blame Contribute Delete
1.89 kB
metadata
title: Reflections SigLIP Encoder
emoji: πŸ”Ž
colorFrom: indigo
colorTo: blue
sdk: docker
app_port: 7860
pinned: false

Reflections SigLIP text-query encoder

Embeds a natural-language search query into a 768-d L2-normalized vector using the SigLIP2 text tower (onnx-community/siglip2-base-patch16-256-ONNX) β€” the same checkpoint the photo image embeddings use, so query and image vectors share one cosine space. The model is baked into the Docker image at build time and stays resident in RAM, so requests never pay a download or load cost.

How it fits in

Browser ──/gallery?q=…──▢ Vercel web app
                             β”‚  POST /encode  (Bearer $SIGLIP_ENCODER_TOKEN)
                             β–Ό
                         this Space ──▢ {vector:[768]}   (model resident in RAM)
                             β”‚
   Vercel cosine-ranks that vector against image embeddings in Neon (pgvector)
                             β–Ό
                         ranked photos

Deploy:  push to main (encoder/**) ─▢ GitHub Actions ─(OIDC, no stored token)─▢ hf upload ─▢ Space rebuilds
Warm:    GitHub Actions cron ─every 6h─▢ GET /health   (keeps the Space under HF's 48h sleep)

API

  • POST /encode β€” { "query": "..." } β†’ { "vector": [768 floats] }. Requires Authorization: Bearer $SIGLIP_ENCODER_TOKEN.
  • GET /health β€” open liveness check for the keep-warm cron.

Operating

  • Secret: set SIGLIP_ENCODER_TOKEN on the Space; it must match the web app's value (the web app sends it as the bearer token).
  • Deploy: automatic on push to main touching encoder/**, via Trusted Publishing (OIDC) β€” no HF token is stored anywhere.
  • Model: downloaded once during the image build and baked in; container starts (including post-sleep wakes) load it from local disk, never the network.