# ジョブ

Hub上のJobsを管理するためのメソッドの参考情報については、[HfApi](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi)のドキュメントページを確認してください。

- ジョブの実行: [run_job()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.run_job)
- ログの取得: [fetch_job_logs()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_logs)
- メトリクスを取得: [fetch_job_metrics()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_metrics)
- ジョブの検査: [inspect_job()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.inspect_job)
- ジョブの完了を待機: [wait_for_job()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job)
- ジョブのリスト表示: [list_jobs()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.list_jobs)
- ジョブのキャンセル: [cancel_job()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.cancel_job)
- UVジョブの実行: [run_uv_job()](/docs/huggingface_hub/v2.4.0/ja/package_reference/hf_api#huggingface_hub.HfApi.run_uv_job)
- ジョブにマウントするためにローカルディレクトリを同期します: [sync_job_volume()](/docs/huggingface_hub/v2.4.0/ja/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/v2.4.0/src/huggingface_hub/_jobs_api.py#L186)

**パラメータ:**

id (`str`) : ジョブID。

created_at (`datetime` または `None`) : Job が作成された日時。

started_at (`datetime` または `None`) : Job が実行を開始した時刻。Job がまだスケジューリング中の場合は None です。

finished_at (`datetime` または `None`) : Job が完了した時刻。Job がまだスケジューリング中または実行中の場合は None です。

docker_image (`str` or `None`) : The Docker image from Docker Hub used for the Job. Can be None if space_id is present instead.

space_id (`str` または `None`) : Job に使用される Hugging Face Spaces の Docker イメージです。代わりに docker_image が存在する場合は None にできます。

command (`list[str]` または `None`) : Job のコマンド。例: `["python", "-c", "print('hello world')"]`

arguments (`list[str]` または `None`) : コマンドに渡される引数

environment (`dict[str]` または `None`) : Job の環境変数を辞書として表したもの。

secrets (`dict[str]` または `None`) : Job のシークレット環境変数（暗号化済み）。

flavor (`str` または `None`) : ハードウェアのタイプ。`JobHardware` を参照してください。例: `"cpu-basic"`。

labels (`dict[str, str]` または `None`) : ジョブに付与するラベル（キーと値のペア）。

volumes (`list[Volume]` または `None`) : ジョブのコンテナにマウントされているボリューム (バケット、モデル、データセット、スペース)。

status : (`JobStatus` または `None`): Job のステータス。例: `JobStatus(stage="RUNNING", message=None)` 可能なステージの値については [JobStage](/docs/huggingface_hub/v2.4.0/ja/package_reference/jobs#huggingface_hub.JobStage) を参照してください。

durations (`JobDurations` または `None`) : Job のタイミングの分解。SCHEDULING を含むすべての Job 状態で存在します。

owner : (`JobOwner` または `None`): Job の所有者。例: `JobOwner(id="5e9ecfc04957053f60648a3e", name="lhoestq", type="user")`

initiator (`JobInitiator` または `None`) : Job をトリガーした要因。例: cron によるトリガー実行の場合は `JobInitiator(type="scheduled-job", id="...")`

expose_urls (`list[str]` または `None`) : Job の公開ポートにアクセスできるパブリック URL のリスト（公開ポートごとに 1 つ）です。例: `["https://687fb701029421ae5549d998--8000.hf.jobs"]`。ポートが公開されていない場合は `None` になります。ポートがパブリックでない限り、URL にアクセスするには、Job の名前空間に対する読み取りアクセス権限を持つ HF トークンが必要です。

ssh_url (`str` または `None`) : Job の SSH エンドポイントです。例: `"ssh://687fb701029421ae5549d998@ssh.hf.jobs"`。Job が `ssh=True` で起動された場合のみ存在します。接続には、Job の namespace への書き込みアクセス権と、Hub に登録された SSH 公開鍵が必要です (https://huggingface.co/settings/keys)。

network (`JobNetwork` または `None`) : Job が参加したネットワークグループと、そのグループが主張するエイリアスです。例: `JobNetwork(group="train", aliases=["master"])`。Job が `network_group=` なしで開始された場合は `None` になります。

retry (`int` または `None`) : Job に設定されたリトライ回数 (`attempts - 1`)。

expose (`list[int]` または `None`) : Jobs プロキシを介して公開されるすべてのポート（パブリックなポートを含む）。

expose_public (`list[int]` または `None`) : 認証なしでアクセス可能な公開ポート。

Jobに関する情報を含みます。

例:

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

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

**パラメータ:**

group (`str`) : `network_group=` に渡されたネットワークグループの名前。

aliases (`list[str]`) : グループ内で Job が要求するエイリアスです。`network_aliases=` に渡されたものと同じです。指定がない場合は空です。

Network group a 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/v2.4.0/src/huggingface_hub/_jobs_api.py#L71)

Hub上のJobの可能なステージの列挙。

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 (非公開URL) より引用。

### 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/v2.4.0/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/v2.4.0/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"`。

SpaceまたはJobのコンテナにマウントするボリュームを説明します。

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

```python
to_dict()
```

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

Hub APIが期待するJSONペイロードにシリアライズします。

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

```python
to_uri()
```

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

CLIが期待する形式で、ボリュームをHFマウントURIとして返します。

