Trackio documentation

واجهة برمجة تطبيقات بايثون لإدارة التشغيلات

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

واجهة برمجة تطبيقات بايثون لإدارة التشغيلات

توفر Trackio فئة واجهة برمجة تطبيقات بلغة بايثون (trackio.Api()) تتيح لك إدارة التشغيلات في مشاريعك برمجياً. تشبه هذه الواجهة wandb.Api() وتوفر طرقاً لحذف التشغيلات، ونقلها بين المشاريع، والوصول إلى معلومات التشغيل.

ملاحظة: يختلف هذا عن Trackio كخادم واجهة برمجة تطبيقات، الذي يعمل لوحة تحكم Trackio كخادم ويب مع نقاط نهاية لواجهة برمجة التطبيقات. أما واجهة برمجة التطبيقات بلغة بايثون (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"

عند نقل تشغيل، يتم نقل جميع البيانات المرتبطة به:

  • جميع المقاييس والسجلات
  • إعدادات التشغيل
  • مقاييس النظام
  • ملفات الوسائط (الصور، مقاطع الفيديو، الصوت)

يتم حذف التشغيل بالكامل من المشروع المصدر وإضافته إلى المشروع الهدف.

مرجع الواجهة البرمجية

واجهة برمجة التطبيقات

نقطة الدخول الرئيسية لواجهة برمجة تطبيقات 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: يحذف التشغيل من مشروعه. يعيد True إذا نجح، وFalse في حال العكس.
  • move(new_project: str) -> bool: ينقل التشغيل إلى مشروع مختلف. يعيد True في حال نجاح العملية، وFalse في حال العكس. يحدّث خاصية project الخاصة بالتشغيل بعد نجاح النقل.

أمثلة

List all runs across projects

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