Trackio documentation

API de Python para gestionar ejecuciones

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

API de Python para gestionar ejecuciones

Trackio proporciona una clase de API de Python (trackio.Api()) que permite gestionar ejecuciones en tus proyectos de forma programática. Esta API es similar a wandb.Api() y ofrece métodos para eliminar ejecuciones, mover ejecuciones entre proyectos y acceder a la información de las ejecuciones.

Nota: Esto es diferente de Trackio como servidor de API, que ejecuta el panel de Trackio como un servidor web con puntos finales de API. La API de Python (trackio.Api()) es una interfaz del lado del cliente para gestionar ejecuciones en tu base de datos local de Trackio.

Uso básico

import trackio

# Initialize the API
api = trackio.Api()

# Get all runs in a project
runs = api.runs("my_project")

# Access individual runs
for run in runs:
    print(f"Run: {run.name}, Project: {run.project}")
    print(f"Config: {run.config}")

# Or access by index
first_run = runs[0]

Eliminación de ejecuciones

api = trackio.Api()
runs = api.runs("my_project")

# Delete a specific run
run = runs[0]
success = run.delete()  # Returns True if successful

Mover ejecuciones entre proyectos

api = trackio.Api()
runs = api.runs("source_project")

# Move a run to a different project
run = runs[0]
success = run.move("target_project")  # Returns True if successful

# After moving, the run object's project is updated
print(run.project)  # "target_project"

Al mover una ejecución, se transfiere todos los datos asociados:

  • Todas las métricas y registros
  • Configuración de ejecución
  • Métricas del sistema
  • Archivos multimedia (imágenes, vídeos, audio)

La ejecución se elimina por completo del proyecto de origen y se añade al proyecto de destino.

Referencia de la API

Api

Punto de entrada principal de la API de Python de Trackio.

api = trackio.Api()

Métodos

  • runs(project: str) -> Runs: Devuelve una colección de ejecuciones para el proyecto especificado. Lanza ValueError si el proyecto no existe.

Ejecuciones

Una colección de ejecuciones que admite iteración e indexación.

runs = api.runs("my_project")
len(runs)  # Number of runs
runs[0]    # First run
for run in runs:  # Iterate over runs
    ...

Ejecutar

Representa una única ejecución en un proyecto.

Propiedades

  • id: El identificador de ejecución estable que Trackio utiliza internamente
  • name: El nombre de la ejecución legible por humanos. Varias ejecuciones pueden compartir el mismo nombre.
  • project: El proyecto al que pertenece esta ejecución
  • config: Diccionario de configuración de la ejecución (carga diferida)

Note: Multiple runs can share the same name, as Trackio will use the id identifier to disambiguate them internally.

Métodos

  • delete() -> bool: Elimina la ejecución de su proyecto. Devuelve True si se realiza con éxito, False en caso contrario.
  • move(new_project: str) -> bool: Mueve la ejecución a un proyecto diferente. Devuelve True si tiene éxito, False en caso contrario. Actualiza la propiedad project de la ejecución tras un movimiento exitoso.

Ejemplos

Listar todas las ejecuciones en todos los proyectos

import trackio
from trackio.sqlite_storage import SQLiteStorage

api = trackio.Api()

# Get all projects
projects = SQLiteStorage.get_projects()

# List runs in each project
for project in projects:
    print(f"\nProject: {project}")
    runs = api.runs(project)
    for run in runs:
        print(f"  - {run.name}")

Limpieza de ejecuciones antiguas

api = trackio.Api()
runs = api.runs("my_project")

# Delete runs older than a certain date
from datetime import datetime
cutoff_date = datetime(2024, 1, 1)

for run in runs:
    if run.config and "_Created" in run.config:
        created = datetime.fromisoformat(run.config["_Created"])
        if created < cutoff_date:
            run.delete()
            print(f"Deleted old run: {run.name}")

Organiza las ejecuciones moviéndolas

api = trackio.Api()

# Move all runs from "experiments" to "archive"
source_runs = api.runs("experiments")
for run in source_runs:
    run.move("archive")
    print(f"Moved {run.name} to archive")
Update on GitHub