Ce face hf sandbox (create, exec, cp, spawn, process, pool, kill)
hf sandbox pornește mașini izolate pe Hugging Face Jobs. Funcția este experimentală: API-ul și comportamentul se pot schimba fără anunț. Orice imagine Docker cu /bin/sh merge. create așteaptă până când sandbox-ul este gata și afișează ID-ul lui; --idle-timeout (implicit 10m) îl oprește după inactivitate.
exec rulează o comandă și transmite ieșirea live, cu codul de ieșire al comenzii. spawn pornește o comandă de durată în fundal și întoarce PID-ul; process ls și process kill gestionează aceste procese. cp copiază fișiere în stil Docker (SANDBOX_ID:/cale). kill oprește un sandbox, o gazdă partajată întreagă sau, cu --all, tot din namespace.
Pentru multe sandbox-uri CPU ieftine, pool create pornește o mașină gazdă (implicit 50 de sandbox-uri pe gazdă), iar create --pool ID creează sandbox-uri partajate în ea. Sandbox-urile din pool nu au canal de secrete criptate: --secrets este respins, folosești --env. Documentația recomandă sandbox-uri partajate doar pentru sarcini din aceeași zonă de încredere.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
create [IMAGE] |
Imaginea Docker (trebuie să aibă /bin/sh). |
create --flavor [...] |
Hardware-ul; implicit cpu-basic. Cu --pool vine din pool. |
create --pool TEXT |
Sandbox partajat în pool-ul dat. |
create --idle-timeout TEXT |
Oprire după inactivitate (de exemplu 10m). Implicit 10m. |
create -e / --env-file |
Variabile de mediu. |
create -s / --secrets-file |
Secrete criptate (nu în pool). |
create -l, --label / -v, --volume |
Etichete pe Job-ul de bază / volume montate. |
create --forward-hf-token |
Pune tokenul tău ca HF_TOKEN în sandbox. |
exec SANDBOX_ID COMMAND... [-w DIR] [-e] [--timeout SEC] |
Rulează și așteaptă; ieșire live. |
spawn SANDBOX_ID COMMAND... [-w DIR] [-e] |
Pornește în fundal și întoarce PID-ul. |
process ls SANDBOX_ID / process kill SANDBOX_ID PID |
Procesele din fundal. |
cp SRC DST |
Cale locală sau SANDBOX_ID:/cale. |
kill [SANDBOX_ID] [--all] [-y] |
Oprește un sandbox, o gazdă sau tot. |
pool create [IMAGE] --flavor / --per-host N / --max-hosts N / --idle-timeout |
Pool nou; --per-host implicit 50. |
pool ls / pool delete POOL_ID [-y] |
Listare / ștergerea tuturor gazdelor pool-ului. |
--namespace TEXT |
Contul sau organizația. |
--token TEXT |
Token de acces (User Access Token) creat în huggingface.co/settings/tokens. Implicit se folosește tokenul salvat de hf auth login. |
Exemple practice
Exemplul 1: Creare
hf sandbox create
Rezultat
✓ Sandbox ready id=687f911eaea852de79c4a50a image=python:3.12 elapsed=6.0s
Exemplul 2: Comandă în sandbox
hf sandbox exec 687f911eaea852de79c4a50a -- python -c "print('hi')"
Rezultat
hi
Exemplul 3: Copiere înăuntru și înapoi
hf sandbox cp data.csv 687f911eaea852de79c4a50a:/data/data.csv
hf sandbox cp 687f911eaea852de79c4a50a:/app/results.json results.json
Exemplul 4: Server pornit în fundal
hf sandbox spawn SANDBOX_ID -- python -m http.server 8000
Exemplul 5: Secrete citite din mediu (sandbox dedicat)
hf sandbox create -s OPENAI_API_KEY -s HF_TOKEN
Exemplul 6: Oprire
hf sandbox kill 687f911eaea852de79c4a50a
Greșeli frecvente și bune practici
- Dai
--secretsunui sandbox din pool. Este respins; pool-urile au doar--env. - Pui în același pool sarcini care nu au încredere una în alta. Pentru ele folosește sandbox-uri dedicate.
- Uiți de sandbox-urile pornite. Se opresc după
--idle-timeout, darhf sandbox killle oprește imediat.