Hub Python Library documentation
Yardımcılar
Yardımcılar
Günlükleme yapılandırması
huggingface_hub paketi, paketin kendi loglama seviyesini kontrol etmek için bir logging aracı sunar.
Bunu şu şekilde içe aktarabilirsiniz:
from huggingface_hub import loggingArdından, göreceğiniz günlük miktarını güncellemek için ayrıntı düzeyini tanımlayabilirsiniz:
from huggingface_hub import logging
logging.set_verbosity_error()
logging.set_verbosity_warning()
logging.set_verbosity_info()
logging.set_verbosity_debug()
logging.set_verbosity(...)Seviyeler şu şekilde anlaşılmalıdır:
error: yalnızca bir hataya veya beklenmeyen davranışa yol açabilecek kullanım hakkında kritik günlükleri gösterir.warning: kritik olmayan ancak kullanımı beklenmedik davranışlara yol açabilecek günlükleri gösterir. Ayrıca, önemli bilgilendirici günlükler de gösterilebilir.info: neyin nasıl işlendiğine dair bazı ayrıntılı günlük kayıtları da dahil olmak üzere en fazla günlük kaydını gösterir. Bir şey beklenmedik bir şekilde davranıyorsa, daha fazla bilgi almak için ayrıntı düzeyini buna geçirmenizi öneririz.debug: tüm günlükleri, arka planda tam olarak ne olduğunu izlemek için kullanılabilecek bazı iç günlükler dahil olmak üzere gösterir
HuggingFace Hub kök kaydedicisi için geçerli seviyeyi döndürür.
HuggingFace Hub aşağıdaki kayıt seviyelerine sahiptir:
huggingface_hub.logging.CRITICAL,huggingface_hub.logging.FATALhuggingface_hub.logging.ERRORhuggingface_hub.logging.WARNING,huggingface_hub.logging.WARNhuggingface_hub.logging.INFOhuggingface_hub.logging.DEBUG
huggingface_hub.utils.logging.set_verbosity
< source >( verbosity: int )
HuggingFace Hub'un kök kayıtçısının seviyesini ayarlar.
Ayrıntı düzeyini logging.INFO olarak ayarlar.
Ayrıntı düzeyini logging.DEBUG olarak ayarlar.
Ayrıntı düzeyini logging.WARNING olarak ayarlar.
Ayrıntı düzeyini logging.ERROR olarak ayarlar.
Kütüphane günlük çıktıları için yayılımı devre dışı bırakır. Not: Günlük yayılımı varsayılan olarak devre dışıdır.
Kütüphane günlük çıktıları için yayılımı etkinleştirin. Kök kayıtçı yapılandırıldıysa, çift günlükleme önlemek için HuggingFace Hub varsayılan işleyicisini devre dışı bırakın.
Depoya özgü yardımcı yöntemler
Aşağıda açıklanan yöntemler, huggingface_hub kütüphanesinin kendisindeki modülleri değiştirirken geçerlidir.
huggingface_hub kullanıyor ve onları değiştirmediğinizde bunları kullanmanıza gerek olmamalıdır.
huggingface_hub.utils.logging.get_logger
< source >( name: str | None = None )
Belirtilen adla bir kayıtçı döndürür. Bu fonksiyonun kütüphane kullanıcıları tarafından doğrudan erişilmesi beklenmez.
İlerleme çubuklarını yapılandır
İlerleme çubukları, uzun süren bir görevin (ör. dosya indirme veya yükleme) çalıştırılması sırasında kullanıcıya bilgi göstermek için faydalı bir araçtır. huggingface_hub, ilerleme çubuklarını kütüphane genelinde tutarlı bir şekilde görüntülemek için bir tqdm sarmalayıcısı sunar.
Varsayılan olarak ilerleme çubukları etkinleştirilidir. HF_HUB_DISABLE_PROGRESS_BARS ortam değişkenini ayarlayarak bunları küresel olarak devre dışı bırakabilirsiniz. Ayrıca enable_progress_bars() ve disable_progress_bars ile bunları etkinleştirebilir/devre dışı bırakabilirsiniz. Ortam değişkeni ayarlanmışsa, yardımcı işlevlere göre önceliği vardır.
>>> from huggingface_hub import snapshot_download
>>> from huggingface_hub.utils import are_progress_bars_disabled, disable_progress_bars, enable_progress_bars
>>> # Disable progress bars globally
>>> disable_progress_bars()
>>> # Progress bar will not be shown !
>>> snapshot_download("gpt2")
>>> are_progress_bars_disabled()
True
>>> # Re-enable progress bars globally
>>> enable_progress_bars()İlerleme çubuklarının grup bazlı kontrolü
Belirli gruplar için ilerleme çubuklarını etkinleştirebilir veya devre dışı bırakabilirsiniz. Bu, uygulamanızın veya kütüphanenizin farklı bölümlerinde ilerleme çubuğu görünürlüğünü daha ayrıntılı bir şekilde yönetmenizi sağlar. Bir grup için ilerleme çubuğu devre dışı bırakıldığında, açıkça geçersiz kılınmadıkça altındaki tüm alt gruplar da etkilenir.
# Disable progress bars for a specific group
>>> disable_progress_bars("peft.foo")
>>> assert not are_progress_bars_disabled("peft")
>>> assert not are_progress_bars_disabled("peft.something")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert are_progress_bars_disabled("peft.foo.bar")
# Re-enable progress bars for a subgroup
>>> enable_progress_bars("peft.foo.bar")
>>> assert are_progress_bars_disabled("peft.foo")
>>> assert not are_progress_bars_disabled("peft.foo.bar")
# Use groups with tqdm
# No progress bar for `name="peft.foo"`
>>> for _ in tqdm(range(5), name="peft.foo"):
... pass
# Progress bar will be shown for `name="peft.foo.bar"`
>>> for _ in tqdm(range(5), name="peft.foo.bar"):
... pass
100%|███████████████████████████████████████| 5/5 [00:00<00:00, 117817.53it/s]are_progress_bars_disabled
huggingface_hub.utils.are_progress_bars_disabled
< source >( name: str | None = None ) → bool
İlerleme çubuklarının küresel olarak veya belirli bir grup için devre dışı bırakılıp bırakılmadığını kontrol edin.
Bu fonksiyon, belirli bir grup için veya genel olarak ilerleme çubuklarının devre dışı bırakılıp bırakılmadığını döndürür.
Önce HF_HUB_DISABLE_PROGRESS_BARS ortam değişkenini, ardından programatik ayarları kontrol eder.
disable_progress_bars
sınıf huggingface_hub.utils.disable_progress_bars
< source >( name: str | None = None )
İlerleme çubuklarını küresel olarak veya belirli bir grup için devre dışı bırakın.
Bu fonksiyon, bir grup adına göre ilerleme çubuklarının durumunu günceller.
Grup adı sağlanmazsa, tüm ilerleme çubukları devre dışı bırakılır. İşlem,
HF_HUB_DISABLE_PROGRESS_BARS ortam değişkeninin ayarına uyar.
Hem normal bir çağrı hem de bir bağlam yöneticisi olarak çalışır: disable_progress_bars() # enable_progress_bars() çağrılana kadar devre dışı bırakır with disable_progress_bars(): # blok boyunca devre dışı bırakır, çıkışta yeniden etkinleştirir …
enable_progress_bars
huggingface_hub.utils.enable_progress_bars
< source >( name: str | None = None )
İlerleme çubuklarını küresel olarak veya belirli bir grup için etkinleştirin.
Bu fonksiyon, belirtilen grup için veya grup belirtilmemişse küresel olarak ilerleme çubuklarını etkinleştirir. İşlem, HF_HUB_DISABLE_PROGRESS_BARS ortam ayarına tabidir.
HTTP Arka Uzunun Yapılandırılması
huggingface_hubv0.x sürümünde HTTP isteklerirequestsile işleniyor ve yapılandırmaconfigure_http_backendüzerinden yapılıyordu. Artıkhttpx2kullandığımız için yapılandırma farklı çalışıyor: argüman almayan vehttpx2.Clientdöndüren bir fabrika fonksiyonu sağlamanız gerekiyor. Varsayılan olarak hangi parametrelerin kullanıldığını görmek için varsayılan uygulamanın buradan inceleyebilirsiniz.
Bazı kurulumlarda, örneğin bir vekil sunucu (proxy) arkasında çalışırken, HTTP isteklerinin nasıl yapılacağını kontrol etmeniz gerekebilir. huggingface_hub kütüphanesi, bunu set_client_factory() ile küresel olarak yapılandırmanıza olanak tanır. Yapılandırma sonrasında Hub'a yapılan tüm istekler özel ayarlarınızı kullanır. huggingface_hub altyapıda httpx2.Client'e dayandığından, kullanılabilir parametrelerle ilgili ayrıntılar için httpx2 belgelerine göz atabilirsiniz.
Üçüncü taraf bir kütüphane geliştiriyorsanız ve Hub'a doğrudan istekler göndermeniz gerekiyorsa, doğru yapılandırılmış bir httpx2 istemcisi almak için get_session() kullanın. Doğru davranışı sağlamak için doğrudan httpx2.get(...) çağrılarını get_session().get(...) ile değiştirin.
huggingface_hub tarafından kullanılacak HTTP istemci fabrikasını ayarlayın.
İstemci fabrikası, httpx2.Client nesnesi döndüren bir yöntemdir. get_session() çağrısının ilk gerçekleşmesinde, istemci fabrikası, huggingface_hub tarafından yapılan tüm çağrılar arasında paylaşılacak yeni bir httpx2.Client nesnesi oluşturmak için kullanılacaktır.
Betiklerinizi özel yapılandırma gerektiren belirli bir ortamda (ör. özel vekil sunucu veya sertifikalar) çalıştırıyorsanız bu işe yarayabilir.
Doğru yapılandırılmış bir httpx2.Client almak için get_session() kullanın.
Kullanıcıdan gelen taşıma fabrikasını kullanarak bir httpx2.Client nesnesi alın.
Bu istemci, huggingface_hub tarafından yapılan tüm çağrılar arasında paylaşılmaktadır. Bu nedenle manuel olarak kapatılmamalıdır.
httpx2.Client'i özelleştirmek için set_client_factory() kullanın.
Nadir durumlarda, mevcut oturumu manuel olarak kapatmak isteyebilirsiniz (örneğin, geçici bir SSLError sonrasında). Bunu close_session() ile yapabilirsiniz. Yeni bir oturum, get_session() fonksiyonuna yapılan sonraki çağrıda otomatik olarak oluşturulacaktır.
Oturumlar, süreç sonlandığında her zaman otomatik olarak kapatılır.
huggingface_hub tarafından kullanılan küresel httpx2.Client'i kapatın.
Bir Client kapatılırsa, get_session() çağrısının bir sonraki kullanımında yeniden oluşturulur.
Örneğin bir SSL sertifikası güncellendiyse faydalı olabilir.
Asenkron kod için httpx2.AsyncClient yapılandırmak üzere set_async_client_factory() ve bir tane almak için get_async_session() kullanın.
huggingface_hub tarafından kullanılacak HTTP asenkron istemci fabrikasını ayarlayın.
Asenkron istemci fabrikası, httpx2.AsyncClient nesnesi döndüren bir yöntemdir.
Özel yapılandırma gerektiren belirli bir ortamda (ör. özel vekil sunucu veya sertifikalar) betiklerinizi çalıştırıyorsanız bu işe yarayabilir.
Doğru yapılandırılmış bir httpx2.AsyncClient almak için get_async_session() kullanın.
huggingface_hubtarafından yapılan tüm çağrılar arasında paylaşılanhttpx2.Client'ın aksine,httpx2.AsyncClientpaylaşılmaz. Bağlamdan çıkıldığında istemcinin düzgün şekilde kapatılmasını sağlamak için asenkron bir bağlam yöneticisi kullanılması önerilir.
Kullanıcının taşıma fabrikasını kullanarak bir httpx2.AsyncClient nesnesi döndürür.
httpx2.AsyncClient'i özelleştirmek için set_async_client_factory() kullanın.
huggingface_hubtarafından yapılan tüm çağrılar arasında paylaşılanhttpx2.Client'ın aksine,httpx2.AsyncClientpaylaşılmaz. Bağlamdan çıkıldığında istemcinin düzgün şekilde kapatılmasını sağlamak için asenkron bir bağlam yöneticisi kullanılması önerilir.
Eşzamanlı istemcinin aksine, eşzamansız istemcinin yaşam döngüsü otomatik olarak yönetilmez. Bunu doğru bir şekilde yönetmek için eşzamansız bir bağlam yöneticisi kullanın.
httpx modülü
huggingface_hub, alt katmanda kullandığı HTTP kütüphanesini huggingface_hub.utils.httpx olarak yeniden dışa aktarır:
from huggingface_hub.utils import httpx
try:
...
except httpx.HTTPError:
...Bu, büyük ölçüde huggingface_hub üzerine inşa edilen üçüncü taraf kütüphaneler için faydalıdır. huggingface_hub v1.x, httpx üzerine inşa edilmiştir; v2.x ise httpx2 (ayrı bir paket olarak dağıtılan halefi) üzerine inşa edilmiştir. httpx kütüphanesini doğrudan içe aktarmak yerine modülü huggingface_hub.utils içinden içe aktarmak, her zaman huggingface_hub'in fiilen kullandığı sürümü almanızı sağlar ve kütüphanenizin her iki ana sürümle de uyumlu kalmasını sağlar. Göç planıyla ilgili daha fazla ayrıntı için bu sorunu inceleyin.
Bunu yalnızca
httpxtürlerine veya istisnalarına (ör. hataları yakalamak için) ihtiyacınız varsa kullanın. Hub'a istekler göndermek için yukarıda açıklandığı gibi get_session() kullanın.
HTTP hatalarını yönetme
huggingface_hub, sunucunun geri gönderdiği ek bilgilerle httpx2 tarafından oluşturulan HTTPError hatasını incelemek için kendi HTTP hatalarını tanımlar.
Durum için yükselt
hf_raise_for_status(), Hub'a yapılan herhangi bir istekten “durum için hata fırlatma” işleminin merkezi yöntemi olarak tasarlanmıştır. Ek bilgi sağlamak için temel httpx2.Response.raise_for_status yöntemini sarmalar. Fırlatılan herhangi bir HTTPError, HfHubHTTPError olarak dönüştürülür.
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError
response = get_session().post(...)
try:
hf_raise_for_status(response)
except HfHubHTTPError as e:
print(str(e)) # formatted message
e.request_id, e.server_message # details returned by server
# Complete the error message with additional information once it's raised
e.append_to_message("\n`create_commit` expects the repository to exist.")
raisehuggingface_hub.hf_raise_for_status
< source >( response: Responseendpoint_name: str | None = None )
response.raise_for_status() işlevinin dahili sürümü; olası bir HTTPError'yi inceler.
Atılan istisna, HfHubHTTPError sınıfının bir örneği olacaktır.
Bu yardımcı, Hugging Face Hub'a bir çağrı yapılırken raise_for_status için tek benzersiz yöntem olarak tasarlanmıştır.
İstek başarısız olduğunda yükseltilir:
- RepositoryNotFoundError İndirilecek depo bulunamadığında. Bunun nedeni, deponun var olmaması,
repo_type'in doğru ayarlanmamış olması veya deponunprivateolması ve erişiminizin olmaması olabilir.- GatedRepoError Depo mevcut ancak kapalı (gated) ve kullanıcı yetkili listesinde yer almıyorsa.
- RevisionNotFoundError Depo mevcut olsa da revizyon bulunamadığında.
- EntryNotFoundError Depo mevcut olsa da giriş (örneğin istenen dosya) bulunamadığında.
- BadRequestError İstek, HTTP 400 BadRequest hatasıyla başarısız olduysa.
- HfHubHTTPError Yukarıda listelenmeyen bir nedenle istek başarısız olduysa.
Çevrimdışı modu kontrol edin
Çevrimdışı modun etkin olup olmadığını is_offline_mode ile programatik olarak kontrol edebilirsiniz. Çevrimdışı mod, HF_HUB_OFFLINE=1 ortam değişkenini ayarlayarak etkinleştirilir.
Hub için çevrimdışı modda olup olmadığımızı döndürür.
Çevrimdışı mod etkinleştirildiğinde, get_session ile yapılan tüm HTTP istekleri bir OfflineModeIsEnabled istisnası oluşturur.
HTTP hataları
huggingface_hub içinde atılan HTTP hatalarının listesi aşağıdadır.
HfHubHTTPError
HfHubHTTPError, HF Hub HTTP hataları için üst sınıftır. Sunucu yanıtını ayrıştırır ve kullanıcıya olabildiğince fazla bilgi sunmak için hata mesajını biçimlendirir.
sınıf huggingface_hub.errors.HfHubHTTPError
< source >( message: strresponse: Responseserver_message: str | None = None )
HF Hub'da özel olarak oluşturulan herhangi bir HTTP Hatası için devralınacak HTTPError.
Herhangi bir HTTPError en azından bir HfHubHTTPError olarak dönüştürülür. Sunucu tarafından bazı bilgiler geri gönderilirse, bu bilgiler hata mesajına eklenir.
Eklenen ayrıntılar:
- Öncelik sırasına göre başlıklardan alınan Request ID: “X-Request-Id”, “X-Amzn-Trace-Id”, “X-Amz-Cf-Id”.
- Başlık “X-Error-Message”’ten gelen sunucu hata mesajı.
- Yanıt gövdesinde bir hata mesajı bulunabilirse sunucu hata mesajı.
Örnek:
import httpx2
from huggingface_hub.utils import get_session, hf_raise_for_status, HfHubHTTPError
response = get_session().post(...)
try:
hf_raise_for_status(response)
except HfHubHTTPError as e:
print(str(e)) # formatted message
e.request_id, e.server_message # details returned by server
# Complete the error message with additional information once it's raised
e.append_to_message("
ate_commit` expects the repository to exist.")
raiseHfHubHTTPError başlangıç mesajına ek bilgi ekleyin.
RepositoryNotFoundError
sınıf huggingface_hub.errors.RepositoryNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Geçersiz bir depo adıyla veya kullanıcının erişim yetkisi olmayan özel bir depo adıyla bir hf.co URL'sine erişilmeye çalışıldığında tetiklenir.
Örnek:
>>> from huggingface_hub import model_info
>>> model_info("<non_existent_repository>")
(...)
huggingface_hub.errors.RepositoryNotFoundError: 401 Client Error. (Request ID: PvMw_VjBMjVdMz53WKIzP)
Repository Not Found for url: https://huggingface.co/api/models/%3Cnon_existent_repository%3E.
Please make sure you specified the correct `repo_id` and `repo_type`.
If the repo is private, make sure you are authenticated and your token has the required permissions.
Invalid username or password.GatedRepoError
sınıf huggingface_hub.errors.GatedRepoError
< source >( message: strresponse: Responseserver_message: str | None = None )
Kullanıcının yetkili listesinde bulunmadığı bir gated repository'ye erişilmeye çalışıldığında yükseltilir.
Not: Geriye dönük uyumluluğu sağlamak için RepositoryNotFoundError'dan türetilir.
Örnek:
>>> from huggingface_hub import model_info
>>> model_info("<gated_repository>")
(...)
huggingface_hub.errors.GatedRepoError: 403 Client Error. (Request ID: ViT1Bf7O_026LGSQuVqfa)
Cannot access gated repo for url https://huggingface.co/api/models/ardent-figment/gated-model.
Access to model ardent-figment/gated-model is restricted and you are not in the authorized list.
Visit https://huggingface.co/ardent-figment/gated-model to ask for access.RevisionNotFoundError
sınıf huggingface_hub.errors.RevisionNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Geçerli bir depoya sahip ancak geçersiz bir revizyon içeren bir hf.co URL'sine erişilmeye çalışıldığında yükseltilir.
Örnek:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', 'config.json', revision='<non-existent-revision>')
(...)
huggingface_hub.errors.RevisionNotFoundError: 404 Client Error. (Request ID: Mwhe_c3Kt650GcdKEFomX)
Revision Not Found for url: https://huggingface.co/bert-base-cased/resolve/%3Cnon-existent-revision%3E/config.json.RevisionResolutionError
Bir revizyonun commit hash'ine çözümlenememesi durumunda HfApi.resolve_revision() tarafından yükseltilir: Hub'a ulaşılamadı (çevrimdışı mod, bağlantı hatası, zaman aşımı, Hub kesintisi, …) ve yerel önbellekte eşleşen bir kayıt bulunamadı.
BadRequestError
sınıf huggingface_hub.errors.BadRequestError
< source >( message: strresponse: Responseserver_message: str | None = None )
Sunucu bir HTTP 400 hatası döndürdüğünde hf_raise_for_status tarafından oluşturulur.
EntryNotFoundError
Girdi yerel veya uzaktan bulunamadığında oluşturulur.
Örnek:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.RemoteEntryNotFoundError (...)
>>> hf_hub_download('bert-base-cased', '<non-existent-file>', local_files_only=True)
(...)
huggingface_hub.utils.errors.LocalEntryNotFoundError (...)RemoteEntryNotFoundError
sınıf huggingface_hub.errors.RemoteEntryNotFoundError
< source >( message: strresponse: Responseserver_message: str | None = None )
Geçerli bir depo ve revizyona sahip ancak geçersiz bir dosya adıyla bir hf.co URL'sine erişilmeye çalışıldığında yükseltilir.
Örnek:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-existent-file>')
(...)
huggingface_hub.errors.EntryNotFoundError: 404 Client Error. (Request ID: 53pNl6M0MxsnG5Sw8JA6x)
Entry Not Found for url: https://huggingface.co/bert-base-cased/resolve/main/%3Cnon-existent-file%3E.LocalEntryNotFoundError
Ağ devre dışı bırakıldığında veya kullanılamadığında (bağlantı sorunu) diskte bulunmayan bir dosyaya veya anlık görüntüye erişilmeye çalışıldığında yükseltilir. Girdi Hub'da mevcut olabilir.
Örnek:
>>> from huggingface_hub import hf_hub_download
>>> hf_hub_download('bert-base-cased', '<non-cached-file>', local_files_only=True)
(...)
huggingface_hub.errors.LocalEntryNotFoundError: Cannot find the requested files in the disk cache and outgoing traffic has been disabled. To enable hf.co look-ups and downloads online, set 'local_files_only' to False.IncompleteSnapshotError
Hub'a ulaşılamadığında (çevrimdışı, bağlantı sorunu veya local_files_only=True) ve önbelleğe alınmış görüntünün eksik olduğu bilindiğinde, snapshot_download() tarafından yükseltilir: depoyun önbelleğe alınmış ağaç listesinde yer alan bazı dosyalar yerel görüntüde bulunmamaktadır.
Bu, geriye dönük uyumluluk için LocalEntryNotFoundError'nin bir alt sınıfıdır.
snapshot_path özniteliği, eksik yerel görüntünün yolunu tutar; böylece bir aşağı akış kütüphanesi, dosyaların eksik olduğu biliniyorsa bile önbellekteki en son dosyaları bulabilir.
CachedRepoTreeNotFoundError
İstenen revizyon için önbelleğe alınmış bir ağaç listesi bulunmadığında get_cached_repo_tree() tarafından oluşturulur.
Ağaç listesi, snapshot_download() işlevinin yan etkisi olarak doldurulur.
OfflineModeIsEnabled
Bir istek yapıldığında ancak HF_HUB_OFFLINE=1 ortam değişkeni olarak ayarlandığında yükseltilir.
Telemetri
huggingface_hub, telemetri verisi göndermek için bir yardımcı içerir. Bu bilgiler, sorunları hata ayıklamamıza ve yeni özellikleri önceliklendirmemize yardımcı olur.
Kullanıcılar, HF_HUB_DISABLE_TELEMETRY=1 ortam değişkenini ayarlayarak telemetri toplama işlemini istedikleri zaman devre dışı bırakabilir.
Telemetri, çevrimdışı modda da (yani HF_HUB_OFFLINE=1 ayarlandığında) devre dışıdır.
Üçüncü taraf bir kütüphanenin bakımcısıysanız, telemetri verisi göndermek send_telemetry çağrısı yapmaktan ibarettir.
Veriler, kullanıcılar üzerindeki etkiyi mümkün olduğunca azaltmak için ayrı bir iş parçacığında gönderilir.
huggingface_hub.utils.send_telemetry
< source >( topic: strlibrary_name: str | None = Nonelibrary_version: str | None = Noneuser_agent: dict | str | None = None )
Parametreler
- topic (
str) — İzlenen konunun adı. Konu, URL oluşturmak için doğrudan kullanılır. Alt konuları izlemek istiyorsanız, “/” ayırıcısını kullanmanız yeterlidir. Örnekler: “gradio”, “transformers/examples”,… - library_name (
str, isteğe bağlı) — HTTP isteğini yapan kütüphanenin adı. Kullanıcı-ajan (user-agent) başlığına eklenecektir. - library_version (
str, isteğe bağlı) — HTTP isteğini yapan kütüphanenin sürümü. Kullanıcı-ajan (user-agent) başlığına eklenecektir. - user_agent (
str,dict, isteğe bağlı) — Sözlük veya tek bir dize biçimindeki kullanıcı ajanı bilgisi. Yüklenmiş paketlere dair bilgilerle tamamlanacaktır.
Farklı HF kütüphanelerinin kullanımını izlemeye yardımcı olan telemetri gönderir.
Bu kullanım verileri, sorunları ayıklamamıza ve yeni özellikleri önceliklendirmemize yardımcı olur. Ancak herkesin ek bilgi paylaşmak istemediğini anlıyor ve gizliliğinize saygı duyuyoruz. HF_HUB_DISABLE_TELEMETRY=1 ortam değişkenini ayarlayarak telemetri toplama işlevini devre dışı bırakabilirsiniz. Çevrimdışı modda (yani HF_HUB_OFFLINE=1 ayarlandığında) telemetri de devre dışıdır.
Telemetri toplama işlemi, kullanıcı üzerindeki etkiyi en aza indirmek için ayrı bir iş parçacığında (thread) çalıştırılır.
Örnek:
>>> from huggingface_hub.utils import send_telemetry
# Send telemetry without library information
>>> send_telemetry("ping")
# Send telemetry to subtopic with library information
>>> send_telemetry("gradio/local_link", library_name="gradio", library_version="3.22.1")
# Send telemetry with additional data
>>> send_telemetry(
... topic="examples",
... library_name="transformers",
... library_version="4.26.0",
... user_agent={"pipeline": "text_classification", "framework": "flax"},
... )Doğrulayıcılar
huggingface_hub, yöntem argümanlarını otomatik olarak doğrulamak için özel doğrulayıcılar içerir.
Doğrulama, tip ipuçlarını doğrulamak için Pydantic içinde yapılan çalışmadan ilham alınmıştır ancak daha sınırlı özelliklere sahiptir.
Genel amaçlı dekoratör
validate_hf_hub_args(), huggingface_hub adlandırma kurallarına uyan argümanlara sahip yöntemleri kapsayan genel bir dekoratördür. Varsayılan olarak, doğrulayıcısı uygulanan tüm argümanlar doğrulanır.
Bir girdi geçerli değilse, HFValidationError fırlatılır. Yalnızca ilk geçersiz değer bir hata fırlatır ve doğrulama sürecini durdurur.
Kullanım:
>>> from huggingface_hub.utils import validate_hf_hub_args
>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
... print(repo_id)
>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id
>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.validate_hf_hub_args
huggingface_hub.utils.validate_hf_hub_args
< source >( fn: ~CallableT )
Yükseltilen
- HFValidationError — Bir girdi geçerli değilse.
huggingface_hub'ün herhangi bir genel metoduna argüman olarak gelen değerleri doğrular.
Bu dekoratörün amacı, her yerde yeniden kullanılan argümanların doğrulamasını uyumlu hale getirmektir. Varsayılan olarak, tanımlanan tüm doğrulayıcılar test edilir.
Doğrulayıcılar:
- validate_repo_id():
repo_id,"repo_name"veya"namespace/repo_name"olmalıdır. Namespace bir kullanıcı adı veya bir kuruluştur. ~utils.smoothly_deprecate_legacy_arguments: Dosya indirirkenproxiesparametresini yok sayın (küresel olarak ayarlanmalıdır).
Örnek:
>>> from huggingface_hub.utils import validate_hf_hub_args
>>> @validate_hf_hub_args
... def my_cool_method(repo_id: str):
... print(repo_id)
>>> my_cool_method(repo_id="valid_repo_id")
valid_repo_id
>>> my_cool_method("other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.
>>> my_cool_method(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.HFValidationError
huggingface_hub doğrulayıcıları tarafından atılan genel istisna.
ValueError sınıfından devralır.
Argüman doğrulayıcıları
Validators ayrıca tek başına da kullanılabilir. Doğrulanabilecek tüm argümanların listesi aşağıdadır.
repo_id
repo_id'nin geçerli olduğunu doğrulayın.
Bu, Hub üzerinde yapılan uygun doğrulamayı değiştirmek için değil, mümkün olan her durumda yerel tutarsızlıklardan kaçınmak içindir (örnek: repo_id içinde repo_type geçirmek yasaktır).
Kurallar:
- 1 ile 96 karakter arasında.
- “repo_name” veya “namespace/repo_name”
- [a-zA-Z0-9] veya ”-”, ”_”, ”.”
- ”—” ve ”..” yasaktır
Geçerli: "foo", "foo/bar", "123", "Foo-BAR_foo.bar123"
Geçersiz: "datasets/foo/bar", ".repo_id", "foo--bar", "foo.git"
Örnek:
>>> from huggingface_hub.utils import validate_repo_id
>>> validate_repo_id(repo_id="valid_repo_id")
>>> validate_repo_id(repo_id="other..repo..id")
huggingface_hub.utils._validators.HFValidationError: Cannot have -- or .. in repo_id: 'other..repo..id'.https://github.com/huggingface/huggingface_hub/issues/1008 adresinde tartışıldı. moon-landing (iç depoda):
smoothly_deprecate_legacy_arguments
Tam olarak bir doğrulayıcı değil, ancak o da çalıştı.
huggingface_hub.utils._validators.smoothly_deprecate_legacy_arguments
< source >( fn_name: strkwargs: dict )
huggingface_hub kod tabanındaki eski argümanları kademeli olarak devre dışı bırakın.
Bu fonksiyon, kwargs içindeki bazı kullanımdan kaldırılmış argümanları yok sayar ve kullanıcının bunların yok sayıldığını bildiren bir uyarı verir. Amaç, mevcut kodu bozmadan kullanıcıyı yeni çalışma yöntemine yönlendirmektir.
Kullanımı durdurulan argümanların listesi:
proxies: Vekilleri yapılandırmak için kullanıcının ya HTTP_PROXY ortam değişkenini kullanması ya dahttpx2.Clientnesnesini set_client_factory() işleviyle manuel olarak yapılandırması gerekir.huggingface_hub 0.x sürümünde
proxies, doğrudanrequests.requestfonksiyonuna aktarılan bir sözlüktü. huggingface_hub 1.x sürümünden itibaren istek başınaproxiesdesteği kaldırıldı. Özellikle, proxy ayarlarını istek bazında yapılandırmak artık mümkün değildir. Çözüm, set_client_factory() fonksiyonunu veya HTTP_PROXY ortam değişkenini kullanarak yapılandırmayı küresel olarak yapmaktır.Daha fazla ayrıntı için bkz:
resume_download: yerine geçecek bir şey olmadan kaldırıldı.huggingface_hubher zaman mümkün olduğunda indirmeleri yeniden başlatır.force_filename: yerine geçecek bir şey olmadan kaldırıldı. Dosya adı her zaman Hub'dakiyle aynıdır.local_dir_use_symlinks: yerine geçecek bir özellik olmadan kaldırıldı. Yerel bir dizine indirme işlemi artık sembolik bağlantılar kullanmıyor.