# الوظائف

راجع صفحة توثيق [HfApi](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi) للاطلاع على مرجع الطرق لإدارة مهامك على Hub.

- تشغيل مهمة: [run_job()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.run_job)
- جلب السجلات: [fetch_job_logs()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_logs)
- جلب المقاييس: [fetch_job_metrics()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_metrics)
- فحص المهمة: [inspect_job()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.inspect_job)
- انتظر حتى تنتهي المهمة (المهام): [wait_for_job()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job)
- قائمة المهام: [list_jobs()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.list_jobs)
- إلغاء المهمة: [cancel_job()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.cancel_job)
- تشغيل مهمة UV: [run_uv_job()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.run_uv_job)
- مزامنة مجلد محلي لتركيبه في مهمة: [sync_job_volume()](/docs/huggingface_hub/main/ar/package_reference/hf_api#huggingface_hub.HfApi.sync_job_volume)

## هياكل البيانات

### JobInfo[[huggingface_hub.JobInfo]]

#### huggingface_hub.JobInfo[[huggingface_hub.JobInfo]]

```python
huggingface_hub.JobInfo(**kwargs)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_jobs_api.py#L186)

**المعاملات:**

id (`str`) : معرّف المهمة.

created_at (`datetime` أو `None`) : وقت إنشاء المهمة.

started_at (`datetime` أو `None`) : وقت بدء تشغيل المهمة. تكون القيمة `None` ما دامت المهمة لا تزال في مرحلة الجدولة.

finished_at (`datetime` أو `None`) : وقت انتهاء المهمة. تكون القيمة `None` ما دامت المهمة ما تزال في مرحلة الجدولة أو قيد التنفيذ.

docker_image (`str` أو `None`) : صورة Docker من Docker Hub المستخدمة للعمل. يمكن أن تكون None إذا كان space_id موجودًا بدلاً من ذلك.

space_id (`str` أو `None`) : صورة Docker من Hugging Face Spaces المستخدمة للعمل. يمكن أن تكون None إذا كان docker_image موجودًا بدلاً من ذلك.

command (`list[str]` أو `None`) : أمر المهمة، على سبيل المثال `["python", "-c", "print('hello world')"]`

arguments (`list[str]` أو `None`) : الحُجج المُمرَّرة إلى الأمر

environment (`dict[str]` أو `None`) : متغيرات البيئة الخاصة بالمهمة (Job) على شكل قاموس.

secrets (`dict[str]` أو `None`) : متغيرات البيئة السرية الخاصة بالمهمة (مشفّرة).

flavor (`str` أو `None`) : نوع العتاد. راجع `JobHardware` للقيم الممكنة. على سبيل المثال `"cpu-basic"`.

labels (`dict[str, str]` أو `None`) : التسميات التي سيتم إرفاقها بالمهمة (أزواج مفتاح-قيمة).

volumes (`list[Volume]` أو `None`) : الأحجام (Volumes) المثبتة في حاوية المهمة (الدلاء، النماذج، مجموعات البيانات، المساحات).

status : (`JobStatus` أو `None`): حالة المهمة، على سبيل المثال `JobStatus(stage="RUNNING", message=None)` راجع [JobStage](/docs/huggingface_hub/main/ar/package_reference/jobs#huggingface_hub.JobStage) لمعرفة قيم المراحل الممكنة.

durations (`JobDurations` أو `None`) : تفصيل زمني للوظيفة. موجود لجميع حالات الوظيفة بما في ذلك SCHEDULING.

owner : (`JobOwner` أو `None`): مالك المهمة، على سبيل المثال `JobOwner(id="5e9ecfc04957053f60648a3e", name="lhoestq", type="user")`

initiator (`JobInitiator` أو `None`) : ما الذي أطلق المهمة، على سبيل المثال `JobInitiator(type="scheduled-job", id="...")` لتشغيل محفّز عبر cron.

expose_urls (`list[str]` أو `None`) : عناوين URL عامة يمكن من خلالها الوصول إلى المنافذ المكشوفة للوظيفة (عنوان واحد لكل منفذ مكشوف)، على سبيل المثال `["https://687fb701029421ae5549d998--8000.hf.jobs"]`. تكون القيمة `None` عندما لا تكون هناك أي مناهض مكشوفة. يتطلب الوصول إلى عنوان URL رمز HF مع صلاحية القراءة في مساحة الأسماء الخاصة بالوظيفة، ما لم يكن المنفذ عامًا.

ssh_url (`str` أو `None`) : نقطة نهاية SSH للمهمة، مثل `"ssh://687fb701029421ae5549d998@ssh.hf.jobs"`. لا تظهر إلا إذا تم بدء المهمة مع `ssh=True`. يتطلب الاتصال صلاحية الكتابة في مساحة أسماء المهمة ومفتاح SSH عام مسجّل على Hub (https://huggingface.co/settings/keys).

network (`JobNetwork` أو `None`) : الشبكة التي انضم إليها Job والكنيات التي يدّعيها، على سبيل المثال `JobNetwork(group="train", aliases=["master"])`. تكون `None` عندما تم بدء Job دون تحديد `network_group=`.

retry (`int` أو `None`) : عدد محاولات إعادة المحاولة المُهيّأة للمهمة (`attempts - 1`).

expose (`list[int]` أو `None`) : جميع المنافذ المعرّضة عبر وكيل Jobs، بما في ذلك العامة منها.

expose_public (`list[int]` أو `None`) : المنافذ المكشوفة التي يمكن الوصول إليها دون مصادقة.

تحتوي على معلومات حول مهمة.

مثال:

```python
>>> from huggingface_hub import run_job
>>> job = run_job(
...     image="python:3.12",
...     command=["python", "-c", "print('Hello from the cloud!')"]
... )
>>> job
JobInfo(id='687fb701029421ae5549d998', created_at=datetime.datetime(2025, 7, 22, 16, 6, 25, 79000, tzinfo=datetime.timezone.utc), started_at=datetime.datetime(2025, 7, 22, 16, 6, 31, 79000, tzinfo=datetime.timezone.utc), finished_at=None, docker_image='python:3.12', space_id=None, command=['python', '-c', "print('Hello from the cloud!')"], arguments=[], environment={}, secrets={}, flavor='cpu-basic', labels=None, status=JobStatus(stage='RUNNING', message=None), durations=JobDurations(scheduling_secs=6, running_secs=2, total_secs=8), owner=JobOwner(id='5e9ecfc04957053f60648a3e', name='lhoestq', type='user'), initiator=JobInitiator(type='user', id='5e9ecfc04957053f60648a3e', name='lhoestq'), endpoint='https://huggingface.co', url='https://huggingface.co/jobs/lhoestq/687fb701029421ae5549d998')
>>> job.id
'687fb701029421ae5549d998'
>>> job.url
'https://huggingface.co/jobs/lhoestq/687fb701029421ae5549d998'
>>> job.status.stage
'RUNNING'
```

### JobOwner[[huggingface_hub.JobOwner]]

#### huggingface_hub.JobOwner[[huggingface_hub.JobOwner]]

```python
huggingface_hub.JobOwner(id: str, name: str, type: str)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_jobs_api.py#L116)

### JobNetwork[[huggingface_hub.JobNetwork]]

#### huggingface_hub.JobNetwork[[huggingface_hub.JobNetwork]]

```python
huggingface_hub.JobNetwork(**kwargs)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_jobs_api.py#L123)

**المعاملات:**

group (`str`) : اسم مجموعة الشبكة، كما تم تمريره إلى `network_group=`.

aliases (`list[str]`) : المستعarentات التي تدّعيها المهمة في المجموعة، كما تم تمريرها إلى `network_aliases=`. فارغة عند عدم وجود أي مستعarentات.

انضم إلى مجموعة الشبكة Job.

### JobStage[[huggingface_hub.JobStage]]

#### huggingface_hub.JobStage[[huggingface_hub.JobStage]]

```python
huggingface_hub.JobStage(value, names = None, module = None, qualname = None, type = None, start = 1)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_jobs_api.py#L71)

قائمة بالمرحلة المحتملة للوظيفة على Hub.

يمكن مقارنة القيمة Value بسلسلة نصية:
```py
assert JobStage.COMPLETED == "COMPLETED"
```

القيم الممكنة هي: `COMPLETED`، `CANCELED`، `ERROR`، `DELETED`، `SCHEDULING`، `RUNNING`. مأخوذة من https://github.com/huggingface/moon-landing/blob/main/server/job_types/JobInfo.ts#L61 (رابط خاص).

### JobStatus[[huggingface_hub.JobStatus]]

#### huggingface_hub.JobStatus[[huggingface_hub.JobStatus]]

```python
huggingface_hub.JobStatus(stage: JobStage, message: str | None, expose_urls: list[str] | None, ssh_url: str | None)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_jobs_api.py#L108)

### الحجم[[huggingface_hub.Volume]]

#### huggingface_hub.Volume[[huggingface_hub.Volume]]

```python
huggingface_hub.Volume(**kwargs)
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_space_api.py#L128)

**المعاملات:**

type (`str`) : نوع الحجم: `"bucket"`، `"model"`، `"dataset"`، أو `"space"`.

source (`str`) : معرّف المصدر، مثل `"username/my-bucket"` أو `"username/my-model"`.

mount_path (`str`) : مسار التركيب داخل الحاوية، على سبيل المثال `"/data"`. يجب أن يبدأ بـ `/`.

revision (`str` أو `None`) : نسخة Git (للمستودعات فقط، القيمة الافتراضية هي `"main"`).

read_only (`bool` أو `None`) : تركيب للقراءة فقط. يُفرض `True` للمستودعات، والافتراضي هو `False` للبراميل.

path (`str` أو `None`) : بادئة مجلد فرعي داخل الدلو/المستودع لتركيبه، على سبيل المثال `"path/to/dir"`.

يصف وحدة تخزين (Volume) لتركيبها في حاوية Space أو Job.

#### to_dict[[huggingface_hub.Volume.to_dict]]

```python
to_dict()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_space_api.py#L164)

تسلسل إلى حمولة JSON المتوقعة من واجهة برمجة تطبيقات Hub.

#### to_uri[[huggingface_hub.Volume.to_uri]]

```python
to_uri()
```

[المصدر](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/_space_api.py#L179)

أعد الحجم كـ URI لتركيب HF بالصيغة التي يتوقعها سطر الأوامر.

