Trackio documentation

API em Python para Gerenciar Execuções

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

API em Python para Gerenciar Execuções

O Trackio fornece uma classe de API em Python (trackio.Api()) que permite gerenciar programaticamente execuções em seus projetos. Esta API é semelhante à wandb.Api() e fornece métodos para excluir execuções, mover execuções entre projetos e acessar informações de execução.

Observação: Isso é diferente de Trackio como um Servidor de API, que executa o dashboard do Trackio como um servidor web com endpoints de API. A API em Python (trackio.Api()) é uma interface do lado do cliente para gerenciar execuções no seu banco de dados local do 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]

Excluindo Execuções

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

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

Movendo Execuções Entre Projetos

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"

Ao mover uma execução, todos os dados associados são transferidos:

  • Todas as métricas e logs
  • Configuração de execução
  • Métricas do sistema
  • Arquivos de mídia (imagens, vídeos, áudio)

A execução é removida completamente do projeto de origem e adicionada ao projeto de destino.

Referência da API

Api

Ponto de entrada principal da API Python do Trackio.

api = trackio.Api()

Métodos

  • runs(project: str) -> Runs: Retorna uma coleção de execuções para o projeto especificado. Lança ValueError se o projeto não existir.

Execuções

Uma coleção de execuções que suporta iteração e indexação.

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

Executar

Representa uma única execução em um projeto.

Propriedades

  • id: O identificador estável de execução usado internamente pelo Trackio
  • name: O nome legível da execução. Várias execuções podem compartilhar o mesmo nome.
  • project: O projeto ao qual esta execução pertence
  • config: Dicionário de configuração da execução (carregado sob demanda)

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

Métodos

  • delete() -> bool: Remove a execução do seu projeto. Retorna True em caso de sucesso, False caso contrário.
  • move(new_project: str) -> bool: Move a execução para um projeto diferente. Retorna True em caso de sucesso, False caso contrário. Atualiza a propriedade project da execução após um movimento bem-sucedido.

Exemplos

Listar todas as execuções entre os projetos

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

Limpar execuções antigas

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

Organize execuções movendo-as

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