Hub documentation
Spaces Geliştirme Modu: Spaces'te kesintisiz geliştirme
Spaces Geliştirme Modu: Spaces'te kesintisiz geliştirme
Spaces Dev Mode, PRO veya Team & Enterprise planlarının bir parçasıdır.
Spaces Geliştirme Modu
Spaces Dev Mode, uygulamanızın hata ayıklamasını kolaylaştıran ve Spaces üzerinde iterasyon yapmayı hızlandıran bir özelliktir.
Space deposuna her değişiklik yaptığınızda, altta yatan Docker imajı yeniden oluşturulur ve ardından yeni konteyneri barındırmak için yeni bir sanal makine tahsis edilir.
Dev Mode, Docker görüntüsünü geçersiz kılma yoluyla Space'inizi çok daha hızlı güncellemenizi sağlar.
Dev Mode Docker görüntüsü, uygulamanızı bir alt süreç olarak başlatır; böylece Space konteynerinin kendisini durdurmadan uygulamayı yeniden başlatabilirsiniz. Ayrıca, Space'e bağlanabilmeniz için arka planda bir SSH sunucusunu (yerel editörler ve terminaller için) ve bir VS Code sunucusunu (ürün içi VS Code Web için) başlatır.
Çalışan Space'e bağlanabilme özelliği çeşitli kullanım senaryolarını mümkün kılar:
- Uygulama kodunda değişiklikler yapabilirsiniz; her seferinde Space'in yeniden derlenmesine gerek kalmaz
- Çalışan bir uygulamayı hata ayıklayabilir ve kaynakları canlı olarak izleyebilirsiniz
Genel olarak, Docker görüntüsü yeniden derleme aşamasını atlayarak Spaces üzerinde geliştirme ve deney yapma sürecini çok daha hızlı hale getirir.
Arayüz
Space'inizde Dev Mode etkinleştirildiğinde, aşağıdaki gibi bir modal görmelisiniz.

Uygulama, kodu değiştirdiğinizde otomatik olarak yeniden başlatılmaz. Değişikliklerinizin Space'te görünmesi için, uygulamayı yeniden başlatacak olan Refresh düğmesini kullanmanız gerekir.
Bağlanıyor
Dev Mode, çalışan Space'i standart bir SSH ana makinesi olarak sunar. VS Code ve diğer tüm editörler, aynı SSH uç noktası üzerinden bağlanır.
SSH
Dev Mode çalışmaya başladığında, şu komutla bağlanın:
ssh <space-subdomain>@ssh.hf.space
Alt alan adı, Dev Mode kontrolleri modalında gösterilir. Ayrıca programatik olarak da alabilirsiniz:
from huggingface_hub import HfApi
print(HfApi().space_info("namespace/repo").subdomain)Hugging Face CLI, alt alan adını çözebilir ve oturumu sizin için açabilir:
# SSH into the Space's Dev Mode container
hf spaces ssh username/my-space
# Print the SSH command instead of running it
hf spaces ssh username/my-space --dry-run
# Use a specific identity file
hf spaces ssh username/my-space -i ~/.ssh/id_ed25519Dev Mode zaten çalışmıyorsa, istek sormadan etkinleştirmek için --auto parametresini geçirin. Tüm seçenekler için hf spaces ssh CLI referansına bakın.
SSH ile Space'e bağlanabilmek için makinenizin SSH anahtarını kullanıcı hesabınıza eklemeniz gerekir. Daha ayrıntılı talimatlar için Git over SSH belgesine göz atın.
VS Code
VS Code'un yerel kurulumunu da Space konteynerine bağlanmak için kullanabilirsiniz. Bunu yapmak için Remote - SSH uzantısını yükleyin ve aynı <space-subdomain>@ssh.hf.space ana bilgisayarına bağlanın.
Değişiklikleri kalıcı hale getirme
# Add changes and commit them
git add .
git commit -m "Persist changes from Dev Mode"
# Push the commit to persist them in the repo
git pushSpace'te taahhüt edilmemiş veya itilmemiş değişiklikleriniz varsa modal bir uyarı gösterecektir:

Geliştirici Modunu Etkinleştirme
Dev Mode'ı web arayüzünden veya API üzerinden Space'inizde etkinleştirebilirsiniz.
API üzerinden
Dev Mode'u programatik olarak açabilirsiniz:
POST https://huggingface.co/api/spaces/{namespace}/{repo}/dev-mode
Content-Type: application/json
Authorization: Bearer {token}
{
"enabled": true
}Web arayüzü üzerinden



Ayrıca dev modu etkinleştirilmiş bir Space oluşturabilirsiniz:

Kısıtlamalar
Dev Mode şu anda statik Spaces için mevcut değildir. Docker Spaces'in de bazı ek gereksinimleri vardır.
Docker Spaces
Dev Mode, Docker Spaces için desteklenmektedir. Ancak Dev Mode'un düzgün çalışabilmesi için Space'inizin aşağıdaki kurallara uyması gerekir.
- Aşağıdaki paketler kurulmalıdır:
bash(SSH bağlantılarını kurmak için gereklidir)curl,wgetveprocps(VS Code sunucu süreci tarafından gereklidir)- Dev Mode ortamınızdan değişiklikleri commit ve push yapabilmek için
gitvegit-lfs
Dev Mode daemon'ının değişiklikleri algılayabilmesi için uygulama kodunuzun
/appklasöründe bulunması gerekir.Kodda değişiklik yapabilmek için
/appklasörünün uid'si1000olan kullanıcıya ait olmalıdır.Dockerfile, başlatma için bir
CMDtalimatı içermelidir.CMDtalimatı hakkında daha fazla ayrıntı için Docker'ın belgelerine göz atın.
Dev Mode, taban görüntüsü debian tabanlı olduğunda (ör. ubuntu) iyi çalışır.
Daha egzotik linux dağıtımları (ör. alpine) test edilmemiştir ve Dev Mode bunlarda çalışması garanti edilmemektedir.
Uyumlu Dockerfile örnekleri
Bu, Spaces Dev Mode ile uyumlu bir Dockerfile örneğidir.
Gerekli paketleri apt-get ile yükler, geliştirici kolaylığı için birkaç ek paket daha ekler (bunlar: top, vim ve nano).
Ardından /app konumundan bir NodeJS uygulaması başlatır.
FROM node:19-slim
RUN apt-get update && \
apt-get install -y \
bash \
git git-lfs \
wget curl procps \
htop vim nano && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --link ./ /app
RUN npm i
RUN chown 1000 /app
USER 1000
CMD ["node", "index.js"]Bu organizasyonda Dev Mode ile uyumlu Docker Spaces'in birkaç örneği bulunmaktadır. Onları kendi ad alanınızda çoğaltmaktan çekinmeyin!
Örnek Python uygulaması (FastAPI HTTP sunucusu): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-python
Örnek JavaScript uygulaması (Express.js HTTP sunucusu): https://huggingface.co/spaces/dev-mode-explorers/dev-mode-javascript
Geri bildirim
Spaces Dev Mode hakkındaki geri bildirimlerinizi doğrudan HF Hub üzerinden paylaşabilirsiniz: https://huggingface.co/spaces/dev-mode-explorers/README/discussions
Update on GitHub