Trackio documentation

Python API для управления запусками

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Python API для управления запусками

Trackio предоставляет класс Python API (trackio.Api()), который позволяет программно управлять запусками в ваших проектах. Этот API похож на wandb.Api() и предоставляет методы для удаления запусков, перемещения запусков между проектами и доступа к информации о запусках.

Примечание: Это отличается от Trackio в качестве API-сервера, который запускает дашборд Trackio как веб-сервер с API-эндпоинтами. Python API (trackio.Api()) — это клиентский интерфейс для управления запусками в вашей локальной базе данных Trackio.

Базовое использование

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]

Удаление запусков

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

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

Перемещение запусков между проектами

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"

При перемещении запуска все связанные данные переносятся:

  • Все метрики и журналы
  • Конфигурация запуска
  • Системные метрики
  • Медиафайлы (изображения, видео, аудио)

Запуск полностью удаляется из исходного проекта и добавляется в целевой проект.

Справочник API

Api

Основная точка входа для Python API Trackio.

api = trackio.Api()

Методы

  • runs(project: str) -> Runs: Возвращает коллекцию запусков для указанного проекта. Вызывает ValueError, если проект не существует.

Запуски

Коллекция запусков, поддерживающая итерацию и индексацию.

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

Запустить

Представляет один запуск в проекте.

Свойства

  • id: стабильный идентификатор запуска, используемый внутри Trackio
  • name: Имя запуска, понятное человеку. Несколько запусков могут иметь одинаковое имя.
  • project: проект, к которому относится этот запуск
  • config: словарь конфигурации запуска (загружается лениво)

Примечание: Несколько запусков могут иметь одинаковое name, так как Trackio использует идентификатор id для их внутренней дифференциации.

Методы

  • delete() -> bool: Удаляет run из проекта. Возвращает True при успешном выполнении, False в противном случае.
  • move(new_project: str) -> bool: Перемещает run в другой проект. Возвращает True при успешном выполнении, False в противном случае. Обновляет свойство project run после успешного перемещения.

Примеры

Список всех запусков во всех проектах

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

Удаление старых запусков

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

Организуйте эксперименты, перемещая их

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