# Tugas

Periksa halaman dokumentasi [HfApi](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi) untuk referensi metode mengelola Jobs Anda di Hub.

- Jalankan Job: [run_job()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.run_job)
- Ambil log: [fetch_job_logs()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_logs)
- Ambil metrik: [fetch_job_metrics()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_metrics)
- Periksa Job: [inspect_job()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.inspect_job)
- Tunggu hingga Job selesai: [wait_for_job()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job)
- Daftarkan Pekerjaan: [list_jobs()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.list_jobs)
- Batalkan Job: [cancel_job()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.cancel_job)
- Jalankan Tugas UV: [run_uv_job()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.run_uv_job)
- Sinkronkan direktori lokal untuk memountnya dalam Job: [sync_job_volume()](/docs/huggingface_hub/v2.4.0/id/package_reference/hf_api#huggingface_hub.HfApi.sync_job_volume)

## Struktur data

### JobInfo[[huggingface_hub.JobInfo]]

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

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

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L186)

**Parameter:**

id (`str`) : ID pekerjaan.

created_at (`datetime` atau `None`) : Waktu saat Job dibuat.

started_at (`datetime` atau `None`) : Waktu saat Job mulai berjalan. None selama Job masih dalam penjadwalan.

finished_at (`datetime` atau `None`) : Waktu Job selesai. None saat Job masih dalam penjadwalan atau berjalan.

docker_image (`str` atau `None`) : Citra Docker dari Docker Hub yang digunakan untuk Job. Bisa None jika space_id hadir sebagai gantinya.

space_id (`str` atau `None`) : Citra Docker dari Hugging Face Spaces yang digunakan untuk Job. Bisa None jika docker_image hadir sebagai gantinya.

command (`list[str]` atau `None`) : Perintah dari Job, misalnya `["python", "-c", "print('hello world')"]`

arguments (`list[str]` atau `None`) : Argumen yang diteruskan ke perintah

environment (`dict[str]` atau `None`) : Variabel lingkungan dari Job sebagai kamus.

secrets (`dict[str]` atau `None`) : Variabel lingkungan rahasia dari Job (terenkripsi).

flavor (`str` atau `None`) : Flavor untuk perangkat keras. Lihat `JobHardware` untuk nilai yang mungkin. Contoh: `"cpu-basic"`.

labels (`dict[str, str]` atau `None`) : Label yang akan dilampirkan ke job (pasangan kunci-nilai).

volumes (`list[Volume]` atau `None`) : Volume yang dipasang di kontainer job (bucket, model, dataset, spaces).

status : (`JobStatus` atau `None`): Status dari Job, misalnya `JobStatus(stage="RUNNING", message=None)` Lihat [JobStage](/docs/huggingface_hub/v2.4.0/id/package_reference/jobs#huggingface_hub.JobStage) untuk nilai stage yang mungkin.

durations (`JobDurations` atau `None`) : Rincian waktu dari Job. Ada untuk semua status job termasuk SCHEDULING.

owner : (`JobOwner` atau `None`): Pemilik Job, misalnya `JobOwner(id="5e9ecfc04957053f60648a3e", name="lhoestq", type="user")`

initiator (`JobInitiator` atau `None`) : Pemicu Job, misalnya `JobInitiator(type="scheduled-job", id="...")` untuk eksekusi yang dipicu oleh cron.

expose_urls (`list[str]` atau `None`) : URL publik yang dapat digunakan untuk mengakses port yang diekspos oleh Job (satu URL per port yang diekspos), misalnya `["https://687fb701029421ae5549d998--8000.hf.jobs"]`. Nilainya `None` jika tidak ada port yang diekspos. Mengakses URL memerlukan token HF dengan akses baca ke namespace Job, kecuali port tersebut bersifat publik.

ssh_url (`str` atau `None`) : Endpoint SSH dari Job, misalnya `"ssh://687fb701029421ae5549d998@ssh.hf.jobs"`. Hanya ada ketika Job dimulai dengan `ssh=True`. Koneksi memerlukan akses tulis ke namespace Job dan kunci publik SSH yang terdaftar di Hub (https://huggingface.co/settings/keys).

network (`JobNetwork` atau `None`) : Grup jaringan yang diikuti oleh Job beserta alias yang diklaimkannya, misalnya `JobNetwork(group="train", aliases=["master"])`. `None` ketika Job dimulai tanpa `network_group=`.

retry (`int` atau `None`) : Jumlah percobaan ulang yang dikonfigurasi untuk Job (`attempts - 1`).

expose (`list[int]` atau `None`) : Semua port yang diekspos melalui proxy Jobs, termasuk yang bersifat publik.

expose_public (`list[int]` atau `None`) : Port yang terbuka dan dapat diakses tanpa autentikasi.

Berisi informasi tentang sebuah Job.

Contoh:

```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)
```

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L116)

### JobNetwork[[huggingface_hub.JobNetwork]]

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

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

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L123)

**Parameter:**

group (`str`) : Nama grup jaringan, sebagaimana yang diteruskan ke `network_group=`.

aliases (`list[str]`) : Alias Job yang diklaim dalam grup, sebagaimana diteruskan ke `network_aliases=`. Kosong jika tidak ada.

Grup jaringan a Job bergabung.

### 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)
```

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L71)

Enumerasi kemungkinan tahap sebuah Job di Hub.

Value dapat dibandingkan dengan string:
```py
assert JobStage.COMPLETED == "COMPLETED"
```

Nilai yang mungkin adalah: `COMPLETED`, `CANCELED`, `ERROR`, `DELETED`, `SCHEDULING`, `RUNNING`. Diambil dari https://github.com/huggingface/moon-landing/blob/main/server/job_types/JobInfo.ts#L61 (url privat).

### 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)
```

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L108)

### Volume[[huggingface_hub.Volume]]

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

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

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L128)

**Parameter:**

type (`str`) : Jenis volume: `"bucket"`, `"model"`, `"dataset"`, atau `"space"`.

source (`str`) : Pengidentifikasi sumber, misalnya `"username/my-bucket"` atau `"username/my-model"`.

mount_path (`str`) : Jalur mount di dalam kontainer, misalnya `"/data"`. Harus diawali dengan `/`.

revision (`str` atau `None`) : revisi Git (hanya untuk repos, defaultnya `"main"`).

read_only (`bool` atau `None`) : Mount hanya-baca. Dipaksa `True` untuk repos, default `False` untuk bucket.

path (`str` atau `None`) : Prefiks subfolder di dalam bucket/repo untuk di-mount, misalnya `"path/to/dir"`.

Menggambarkan volume yang akan dipasang dalam kontainer Space atau Job.

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

```python
to_dict()
```

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L164)

Serialisasi ke payload JSON yang diharapkan oleh API Hub.

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

```python
to_uri()
```

[Sumber](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L179)

Kembalikan volume sebagai URI mount HF dalam format yang diharapkan oleh CLI.

