Spaces:
Running
Running
| title: CLIP Embed | |
| emoji: 🖼️ | |
| colorFrom: yellow | |
| colorTo: gray | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # CLIP Embed — Space d'embedding visuel | |
| Remplace l'ancien `api-inference.huggingface.co` (déprécié par HF). Expose un endpoint | |
| JSON simple qui transforme une image en **vecteur CLIP 512-dim** (`sentence-transformers/clip-ViT-B-32`), | |
| vecteurs **normalisés** (cosinus). Aucun LLM ne lit l'image → pas de surface de prompt-injection. | |
| ## Contrat API | |
| `POST /embed` | |
| ```json | |
| { "image_base64": "<base64 sans préfixe data:>" } | |
| ``` | |
| Réponse : | |
| ```json | |
| { "embedding": [ ...512 floats... ], "dim": 512, "model": "sentence-transformers/clip-ViT-B-32" } | |
| ``` | |
| `GET /` → `{ "ok": true, "model": "..." }` (health). | |
| `GET /embed` → `{ "ok": true, "hint": "..." }` (health, pour monitors pointés sur /embed). | |
| ## Déploiement (HF) | |
| 1. Créer un Space → SDK **Docker**. | |
| 2. Uploader `Dockerfile`, `app.py`, `requirements.txt`, ce `README.md`. | |
| 3. (Optionnel) Mettre le Space en **privé** → l'appelant doit envoyer `Authorization: Bearer <HF token>`. | |
| 4. Une fois « Running », récupérer l'URL : `https://<user>-<space>.hf.space`. | |
| ⚠️ Le modèle par défaut produit du 512-dim. Pour changer de modèle, garder la dimension | |
| alignée avec ce qu'attend le consommateur en aval (base vectorielle, index, etc.). | |