# Jobs

Consulte la página de documentación de [HfApi](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi) para obtener la referencia de los métodos para gestionar sus Jobs en el Hub.

- Ejecutar un trabajo: [run_job()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.run_job)
- Obtener registros: [fetch_job_logs()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_logs)
- Obtener métricas: [fetch_job_metrics()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_metrics)
- Inspeccionar trabajo: [inspect_job()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.inspect_job)
- Esperar a que el/los Job finalicen: [wait_for_job()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job)
- Listar trabajos: [list_jobs()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.list_jobs)
- Cancelar trabajo: [cancel_job()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.cancel_job)
- Ejecutar un trabajo de UV: [run_uv_job()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.run_uv_job)
- Sincronice un directorio local para montarlo en un Job: [sync_job_volume()](/docs/huggingface_hub/v2.4.0/es/package_reference/hf_api#huggingface_hub.HfApi.sync_job_volume)

## Estructuras de datos

### JobInfo[[huggingface_hub.JobInfo]]

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

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

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

**Parámetros:**

id (`str`) : ID del trabajo.

created_at (`datetime` o `None`) : Cuando se creó el Job.

started_at (`datetime` o `None`) : Cuando el Job comenzó a ejecutarse. None mientras el Job sigue en programación.

finished_at (`datetime` o `None`) : Cuando el Job terminó. None mientras el Job sigue en programación o en ejecución.

docker_image (`str` o `None`) : La imagen de Docker de Docker Hub utilizada para el Job. Puede ser None si en su lugar está presente space_id.

space_id (`str` o `None`) : La imagen de Docker de Hugging Face Spaces utilizada para el Job. Puede ser None si en su lugar está presente docker_image.

command (`list[str]` o `None`) : Comando del Job, p. ej. `["python", "-c", "print('hello world')"]`

arguments (`list[str]` o `None`) : Argumentos pasados al comando

environment (`dict[str]` o `None`) : Variables de entorno del Job como un diccionario.

secrets (`dict[str]` o `None`) : Variables de entorno secretas del Job (cifradas).

flavor (`str` o `None`) : Sabor para el hardware. Consulte `JobHardware` para los valores posibles. Por ejemplo, `"cpu-basic"`.

labels (`dict[str, str]` o `None`) : Etiquetas para adjuntar al trabajo (pares clave-valor).

volumes (`list[Volume]` o `None`) : Volúmenes montados en el contenedor del trabajo (buckets, modelos, conjuntos de datos, espacios).

status : (`JobStatus` o `None`): Estado del Job, p. ej. `JobStatus(stage="RUNNING", message=None)` Consulte [JobStage](/docs/huggingface_hub/v2.4.0/es/package_reference/jobs#huggingface_hub.JobStage) para los posibles valores de etapa.

durations (`JobDurations` o `None`) : Desglose de tiempos del Job. Presente en todos los estados del job, incluido SCHEDULING.

owner : (`JobOwner` o `None`): Propietario del Job, p. ej. `JobOwner(id="5e9ecfc04957053f60648a3e", name="lhoestq", type="user")`

initiator (`JobInitiator` o `None`) : Qué activó el Job, por ejemplo, `JobInitiator(type="scheduled-job", id="...")` para una ejecución activada por cron.

expose_urls (`list[str]` o `None`) : URLs públicas a través de las cuales se pueden alcanzar los puertos expuestos del Job (uno por cada puerto expuesto), p. ej. `["https://687fb701029421ae5549d998--8000.hf.jobs"]`. `None` cuando no se expone ningún puerto. El acceso a una URL requiere un token de HF con acceso de lectura al namespace del Job, a menos que el puerto sea público.

ssh_url (`str` o `None`) : punto final SSH del Job, p. ej. `"ssh://687fb701029421ae5549d998@ssh.hf.jobs"`. Solo está presente cuando el Job se inició con `ssh=True`. Para conectar se requiere acceso de escritura al espacio de nombres del Job y una clave pública SSH registrada en el Hub (https://huggingface.co/settings/keys).

network (`JobNetwork` o `None`) : Grupo de red al que se unió el Job y los alias que reclama, p. ej. `JobNetwork(group="train", aliases=["master"])`. `None` cuando el Job se inició sin `network_group=`.

retry (`int` o `None`) : Número de reintentos configurados para el Job (`attempts - 1`).

expose (`list[int]` o `None`) : Todos los puertos expuestos a través del proxy de Jobs, incluidos los públicos.

expose_public (`list[int]` o `None`) : Puertos expuestos accesibles sin autenticación.

Contiene información sobre un Job.

Ejemplo:

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

[Fuente](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)
```

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

**Parámetros:**

group (`str`) : Nombre del grupo de red, tal como se pasó a `network_group=`.

aliases (`list[str]`) : Alias que reclama el Job en el grupo, tal como se pasó a `network_aliases=`. Vacío cuando no hay ninguno.

Grupo de red: un trabajo se unió.

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

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

Enumeración de las posibles etapas de un Job en el Hub.

Value se puede comparar con una cadena:
```py
assert JobStage.COMPLETED == "COMPLETED"
```

Los valores posibles son: `COMPLETED`, `CANCELED`, `ERROR`, `DELETED`, `SCHEDULING`, `RUNNING`. Tomado de https://github.com/huggingface/moon-landing/blob/main/server/job_types/JobInfo.ts#L61 (url privada).

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

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

### Volumen[[huggingface_hub.Volume]]

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

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

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

**Parámetros:**

type (`str`) : Tipo de volumen: `"bucket"`, `"model"`, `"dataset"` o `"space"`.

source (`str`) : Identificador de origen, p. ej. `"username/my-bucket"` o `"username/my-model"`.

mount_path (`str`) : Ruta de montaje dentro del contenedor, p. ej. `"/data"`. Debe comenzar con `/`.

revision (`str` o `None`) : Revisión de Git (solo para repositorios, por defecto `"main"`).

read_only (`bool` o `None`) : Montaje de solo lectura. Forzado a `True` para repositorios, predeterminado a `False` para cubos.

path (`str` o `None`) : Prefijo de subcarpeta dentro del bucket/repo para montar, p. ej. `"path/to/dir"`.

Describe un volumen para montar en un contenedor de Space o Job.

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

```python
to_dict()
```

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

Serializa en el payload JSON esperado por la API de Hub.

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

```python
to_uri()
```

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

Devuelve el volumen como una URI de montaje de HF en el formato esperado por la CLI.

