# Despliegue e integración de paneles

## Despliegue en Hugging Face Spaces

Al llamar a [init()](/docs/trackio/v0.45.0/es/api#trackio.init), por defecto el servicio se ejecuta localmente y almacena los datos del proyecto en la máquina local.

Pero si pasas un `space_id` a [init()](/docs/trackio/v0.45.0/es/api#trackio.init), como:

```py
trackio.init(project="my-project", space_id="orgname/space_id")
```

o

```py
trackio.init(project="my-project", space_id="username/space_id")
```

utilizará un espacio de Hugging Face existente o desplegará automáticamente uno nuevo según sea necesario. Debes haber iniciado sesión con `huggingface-cli` localmente y tu token debe tener permisos de escritura para crear el espacio.

## Sincronizar proyectos locales con Spaces

Si has estado registrando localmente y quieres subir tus datos a un Space después, usa `sync`:

```py
trackio.sync(project="my-project", space_id="username/space_id")
```

O desde la CLI:

```sh
trackio sync --project "my-project" --space-id "username/space_id"
```

Por defecto, `sync` despliega un **Gradio Space** con un servidor en vivo. También puedes desplegar un **static Space** que lee desde un HF Bucket (no se necesita servidor):

```py
trackio.sync(project="my-project", space_id="username/space_id", sdk="static")
```

```sh
trackio sync --project "my-project" --space-id "username/space_id" --sdk static
```

Los Spaces estáticos son ligeros y gratuitos: sirven un panel de solo lectura respaldado por archivos Parquet en un HF Bucket. Dado que el panel se ejecuta por completo en el navegador, los Spaces de Trackio estáticos requieren datos de instantánea públicos y no admiten `private=True`. Utilice el Space de Gradio predeterminado (`sdk="gradio"`) para paneles privados.

## Congelar una instantánea de un Space

Si tienes un Space de Gradio en vivo y quieres crear una copia estática de solo lectura de los datos de un proyecto, usa `freeze`:

```py
trackio.freeze(space_id="username/my-space", project="my-project")
```

O desde la CLI:

```sh
trackio freeze --space-id "username/my-space" --project "my-project"
```

Esto crea un nuevo Space estático (con el nombre predeterminado `{space_id}_static`) que contiene una instantánea de los datos del proyecto desde el bucket del Space de origen. El Space original no se modifica.

Tenga en cuenta que `freeze()` es una instantánea de un solo uso. Si más tarde se suben nuevas métricas al Gradio Space original, el Gradio Space estático congelado no se actualizará automáticamente. El Gradio Space de origen puede usar un bucket privado, pero la instantánea estática congelada es un dato público. `freeze(private=True)` no está admitido; use un Gradio Space si el panel congelado debe permanecer privado.

Puedes personalizar el destino:

```py
trackio.freeze(
    space_id="username/my-space",
    project="my-project",
    new_space_id="username/my-snapshot",
)
```

> **Nota:** `freeze()` requiere que la fuente sea un Gradio Space con un bucket montado en `/data`. Si el Space de destino ya existe y no es un Space estático de Trackio, `freeze()` se negará a sobrescribirlo.

## Incorporar un panel de Trackio

Una de las razones por las que creamos `trackio` fue facilitar la incorporación de paneles de control en vivo en sitios web, publicaciones de blogs o cualquier otro lugar donde se pueda incrustar un sitio web.

![image](https://github.com/user-attachments/assets/77f1424b-737b-4f04-b828-a12b2c1af4ef)

Si tu panel de Trackio está alojado en Spaces, puedes incrustarlo en cualquier lugar mediante un `<iframe>`:

```html
<iframe src="https://username-space_id.hf.space"></iframe>
```

También puede filtrar el panel para mostrar solo proyectos o métricas específicas mediante parámetros de consulta. Los parámetros admitidos incluyen:

* `project` (string): Muestra solo un proyecto específico.
* `metrics` (lista separada por comas): Muestra solo métricas específicas, p. ej., `train_loss,train_accuracy`.
* `sidebar` (string, `"auto"`, `"visible"`, `"collapsed"` o `"hidden"`):

  * `"auto"` abre o contrae la barra lateral en función del ancho del viewport y es el valor predeterminado.
  * `"visible"` comienza con la barra lateral completamente abierta.
  * `"collapsed"` comienza solo con el riel estrecho.
  * `"hidden"` oculta la barra lateral por completo.

  Los modos explícitos no se modifican cuando se redimensiona el área de visualización.
* `footer` (string, `"false"`): Cuando se establece en `"false"`, oculta el pie de página de Gradio. De forma predeterminada, el pie de página es visible.
* `xmin` (número): Establece el valor mínimo inicial para los límites del eje x en todos los gráficos de métricas.
* `xmax` (número): Establece el valor máximo inicial para los límites del eje x en todos los gráficos de métricas.
* `smoothing` (número): Establece el valor inicial del control deslizante de suavizado (0-20, donde 0 = sin suavizado).
* `plots_per_row` (`auto` o un entero de 1 a 6): Establece el valor inicial del control **Plots per row**. El valor predeterminado es `auto`, que ajusta los gráficos al ancho disponible.
* `accordion` (string, `"hidden"`): Cuando se establece en `"hidden"`, oculta los acordeones de encabezado de sección alrededor de los grupos de métricas. De forma predeterminada, los encabezados de sección son visibles.

Puedes personalizar tu `<iframe>` utilizando atributos estándar como `width`, `height` y `style`. Para más detalles, consulta [MDN Web Docs: `<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe). Por ejemplo:

```html
<iframe 
    src="https://trackio-documentation.hf.space/?project=my-project&metrics=train_loss,train_accuracy&sidebar=hidden" 
    width="600" 
    height="630" 
    style="border:0;">
</iframe>
```

<iframe 
    src="https://trackio-documentation.hf.space/?project=my-project&metrics=train_loss,train_accuracy&sidebar=hidden" 
    width="600" 
    height="630" 
    style="border:0;">

