Trackio documentation

API Python pour la gestion des exécutions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

API Python pour la gestion des exécutions

Trackio fournit une classe d’API Python (trackio.Api()) qui vous permet de gérer les exécutions de vos projets de manière programmatique. Cette API est similaire à wandb.Api() et propose des méthodes pour supprimer des exécutions, les déplacer entre les projets et accéder aux informations d’exécution.

Remarque : Cela diffère de Trackio en tant que serveur API, qui exécute le tableau de bord Trackio en tant que serveur web avec des points de terminaison API. L'API Python (trackio.Api()) est une interface côté client pour gérer les exécutions dans votre base de données Trackio locale.

Utilisation de base

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]

Suppression des exécutions

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

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

Déplacer des exécutions entre les projets

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"

Lorsque vous déplacez une exécution, toutes les données associées sont transférées :

  • Toutes les métriques et journaux
  • Configuration d'exécution
  • Métriques système
  • Fichiers multimédias (images, vidéos, audio)

L'exécution est complètement supprimée du projet source et ajoutée au projet cible.

Référence de l'API

Api

Point d'entrée principal de l'API Python de Trackio.

api = trackio.Api()

Méthodes

  • runs(project: str) -> Runs : Renvoie une collection d’exécutions pour le projet spécifié. Lève ValueError si le projet n’existe pas.

Exécutions

Une collection d'exécutions qui prend en charge l'itération et l'indexation.

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

Exécuter

Représente une exécution unique dans un projet.

Propriétés

  • id : identificateur stable d'exécution utilisé en interne par Trackio
  • name : Nom de l'exécution lisible par un humain. Plusieurs exécutions peuvent partager le même nom.
  • project : le projet auquel cette exécution appartient
  • config : le dictionnaire de configuration de l'exécution (chargement différé)

Note : Plusieurs exécutions peuvent partager le même name, car Trackio utilise l'identifiant id pour les distinguer en interne.

Méthodes

  • delete() -> bool : Supprime l'exécution de son projet. Renvoie True en cas de succès, False sinon.
  • move(new_project: str) -> bool : Déplace l’exécution vers un autre projet. Renvoie True en cas de succès, False sinon. Met à jour la propriété project de l’exécution après un déplacement réussi.

Exemples

Lister toutes les exécutions à travers les projets

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}")

Nettoyer les anciennes exécutions

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}")

Organiser les exécutions en les déplaçant

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