Hub Python Library documentation
HF URIs
HF URIs
يُعدّ معرّف URI الخاص بـ HF سلسلةً تشبه URI تحدد موقعًا على Hugging Face Hub. في جميع أنحاء المكتبة وأداة سطر الأوامر، تُستخدم سلاسل hf://... للإشارة إلى:
- مستودع نموذج أو مجموعة بيانات أو مساحة أو نواة (مع إمكانية التثبيت عند إصدار محدد بشكل اختياري)؛
- ملف أو مجلد فرعي داخل مستودع من هذا النوع؛
- a bucket or a sub-folder inside a bucket.
يُغلّف HF mount عنوان URI الخاص بـ HF مع مسار تثبيت محلي وعلامة اختيارية :ro / :rw، وتُستخدم هذه العلامة في أحجام Spaces وJobs.
توثّق هذه الصفحة الصياغة القياسية لمعرّفات HF URI والجبال HF. يُستخدم نفس المُحلِّل في جميع أنحاء المكتبة، لذا فإن أي URI صالح في سياق واحد (مثل HfFileSystem) يُحلَّل بنفس الطريقة في سياق آخر.
يقبل parse_hf_uri() أيضًا روابط ويب من Hugging Face (مثل https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv) بحيث يمكنك نسخ رابط من الموقع ولصقه. راجع روابط الويب أدناه.
صياغة URI الخاصة بـ HF
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]
| مكوّن | مطلوب | القيم المسموح بها |
|---|---|---|
hf:// | نعم | بادئة البروتوكول الحرفية. |
<TYPE>/ | لا | models/، datasets/، spaces/، kernels/، buckets/ (جمع). |
<ID> | نعم | <namespace>/<name> |
@<REVISION> | لا | فرع، وسم، SHA للالتزام، أو مرجع خاص (refs/pr/N، refs/convert/...). المستودعات فقط. |
/<PATH> | لا | المسار داخل المستودع أو الدلو. |
HF mount syntax
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]:<MOUNT_PATH>[:ro|:rw]
المُثبّت هو URI خاص بـ HF يتبعه :<MOUNT_PATH> وعلامة اختيارية :ro / :rw.
| مكوّن | مطلوب | القيم المسموح بها |
|---|---|---|
<MOUNT_PATH> | نعم | مسار التركيب المطلق (يجب أن يبدأ بـ /). |
:ro / :rw | لا | علامة القراءة فقط / القراءة والكتابة. |
ما هو URI الخاص بـ HF
ما يلي هي جميع URIs الصالحة لـ HF:
# 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
ما يلي هي وحدات HF الصالحة (مواصفات الأحجام):
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
ما ليس URI لـ HF
المحلل صارم عمداً. ما يلي مرفوض:
| URI غير صالح | السبب |
|---|---|
my-org/my-model, ./local/path | يفتقر إلى بادئة hf:// وليس عنوان URL معترفًا به من Hugging Face. |
hf://dataset/org/m, hf://model/org/m | يُمنع استخدام صيغة المفرد، استخدم صيغة الجمع (datasets/، …). |
hf://datasets, hf://buckets/ | بحد ذاته، بادئة النوع ليست عنوان URI صالحًا، بل يتطلب الأمر <ID>. |
hf://gpt2, hf://datasets/squad | لا يتم دعم المستودعات الأساسية (بدون مساحة أسماء). |
hf://buckets/single-segment | يجب أن تكون الأوعية دائمًا بصيغة namespace/name. |
hf://buckets/org/b@v1 | لا تدعم الدلاء (Buckets) علامة المراجعة (revision marker). |
hf://org/m@, hf://datasets/foo/bar@/x | تعديل فارغ بعد @. |
hf://a/b/c@v1 | يجب أن يكون معرّف المستودع namespace/name، والأجزاء الإضافية هي مسارات. |
hf://org/m:/ | يجب أن يكون مسار التركيب مسارًا مطلقًا غير فارغ. |
عناوين ويب
للسهولة، يقبل parse_hf_uri() أيضاً عناوين ويب الخاصة بـ Hugging Face التي تنسخها وتلصقها من متصفحك. يتم تطبيعها إلى الصيغة القياسية hf://، لذا يمكنك لصق عنوان URL مباشرة في سطر الأوامر أو المكتبة و«يعمل الأمر ببساطة»:
>>> 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 (ومجاله المختصر hf.co، ومضيف المرحلة التجريبية، ومضيف HF_ENDPOINT المخصص) سواءً مع بروتوكول https:// أو بدونه. وتُتجاهل سلاسل الاستعلام (?download=true) والمقتطفات (#L10).
لتحليل عنوان URL من نشر آخر لمنصة Hub (مثل النشر الذاتي أو عبر وكيل)، مرر عنوانه الأساسي كـendpoint. يتم بعد ذلك التعرف على مضيفه بالإضافة إلى المضيفين الافتراضيين، ويُستبعد بادئة المسار (مثل http://localhost:8080/hf) قبل التحليل:
>>> 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='')صيغ عناوين URL المدعومة
تُدرج الجدول أدناه المسارات المدعومة. ولإيجاز الأمر، يُعرض مسار URL فقط (الجزء الذي يلي المضيف، مثل huggingface.co)؛ ويُفهم المضيف المعترف به ضمناً.
| يشير إلى | مسار عنوان URL |
|---|---|
| مستودع النموذج | /<ns>/<name> |
مستودع مجموعة البيانات (نفس الأمر لـ spaces/، kernels/، models/) | /datasets/<ns>/<name> |
مجلد داخل مستودع، مثبّت عند <rev> | /<ns>/<name>/tree/<rev>[/<path>] |
| ملف داخل مستودع (مسار عارض الملفات) | /<ns>/<name>/blob/<rev>/<path> |
| ملف داخل مستودع (مسار التنزيل) | /<ns>/<name>/resolve/<rev>/<path> |
| ملف داخل مستودع (مسار خام) | /<ns>/<name>/raw/<rev>/<path> |
| ملف داخل مستودع (مسار إلقاء اللوم) | /<ns>/<name>/blame/<rev>/<path> |
| دلو | /buckets/<ns>/<name> |
| ملف داخل دلو (الدلاء غير مُنظَّمة بالإصدارات) | /buckets/<ns>/<name>/resolve/<path> |
| مجلد داخل دلو | /buckets/<ns>/<name>/tree/<path> |
يُستخلص التعديل من الجزء الفردي الذي يلي مباشرةً blob/resolve/raw/tree/blame. تُطابَق المراجع الخاصة (refs/pr/N، refs/convert/...) بحماس حتى وإن احتوت على /؛ أما أي اسم فرع/وسم آخر يحتوي على / فيجب ترميزه في عنوان URL (feature%2Ffoo).
عناوين URL التي لم يتم تحليلها
عندما يكون عنوان URL غامضاً أو لا يشير إلى موقع محدد على Hub، يتم رفضه (لا يتم التخمين أبداً):
تُعرض المسارات أدناه مرة أخرى دون تضمين المضيف، باستثناء الصف الأخير حيث يكون المضيف نفسه هو سبب الرفض.
| السبب | مسار عنوان URL |
|---|---|
| رابط أحادي المقطع: صفحة مستخدم/منظمة، صفحة قائمة، أو مستودع قياسي — غير محدد. | /<username> |
صفحة القائمة، بدون <ns>/<name>. | /datasets |
| لا يتم دعم المستودعات الأساسية (بدون مساحة أسماء). | /gpt2 |
ليس موقع ملف/مجلد (نفس الشيء ينطبق على commits، discussions، settings، …). | /<ns>/<name>/commit/<rev> |
| المجموعات ليست مستودعات. | /collections/<ns>/<slug> |
| المضيف ليس مضيفًا معترفًا به من قبل Hugging Face. | https://example.com/<ns>/<name> |
عرض عنوان ويب
HfUri.to_url() is the inverse of parsing a URL: it renders the browsable web URL for a HF URI.
>>> 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'يشير إلى صفحة هبوط المستودع / الدلو عند عدم تعيين مسار أو مراجعة، وإلى عارض المجلد (/tree/<rev>) عند تعيين مراجعة فقط، وإلى عارض الملف (/blob/<rev>/<path>، حيث تكون المراجعة الافتراضية main) لملفات المستودع، وإلى مسار الشجرة (/tree/<path>) لملفات الدلو. يتم ترميز الأحرف الخاصة في المسار (المسافات، #، ...) باستخدام النسبة المئوية. مرّر endpoint=... لاستهداف مضيف مخصص.
التحليل في Python
تحليل معرّفات الموارد الموحّدة
parse_hf_uri() هو محلل URI المركزي. إنه محلل نصوص خالص (لا يتضمن أي استدعاءات شبكة) ويعيد كائن HfUri من نوع dataclass غير قابل للتعديل.
>>> 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()، والذي يُخرج دائماً الشكل القياسي (مع بادئة نوع صريحة):
>>> 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 وid مباشرةً. وتُوضِّح الخصائص المنطقية is_repo وis_bucket الفرق بين معرِّفات المستودعات ومعرِّفات الدلاء عند الحاجة.
تحليل نقاط التركيب
parse_hf_mount يحلل مواصفة نقطة التثبيت (URI خاص بـ HF مع مسار تثبيت محلي وعلامة اختيارية :ro/:rw) ويعيد كائن HfMount من نوع dataclass غير قابل للتعديل. يستخدم parse_hf_uri() في الخلفية.
>>> 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:
>>> mount = parse_hf_mount("hf://my-org/my-model:/data:ro")
>>> mount.to_uri()
'hf://models/my-org/my-model:/data:ro'مرجع
فئة huggingface_hub.HfUri
< source >( type: typing.Literal['model', 'dataset', 'space', 'kernel', 'bucket']id: strrevision: str | None = Nonepath_in_repo: str = ''_raw: str | None = None )
المعاملات
- type (
str) — إحدى القيم: ‘model’ أو ‘dataset’ أو ‘space’ أو ‘kernel’ أو ‘bucket’. - id (
str) — معرّف المستودع (‘namespace/name’، مثل ‘my-org/my-model’) لمعرّفات المستودعات، أو معرّف الدلو (‘namespace/name’) لمعرّفات الدلاء. - revision (
str, اختياري) — المراجعة المحددة بعد ’@’ في عنوان URI، بعد فك ترميز URL. تكون ’None’ إذا لم تُحدد مراجعة، أو في حالة عناوين URI الخاصة بالحاويات (bucket URIs) التي لا تحمل مراجعة أبدًا. تُحفظ المراجع الخاصة مثل ‘refs/pr/10’ و ‘refs/convert/parquet’ كما هي. - path_in_repo (
str) — المسار داخل المستودع أو الدلو. سلسلة فارغة إذا كان URI يشير إلى الجذر.
تمثيل مُحلَّل لعنوان URI الخاص بـ Hugging Face Hub (‘hf://…’).
اعرض عنوان URI كنص قياسي بصيغة ‘hf://’.
يُكتب بادئة النوع دائمًا بشكل صريح (مثل ‘hf://models/my-org/my-model’).
to_url
< source >( endpoint: str | None = None ) → str
المعاملات
- endpoint (
str، اختياري) — نقطة النهاية الأساسية للاستخدام. القيمة الافتراضية هي ‘constants.ENDPOINT’ (أي ’https://huggingface.co’).
يعيد
str
عنوان URL على الويب.
اعرض عنوان URI كـ رابط ويب خاص بـ Hugging Face (النوع الذي تفتحه في المتصفح).
هذا هو عكس تحليل عنوان URL باستخدام parse_hf_uri(). يشير العنوان المُعاد إلى:
- صفحة هبوط المستودع / الدلو عند عدم تعيين مسار أو مراجعة؛
- عارض المجلد (‘/tree/<revision>’) عند تعيين نسخة واحدة فقط؛
- عارض الملفات (‘/blob/<revision>/<path>’) لملفات المستودع (القيمة الافتراضية للمراجعة هي ‘main’);
- مسار الشجرة (‘/tree/<path>’) لملفات الدلاء (الدلاء غير مُنَسَّخة).
huggingface_hub.parse_hf_uri
( uri: strendpoint: str | None = None ) → HfUri
المعاملات
- uri (
str) — المعرّف الموحّد (URI) الذي سيتم تحليله. يجب أن يبدأ بـ ‘hf://’، أو يكون رابطًا لموقع Hugging Face (مثل ’https://huggingface.co/…’). - endpoint (
str، اختياري) — نقطة نهاية مخصصة لـ Hub (مثل Hub مُستضاف ذاتيًا أو عبر وكيل مثل ’https://hub.my-company.com’ أو ‘http://localhost:8080/hf’). عند تقديمه، يتم التعرف على عناوين الويب على تلك النقطة بالإضافة إلى مضيفي Hugging Face الافتراضيين. لا يؤثر على معرفات ‘hf://’.
يعيد
المعرف الموحّد محللًا.
يرفع
HfUriError
HfUriError— إذا كانت URI غير صحيحة (نقص البادئة، نوع غير صالح، نقص المعرّف، مسار URL غير مدعوم، إلخ).
تحليل عنوان URI لمركز Hugging Face (‘hf://…’) أو عنوان ويب لموقع Hugging Face.
URI الخاص بـ HF هو نص يشبه URI يحدد موقعًا على Hugging Face Hub. القواعد الكاملة هي:
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]للسهولة، تقبل روابط ويب الخاصة بـ Hugging Face (التي تنسخها وتلصقها من الموقع) وتُطبع إلى الصيغة القياسية ‘hf://’، على سبيل المثال ‘https://huggingface.co/datasets/my-org/my-dataset/blob/main/train.csv’. لا تُقبل إلا الروابط غير الغامضة (صفحات المستودعات/الدلاء ومسارات عارض الملفات/المجلدات)، وتُرفض أي مسارات أخرى.
راجع docs/source/en/package_reference/hf_uris.md للاطلاع على المواصفات الكاملة.
أمثلة:
>>> 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')فئة huggingface_hub.utils.HfMount
< source >( source: HfUrimount_path: strread_only: bool | None = None_raw: str | None = None )
المعاملات
- source (HfUri) — URI الخاص بـ HF المُحلَّل الذي يحدد مورد Hub المطلوب تركيبه.
- mount_path (
str) — مسار التركيب المحلي (يبدأ دائمًا بـ ’/’). - read_only (
bool، اختياري) — True إذا كان التثبيت ينتهي بـ ‘:ro’، وFalse إذا كان ينتهي بـ ‘:rw’، و‘None’ إذا لم يُوفَّر أي علم.
URI خاص بـ HF مقترن بمسار تثبيت محلي وعلامة اختيارية للقراءة فقط.
يُستخدم في Spaces وJobs لوصف تركيبات التخزين. الصيغة الكاملة هي:
hf://[<TYPE>/]<ID>[@<REVISION>][/<PATH>]:<MOUNT_PATH>[:ro|:rw]اعرض نقطة التركيب كنص قياسي بصيغة ‘hf://’.
مثال: ‘hf://models/my-org/my-model:/data:ro’
huggingface_hub.utils.parse_hf_mount
< source >( mount_str: str ) → HfMount
تحليل مواصفة تركيب HF (‘hf://…:<MOUNT_PATH>[:ro|:rw]’).
تتكون مواصفة التركيب من URI خاص بـ HF يتبعه مسار تركيب محلي، مع علم اختياري للقراءة فقط أو للقراءة والكتابة.
راجع docs/source/en/package_reference/hf_uris.md للاطلاع على المواصفات الكاملة.
أمثلة:
>>> 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)