Hub Python Library documentation
HF URI'leri
HF URI'leri
HF URI, Hugging Face Hub üzerindeki bir konumu tanımlayan URI benzeri bir dizgedir. Kütüphane ve CLI boyunca, hf://... dizgeleri şunlara işaret etmek için kullanılır:
- bir model, veri seti, space veya kernel deposu (isteğe bağlı olarak bir revizyona sabitlenmiş);
- böyle bir depodaki bir dosya veya alt klasör;
- a bucket veya bir bucket içindeki alt klasör.
Bir HF mount, bir HF URI'sini yerel bir bağlama yolu ve isteğe bağlı :ro / :rw bayrağı ile sarar; Spaces ve Jobs hacimleri tarafından kullanılır.
Bu sayfa, HF URI'lerinin ve HF bağlamalarının kanonik sözdizimini belgelemektedir. Kütüphanenin her yerinde aynı ayrıştırıcı kullanıldığından, bir bağlamda geçerli olan bir URI (ör. HfFileSystem), başka bir bağlamda da aynı şekilde ayrıştırılır.
parse_hf_uri() ayrıca Hugging Face web URL'lerini de kabul eder (ör. https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv) böylece web sitesinden bir bağlantıyı kopyalayıp yapıştırabilirsiniz. Aşağıdaki Web URL'leri bölümüne bakın.
HF URI sözdizimi
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]
| Bileşen | Zorunlu | İzin verilen değerler |
|---|---|---|
hf:// | evet | Literal protokol öneki. |
<TYPE>/ | hayır | models/, datasets/, spaces/, kernels/, buckets/ (çoğul). |
<ID> | evet | <namespace>/<name> |
@<REVISION> | hayır | Branch, tag, commit SHA veya özel ref (refs/pr/N, refs/convert/...). Yalnızca depolar. |
/<PATH> | hayır | Depoda veya kovada (bucket) yol. |
HF yerleştirme sözdizimi
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]:<MOUNT_PATH>[:ro|:rw]
Bir mount, :<MOUNT_PATH> ile takip edilen bir HF URI'si ve isteğe bağlı bir :ro / :rw bayrağıdır.
| Bileşen | Zorunlu | İzin verilen değerler |
|---|---|---|
<MOUNT_PATH> | evet | Mutlak bağlama yolu (/ ile başlamalıdır). |
:ro / :rw | hayır | Salt okunur / salt okunur-yazılır bayrağı. |
HF URI nedir
Aşağıdakiler tüm geçerli HF URI'leridir:
# Models (type prefix is optional, but the id is always 'namespace/name') hf://my-org/my-model # implicit type prefix hf://models/my-org/my-model # explicit type prefix hf://models/my-org/my-model/config.json # file inside a model repo hf://models/my-org/my-model@v1.0/config.json # pinned to a revision # Datasets, Spaces, Kernels (type prefix is required) hf://datasets/my-org/my-dataset hf://datasets/my-org/my-dataset@dev/train.csv hf://spaces/my-user/my-space hf://kernels/my-org/my-kernel # Special revisions (preserved as-is) hf://datasets/my-org/my-dataset@refs/pr/10/data.csv hf://datasets/my-org/my-dataset@refs/convert/parquet/data.parquet # Buckets (always 'namespace/name', no revision) hf://buckets/my-org/my-bucket hf://buckets/my-org/my-bucket/sub/folder
Aşağıdakiler geçerli HF bağlamaları (hacim tanımları)dır:
hf://my-org/my-model:/data hf://datasets/my-org/my-dataset:/mnt:ro hf://datasets/my-org/my-dataset/train:/mnt:rw # mount a sub-folder hf://buckets/my-org/my-bucket:/storage:rw
HF URI olmayan şeyler
Ayrıştırıcı bilinçli olarak katıdır. Aşağıdakiler reddedilir:
| Geçersiz URI | Neden |
|---|---|
my-org/my-model, ./local/path | hf:// öneki eksik ve tanınan bir Hugging Face URL'si değil. |
hf://dataset/org/m, hf://model/org/m | Tekil tip biçimleri yasaktır, çoğul kullanın (datasets/, …). |
hf://datasets, hf://buckets/ | Yalnızca bir tür öneki geçerli bir URI değildir, bir <ID> gereklidir. |
hf://gpt2, hf://datasets/squad | Ad alanı olmayan kanonik depolar desteklenmez. |
hf://buckets/single-segment | Kovalar her zaman namespace/name biçiminde olmalıdır. |
hf://buckets/org/b@v1 | Buckets bir revizyon işareti desteklemez. |
hf://org/m@, hf://datasets/foo/bar@/x | @ sonrasında boş revizyon. |
hf://a/b/c@v1 | Bir depo kimliği namespace/name biçiminde olmalıdır, ek segmentler yollardır. |
hf://org/m:/ | Mount path boş olmayan mutlak bir yol olmalıdır. |
Web URL'leri
Kolaylık olması için parse_hf_uri(), tarayıcınızdan kopyalayıp yapıştırdığınız Hugging Face web URL'lerini de kabul eder. Bunlar, CLI veya kütüphaneye doğrudan yapıştırıldığında “olduğu gibi çalışması” için standart hf:// biçimine dönüştürülür:
>>> from huggingface_hub import parse_hf_uri
>>> parse_hf_uri("https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv")
HfUri(type='dataset', id='my-org/my-dataset', revision='main', path_in_repo='train.csv')huggingface.co adreslerinden (ve hf.co kısaltılmış alan adından, staging sunucusundan ve özel bir HF_ENDPOINT sunucusundan) gelen URL'ler, https:// şeması olsun ya da olmasın tanınır. Sorgu dizgeleri (?download=true) ve parçalar (#L10) yok sayılır.
Başka bir Hub dağıtımından (ör. kendi barındırdığınız veya proxy'li bir Hub) bir URL ayrıştırmak için, temel URL'sini endpoint olarak iletin. Bu durumda, varsayılanların yanı sıra bu host da tanınır ve ayrıştırma öncesinde bir yol öneki (ör. http://localhost:8080/hf) kaldırılır:
>>> parse_hf_uri("https://hub.my-company.com/datasets/my-org/my-dataset", endpoint="https://hub.my-company.com")
HfUri(type='dataset', id='my-org/my-dataset', revision=None, path_in_repo='')Desteklenen URL biçimleri
Aşağıdaki tablo desteklenen rotaları listeler. Kısa tutmak için yalnızca URL yolu gösterilmektedir (hosttan sonraki kısım, örn. huggingface.co); tanınan host ima edilir.
| Şu konuma işaret eder | URL yolu |
|---|---|
| Model deposu | /<ns>/<name> |
Veri seti deposu (spaces/, kernels/, models/ için de aynı) | /datasets/<ns>/<name> |
Bir depodaki klasör, <rev> konumunda sabitlenmiş | /<ns>/<name>/tree/<rev>[/<path>] |
| Depodaki dosya (dosya görüntüleyici yolu) | /<ns>/<name>/blob/<rev>/<path> |
| Depodaki dosya (indirme yolu) | /<ns>/<name>/resolve/<rev>/<path> |
| Depodaki dosya (ham rota) | /<ns>/<name>/raw/<rev>/<path> |
| Depodaki dosya (blame rotası) | /<ns>/<name>/blame/<rev>/<path> |
| Bucket | /buckets/<ns>/<name> |
| Bir varlık içindeki dosya (varlıklar sürüm yönetimi yapılmaz) | /buckets/<ns>/<name>/resolve/<path> |
| Bir bucket içindeki klasör | /buckets/<ns>/<name>/tree/<path> |
Revizyon, blob/resolve/raw/tree/blame hemen ardından gelen tek segmentten alınır. / içermelerine rağmen özel referanslar (refs/pr/N, refs/convert/...) özenle eşleştirilir; / içeren diğer tüm dal/etiket adları URL kodlamalı olmalıdır (feature%2Ffoo).
Ayrıştırılmayan URL'ler
Bir URL belirsizse veya Hub'da somut bir konuma işaret etmiyorsa reddedilir (asla tahmin edilmez):
Aşağıdaki yollar, son satırda konak kendisinin reddetme nedeni olması dışında, yine konak olmadan gösterilmektedir.
| Neden | URL yolu |
|---|---|
| Tek segmentli URL: kullanıcı/örgüt sayfası, liste sayfası veya kanonik depo — belirsiz. | /<username> |
Listeleme sayfası, <ns>/<name> yok. | /datasets |
| Ad alanı olmayan kanonik depolar desteklenmez. | /gpt2 |
Bir dosya/klasör konumu değil (commits, discussions, settings, … için de aynı). | /<ns>/<name>/commit/<rev> |
| Koleksiyonlar depolar değildir. | /collections/<ns>/<slug> |
| Host, tanınan bir Hugging Face hostu değil. | https://example.com/<ns>/<name> |
Bir web URL'sini görüntüleme
HfUri.to_url(), bir URL'nin ayrıştırılmasının tersidir: bir HF URI için taranabilir web URL'sini oluşturur.
>>> uri = parse_hf_uri("hf://datasets/my-org/my-dataset@v1/train.csv")
>>> uri.to_url()
'https://huggingface.co/datasets/my-org/my-dataset/blob/v1/train.csv'Yol veya revizyon ayarlanmadığında depo / bucket açılış sayfasına, yalnızca revizyon ayarlandığında klasör görüntüleyicisine (/tree/<rev>), depo dosyaları için dosya görüntüleyicisine (/blob/<rev>/<path>, revizyon varsayılan olarak main) ve bucket dosyaları için ağaç rotasına (/tree/<path>) işaret eder. Yoldaki özel karakterler (boşluklar, #, …) yüzde kodlanır. Özel bir hedefe gitmek için endpoint=... parametresini iletin.
Python'da ayrıştırma
URI'leri ayrıştırma
parse_hf_uri() merkezi URI ayrıştırıcısıdır. Saf bir dize ayrıştırıcısıdır (ağ çağrısı içermez) ve dondurulmuş bir HfUri veri sınıfı döndürür.
>>> from huggingface_hub import parse_hf_uri
>>> parse_hf_uri("hf://datasets/my-org/my-dataset@refs/pr/3/train.json")
HfUri(type='dataset', id='my-org/my-dataset', revision='refs/pr/3', path_in_repo='train.json')HfUri, HfUri.to_uri() ile gidiş-dönüş yapılabilir; bu yöntem her zaman kanonik biçimi (açık bir tür önekiyle) üretir:
>>> uri = parse_hf_uri("hf://my-org/my-model@v1/config.json")
>>> uri.to_uri()
'hf://models/my-org/my-model@v1/config.json'type ve id alanlarını doğrudan kullanın. is_repo ve is_bucket boole özellikleri, gerektiğinde depo URI'leri ile varlık kovası URI'leri arasında ayrım yapar.
Montların ayrıştırılması
parse_hf_mount, bir montaj spesifikasyonunu (yerel bir montaj yolu ve isteğe bağlı :ro/:rw bayrağı içeren bir HF URI) ayrıştırır ve dondurulmuş bir HfMount dataclass döndürür. Arka planda parse_hf_uri() kullanır.
>>> from huggingface_hub.utils import parse_hf_mount
>>> parse_hf_mount("hf://buckets/my-org/my-bucket/sub/dir:/mnt:ro")
HfMount(source=HfUri(type='bucket', id='my-org/my-bucket', revision=None, path_in_repo='sub/dir'), mount_path='/mnt', read_only=True)HfMount, HfMount.to_uri üzerinden çift yönlü dönüştürülebilir:
>>> mount = parse_hf_mount("hf://my-org/my-model:/data:ro")
>>> mount.to_uri()
'hf://models/my-org/my-model:/data:ro'Referans
sınıf huggingface_hub.HfUri
< source >( type: typing.Literal['model', 'dataset', 'space', 'kernel', 'bucket']id: strrevision: str | None = Nonepath_in_repo: str = ''_raw: str | None = None )
Parametreler
- type (
str) — ‘model’, ‘dataset’, ‘space’, ‘kernel’ veya ‘bucket’ değerlerinden biri. - id (
str) — Depo URI'leri için depo kimliği (‘namespace/name’, örn. ‘my-org/my-model’) veya bucket URI'leri için bucket kimliği (‘namespace/name’). - revision (
str, isteğe bağlı) — URI'de '@' işaretinden sonra belirtilen revizyon, URL kodu çözülmüş haliyle. Revizyon belirtilmediyse veya bucket URI'leri için (asla revizyon taşımazlar) 'None'. 'refs/pr/10' ve 'refs/convert/parquet' gibi özel referanslar olduğu gibi korunur. - path_in_repo (
str) — Depo veya bucket içindeki yol. URI köke işaret ediyorsa boş dize.
Hugging Face Hub URI’sinin ('hf://…') ayrıştırılmış gösterimi.
URI'yi kanonik bir ‘hf://’ dizgesi olarak görüntüleyin.
Tip öneki her zaman açıkça yazılır (ör. ‘hf://models/my-org/my-model’).
to_url
< source >( endpoint: str | None = None ) → str
Parametreler
- endpoint (
str, isteğe bağlı) — Kullanılacak temel uç nokta. Varsayılan olarak ‘constants.ENDPOINT’ (yani ’https://huggingface.co’) kullanılır.
Dönüş değeri
str
web URL'si.
URI'yi Hugging Face web URL'si olarak görüntüleyin (tarayıcıda açtığınız türden).
Bu, bir URL'yi parse_hf_uri() ile ayrıştırmanın tersidir. Dönen URL şuna işaret eder:
- yol veya revizyon ayarlanmadığında depo / varlık kovası (bucket) açılış sayfası;
- sadece bir revizyon ayarlandığında klasör görüntüleyici ('/tree/<revision>');
- depo dosyaları için dosya görüntüleyici (‘/blob/<revision>/<path>’) (revizyon varsayılan olarak ‘main’dir);
- bucket dosyaları için ağaç rotası (‘/tree/<path>’) (bucketler sürüm yönetimi yapılmaz).
huggingface_hub.parse_hf_uri
( uri: strendpoint: str | None = None ) → HfUri
Parametreler
- uri (
str) — Ayrıştırılacak URI. ‘hf://’ ile başlamalı veya bir Hugging Face URL’si olmalıdır (ör. ’https://huggingface.co/…’). - endpoint (
str, isteğe bağlı) — Özel bir Hub uç noktası (ör. self-hosted veya proxy’li bir Hub gibi ’https://hub.my-company.com’ veya ‘http://localhost:8080/hf’). Sağlandığında, varsayılan Hugging Face hostlarına ek olarak bu uç noktadaki web URL’leri de tanınır. ‘hf://’ URI’leri üzerinde hiçbir etkisi yoktur.
Dönüş değeri
çözümlenmiş URI.
Yükseltilen
HfUriError
HfUriError— URI biçimsizse (ön ek eksik, geçersiz tür, kimlik eksik, desteklenmeyen URL yolu vb.).
Bir Hugging Face Hub URI’sini (‘hf://…’) veya bir Hugging Face web URL’sini ayrıştırır.
HF URI, Hugging Face Hub üzerindeki bir konumu tanımlayan URI benzeri bir dizgedir. Tam sözdizimi şudur:
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]Kolaylık sağlamak amacıyla, Hugging Face web URL'leri (web sitesinden kopyalayıp yapıştırdıklarınız) de kabul edilir ve ‘hf://’ biçimine normalize edilir, örneğin ’https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv’. Yalnızca belirsiz olmayan URL'ler (depo / bucket sayfaları ve dosya/klasör görüntüleyici rotaları) kabul edilir; diğer tüm rotalar reddedilir.
Tam kullanım kılavuzu için ‘docs/source/en/package_reference/hf_uris.md’ dosyasına bakın.
Örnekler:
>>> from huggingface_hub.utils import parse_hf_uri
>>> parse_hf_uri("hf://my-org/my-model")
HfUri(type='model', id='my-org/my-model', revision=None, path_in_repo='')
>>> parse_hf_uri("hf://datasets/my-org/my-dataset@refs/pr/3/train.json")
HfUri(type='dataset', id='my-org/my-dataset', revision='refs/pr/3', path_in_repo='train.json')
>>> parse_hf_uri("https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv")
HfUri(type='dataset', id='my-org/my-dataset', revision='main', path_in_repo='train.csv')sınıf huggingface_hub.utils.HfMount
< source >( source: HfUrimount_path: strread_only: bool | None = None_raw: str | None = None )
Parametreler
- source (HfUri) — Monte edilecek Hub kaynağını belirleyen ayrıştırılmış HF URI.
- mount_path (
str) — Yerel bağlama yolu (her zaman ’/’ ile başlar). - read_only (
bool, isteğe bağlı) — Mount sonu ‘:ro’ ile bitiyorsa True, ‘:rw’ ile bitiyorsa False, bayrak sağlanmadıysa ‘None’.
Yerel bir bağlama yolu ve isteğe bağlı salt okunur bayrağıyla eşleştirilmiş bir HF URI.
Volumes ve Jobs tarafından hacim bağlamalarını açıklamak için kullanılır. Tam sözdizimi şudur:
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]:<MOUNT_PATH>[:ro|:rw]Mount'u kanonik bir ‘hf://’ dizesi olarak görüntüleyin.
Örnek: ‘hf://models/my-org/my-model:/data:ro’
huggingface_hub.utils.parse_hf_mount
< source >( mount_str: str ) → HfMount
Bir HF montu spesifikasyonunu ayrıştırın (‘hf://…:<MOUNT_PATH>[:ro|:rw]’).
Bir montaj spesifikasyonu, bir HF URI'sini, yerel bir montaj yolunu ve isteğe bağlı bir salt okunur/okunabilir-yazılabilir bayrağını içerir.
Tam kullanım kılavuzu için ‘docs/source/en/package_reference/hf_uris.md’ dosyasına bakın.
Örnekler:
>>> from huggingface_hub.utils import parse_hf_mount
>>> parse_hf_mount("hf://my-org/my-model:/data:ro")
HfMount(source=HfUri(type='model', id='my-org/my-model', revision=None, path_in_repo=''), mount_path='/data', read_only=True)
>>> parse_hf_mount("hf://buckets/my-org/my-bucket/sub/dir:/mnt:rw")
HfMount(source=HfUri(type='bucket', id='my-org/my-bucket', revision=None, path_in_repo='sub/dir'), mount_path='/mnt', read_only=False)