Trackio documentation
API de Python para gestionar ejecuciones
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 successfulMover 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. LanzaValueErrorsi 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 internamentename: El nombre de la ejecución legible por humanos. Varias ejecuciones pueden compartir el mismo nombre.project: El proyecto al que pertenece esta ejecuciónconfig: 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. DevuelveTruesi se realiza con éxito,Falseen caso contrario.move(new_project: str) -> bool: Mueve la ejecución a un proyecto diferente. DevuelveTruesi tiene éxito,Falseen caso contrario. Actualiza la propiedadprojectde 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")