API 참조
실행
클래스 trackio.Run
< source >( url: str | Noneproject: strclient: typing.Optional[typing.Any]name: str | None = Nonerun_id: str | None = Nonegroup: str | None = Noneconfig: dict | None = Nonespace_id: str | None = Nonebucket_id: str | None = Noneserver_base_url: str | None = Nonewrite_token: str | None = Noneexisting_runs: list[str] | None = Noneinitial_last_step: int | None = Noneauto_log_gpu: bool = Falsegpu_log_interval: float = 10.0auto_log_cpu: bool = Falsecpu_log_interval: float = 10.0webhook_url: str | None = Nonewebhook_min_level: trackio.alerts.AlertLevel | str | None = Nonecapture_console: bool = False )
링크 아티팩트
< source >( artifact: Artifacttarget_path: straliases: list[str] | None = Nonebucket_id: str | None = None )
매개변수
- artifact (
Artifact) — 연결할 artifact 버전입니다. 기록되었거나 가져온Artifact여야 합니다. 특정 기존 버전을 연결하려면 먼저use_artifact("my-model:v3")로 가져온 후 결과를 연결하세요. 한 번도 기록되지 않은 artifact는 먼저 이 run의 프로젝트에 기록됩니다. - target_path (
str) — 연결할 컬렉션으로,"registry-<registry>/<collection>"형식입니다. 예를 들어"registry-models/my-model"과 같습니다. 레지스트리는 이미 존재해야 합니다(trackio.Api().create_registry참조). 컬렉션은 첫 번째 연결 시 생성되며 아티팩트의 유형을 채택합니다. 이후 연결은 해당 유형과 일치해야 합니다. - aliases (
list[str], 선택) — 링크된 버전에 할당할 별칭입니다. 예:["staging"]. 별칭은 컬렉션당 하나의 버전을 가리키므로, 다른 버전에 이미 할당된 별칭을 할당하면 해당 별칭이 이동합니다.latest는 자동으로 관리되며 항상 최신 링크된 버전을 따릅니다. 여기에 전달해도 아무 효과가 없습니다. - bucket_id (
str, 선택) — 레지스트리를 저장하는 Hugging Face 버킷, 예:"my-org/models-registry". Space 또는 자체 호스팅 서버에 로깅하는 실행에서 링크하려면 필수입니다. 로컬 레지스트리의 경우 생략하며,TRACKIO_REGISTRY_BUCKET_ID가 설정된 경우 해당 값이 기본값으로 사용됩니다.
레지스트리 컬렉션에 아티팩트 버전을 연결합니다.
링크는 소스 버전으로의 포인터입니다: 파일은 복사되지 않습니다. 링크는 컬렉션 내의 다음 버전 번호(v0, v1, …)를 부여받으며, 이는 소스 아티팩트 자체의 버전 번호와 무관합니다. 이미 컬렉션에 있는 버전을 링크하면 새로운 버전이 생성되지 않습니다: 기존 버전이 반환되며, 전달하는 aliases는 여전히 이동합니다.
로컬 레지스트리는 실행(run)의 데이터와 함께 링크를 기록하므로, 이 기계의 실행에서만 사용할 수 있습니다. 대신 버킷 기반 레지스트리에 게시하려면 bucket_id를 전달하세요. Space나 자체 호스팅 서버에 로깅하는 실행도 버킷이 양쪽에서 모두 접근 가능하기 때문에 동일한 방식으로 게시합니다.
use_artifact
< source >( artifact_or_name: trackio.artifact.Artifact | strtype: str | None = None )
아티팩트를 해결하고 이 실행을 해당 아티팩트의 소비자(consumer)로 기록합니다.
spec은 프로젝트 산출물("name", "name:vN", "name:alias") 또는 레지스트리 위치("registry-<registry>/<collection>[:vN|:alias]")입니다. 레지스트리 위치의 경우, collection의 링크를 통해 해당 링크가 가리키는 소스 버전으로 해석됩니다.
init
trackio.init
< source >( project: strname: str | None = Nonegroup: str | None = Nonespace_id: str | None = Noneserver_url: str | None = Nonedataset_id: str | None = Nonebucket_id: str | None = Noneconfig: dict | None = Noneresume: str = 'never'settings: typing.Any = Noneprivate: bool | None = Noneembed: bool = Trueauto_log_gpu: bool | None = Nonegpu_log_interval: float = 10.0auto_log_cpu: bool | None = Nonecpu_log_interval: float = 10.0webhook_url: str | None = Nonewebhook_min_level: trackio.alerts.AlertLevel | str | None = Nonecapture_console: bool | None = None ) → Run
매개변수
- project (str) — 프로젝트의 이름 (추적을 계속할 기존 프로젝트이거나 처음부터 추적을 시작할 새 프로젝트일 수 있습니다).
- name (str, 선택 사항) — 실행 이름(제공하지 않으면 기본 이름이 생성됩니다).
- group (str, 선택 사항) — 이 실행이 속한 그룹의 이름입니다. 관련 실행을 함께 정리하는 데 도움이 됩니다. 대시보드에서 해당 그룹 전체의 표시 여부를 전환할 수 있습니다.
- space_id (str, 선택 사항) —
지정된 경우, 프로젝트는 로컬 디렉터리 대신 Hugging Face Space에 기록됩니다. “username/reponame” 또는 “orgname/reponame”와 같은 완전한 Space 이름이거나, “reponame”만 지정할 수도 있으며 이 경우 Space가 현재 로그인된 Hugging Face 사용자의 네임스페이스에 생성됩니다. Space가 존재하지 않으면 생성됩니다. Space가 이미 존재하면 프로젝트가 해당 Space에 기록됩니다. TRACKIO_SPACE_ID 환경 변수를 통해서도 설정할 수 있습니다. 동결된(정적 SDK로 변환된) Space에는 기록할 수 없으며, 기록이 완료된 후에만
trackio.sync(..., sdk="static")을 사용해야 합니다. 둘 이상 설정된 경우 server_url 및 TRACKIO_SERVER_URL보다 우선합니다. - server_url (str, optional) —
자체 호스팅된 Trackio 서버의 기본 URL(
http://또는https://)이거나,write_token쿼리 파라미터를 포함할 수 있는trackio.show()의 쓰기 접근 URL입니다. 클라이언트는 각 요청 시 해당 토큰을 (X-Trackio-Write-Token) 전송합니다. URL에 토큰을 포함하는 대신TRACKIO_WRITE_TOKEN을 설정할 수도 있습니다. 이 값이 설정되면 Hugging Face Space를 생성하거나 동기화하는 대신 HTTP를 통해 해당 서버로 메트릭이 전송됩니다.TRACKIO_SERVER_URL환경 변수를 통해서도 설정할 수 있습니다.space_id또는TRACKIO_SPACE_ID가 설정된 경우 무시됩니다. - dataset_id (str, 선택 사항) — 비추천: trackio 데이터를 Hugging Face Dataset에 영구 저장하는 기능은 trackio의 향후 버전에서 제거됩니다. 대신 bucket_id(Hugging Face Bucket)를 사용하세요.
- bucket_id (str, optional) — 메트릭 영속성에 사용할 Hugging Face Bucket의 ID입니다. 기본적으로 space_id가 제공되고 bucket_id가 명시적으로 설정되지 않은 경우, space_id에서 버킷이 자동 생성됩니다. 버킷은 git 오버헤드 없이 S3와 유사한 스토리지를 제공하며, SQLite 데이터베이스는 Space 내에서 hf-mount를 통해 직접 저장됩니다. “username/bucketname”과 같은 이름 또는 단순히 “bucketname”으로 버킷을 지정할 수 있습니다.
- config (dict, 선택 사항) — 설정 옵션의 사전입니다. wandb.init()와의 호환성을 위해 제공됩니다.
- resume (str, 선택 사항, 기본값은 “never) —
실행을 재개하는 방식을 제어합니다. 다음 중 하나를 사용할 수 있습니다:
- “must”: 주어진 이름으로 실행을 재개해야 하며, 해당 실행이 존재하지 않으면 오류를 발생시킵니다
- “allow”: 실행이 이미 존재하면 재개하고, 그렇지 않으면 새로운 실행을 생성
- “never”: 실행을 재개하지 않고 항상 새 실행을 생성
- private (bool, optional) — Space를 비공개로 만들지 여부입니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 저장소가 이미 존재하면 이 값은 무시됩니다.
- settings (Any, 선택 사항) — 사용되지 않습니다. wandb.init()와의 호환성을 위해 제공됩니다.
- embed (bool, 선택 사항, 기본값 True) — Jupyter/Colab 노트북에서 실행 중일 때, trackio.init()이 호출되면 대시보드가 셀에 자동으로 임베드될지 여부를 지정합니다. 로컬 실행의 경우 로컬 Trackio 대시보드를 시작하고 이를 임베드합니다. Space 실행의 경우 Space URL을 임베드합니다. Colab에서는 share=True일 때 로컬 대시보드에 공개 공유 URL을 통해 접근할 수 있습니다.
- auto_log_gpu (bool 또는 None, 선택 사항, 기본값 None) — GPU 메트릭 자동 로깅을 제어합니다. None(기본값)인 경우, nvidia-ml-py가 설치되어 있고 NVIDIA GPU 또는 Apple M 시리즈가 감지되면 GPU 로깅이 자동으로 활성화됩니다. True로 설정하면 강제 활성화되고, False로 설정하면 비활성화됩니다.
- gpu_log_interval (float, optional, 기본값 10.0) — 자동 GPU 메트릭 로그 사이의 간격(초). auto_log_gpu=True일 때만 사용됩니다.
- auto_log_cpu (bool 또는 None, 선택 사항, 기본값 None) — CPU 및 RAM 메트릭의 자동 로깅(사용률, 메모리, 디스크 I/O, 네트워크 I/O, 센서)을 제어합니다. None(기본값)인 경우 psutil이 설치되어 있으면 CPU 로깅이 자동으로 활성화됩니다. True로 설정하면 강제 활성화되고, False로 설정하면 비활성화됩니다.
- cpu_log_interval (float, optional, 기본값 10.0) — 자동 CPU 메트릭 로그 사이의 간격(초). CPU 자동 로깅이 활성화된 경우에만 사용됩니다.
- webhook_url (str, 선택 사항) — trackio.alert()이 호출될 때 알림 페이로드를 POST할 웹훅 URL입니다. Slack 및 Discord 웹훅 URL을 기본적으로 지원하며(페이로드는 자동으로 포맷팅됩니다). TRACKIO_WEBHOOK_URL 환경 변수를 통해서도 설정할 수 있습니다. 개별 알림은 trackio.alert()에 webhook_url을 전달하여 이 URL을 덮어쓸 수 있습니다.
- webhook_min_level (AlertLevel 또는 str, 선택 사항) — webhook 전송을 트리거해야 하는 최소 알림 수준입니다. 예를 들어, AlertLevel.WARN는 WARN 및 ERROR 알림만 webhook 대상에 전송합니다. TRACKIO_WEBHOOK_MIN_LEVEL을(를) 통해 설정할 수도 있습니다.
- capture_console (bool 또는 None, 선택 사항, 기본값 None) — 스크립트가 stdout과 stderr에 작성하는 모든 내용(print() 및 logging 출력 포함)을 캡처하여 실행(run)과 함께 저장할지 여부입니다. 출력된 내용은 대시보드의 해당 실행 페이지에서 확인되며, 여기서 다운로드할 수도 있습니다. None(기본값)인 경우, TRACKIO_CAPTURE_CONSOLE 환경 변수가 1 또는 true로 설정되어 있을 때만 콘솔 캡처가 활성화됩니다.
반환값
실행
메트릭을 기록하고 실행을 종료하는 데 사용할 수 있는 Run 객체입니다.
새로운 Trackio 프로젝트를 생성하고 [Run] 객체를 반환합니다.
로그
trackio.log
< source >( metrics: dictstep: int | None = None )
현재 실행에 메트릭을 기록합니다.
log_gpu
trackio.log_gpu
< source >( run: trackio.run.Run | None = Nonedevice: int | None = None ) → dict
GPU 메트릭을 시스템 메트릭으로 현재 또는 지정된 run에 기록합니다. NVIDIA 또는 Apple GPU가 사용 가능한지 자동으로 감지하고 적절한 로깅 메서드를 호출합니다.
log_system
…
log_artifact
trackio.log_artifact
< source >( artifact_or_path: trackio.artifact.Artifact | str | pathlib.Pathname: str | None = Nonetype: str | None = Nonealiases: list[str] | None = Noneoverwrite: bool = False )
매개변수
- artifact_or_path (
Artifact,str, 또는Path) —add_file또는add_dir를 통해 최소 하나의 파일이 추가된 아티팩트(로그할 대상)이거나, 새로운 아티팩트로 기록할 파일 또는 디렉터리의 경로입니다. - name (
str, 선택 사항) — 경로를 기록할 때 사용할 아티팩트 이름입니다. 기본값은run-<run_id>-<basename>입니다.Artifact와 함께 전달할 수 없습니다. - type (
str, 선택 사항) — 경로를 기록할 때의 아티팩트 유형(예:"model","dataset"). 기본값은"unspecified"입니다.Artifact와 함께 전달할 수 없습니다. - aliases (
list[str], 선택 사항) —latest와 함께 결과 버전으로 회전할 별칭입니다 (새 버전이 생성될 때마다 자동으로 할당됩니다). 동일한 콘텐츠가 중복 제거되어도 별칭은 해당 버전으로 회전합니다. - overwrite (
bool, 선택) —True인 경우, 새 콘텐츠가 기록된 후 이 아티팩트의 모든 다른 버전을 삭제합니다. 다른 아티팩트에서 여전히 사용 중인 Blob은 보존되며, 버전 번호는 계속 증가합니다. 기본값은False입니다.
현재 실행의 출력으로 아티팩트를 기록합니다.
use_artifact
trackio.use_artifact
< source >( artifact_or_name: trackio.artifact.Artifact | strtype: str | None = None )
아티팩트를 가져와서 현재 실행의 입력으로 기록합니다.
완료
현재 실행을 종료합니다.
표시
trackio.show
< source >( project: str | None = Nonedashboard: str | None = Nonetheme: typing.Any = Nonemcp_server: bool | None = Nonefooter: bool = Truecolor_palette: list[str] | None = Noneopen_browser: bool = Trueblock_thread: bool | None = Nonehost: str | None = Noneshare: bool | None = Noneserver_port: int | None = Nonefrontend_dir: str | pathlib.Path | None = None ) → app
매개변수
- project (
str, 선택 사항) — 표시할 실행(run)이 포함된 프로젝트의 이름입니다. 제공되지 않으면 모든 프로젝트가 표시되고 사용자가 하나를 선택할 수 있습니다. - dashboard (
str, 선택 사항) —"registry"로 설정하면 독립형 registry 대시보드를 표시합니다. 기본값은 프로젝트 대시보드입니다. - theme (
Any, 선택 사항) — 무시됩니다. 하위 호환성을 위해 유지되며, Trackio는 더 이상 Gradio 테마를 사용하지 않습니다. - mcp_server (
bool, 선택) —True인 경우, 선택적trackio[mcp]의존성이 설치되어 있으면 대시보드가/mcp에서 MCP 서버를 노출합니다.None(기본값)인 경우GRADIO_MCP_SERVER환경 변수가 사용됩니다(예: Spaces). - footer (
bool, 선택 사항, 기본값True) —False인 경우 write-token URL에footer=false를 포함할지 여부입니다. URL의footer쿼리 파라미터를 통해서도 제어할 수 있습니다. - color_palette (
list[str], 선택 사항) — 플롯 라인에 사용할 16진수 색상 코드 목록입니다. 제공되지 않으면TRACKIO_COLOR_PALETTE환경 변수(쉼표로 구분된 16진수 코드)가 사용되며, 이 변수도 설정되어 있지 않으면 기본 색상 팔레트가 사용됩니다. 예:['#FF0000', '#00FF00', '#0000FF'] - open_browser (
bool, 선택 사항, 기본값True) —True이고 노트북 환경이 아닌 경우, 대시보드가 포함된 새 브라우저 탭이 열립니다.False인 경우 브라우저가 열리지 않습니다. - block_thread (
bool, 선택 사항) —True인 경우, 대시보드가 닫힐 때까지 메인 스레드가 차단됩니다.None(기본 동작)인 경우, 대시보드가 노트북에서 실행되면 메인 스레드가 차단되지 않고, 그렇지 않으면 메인 스레드가 차단됩니다. - host (
str, 선택 사항) — 서버를 바인딩할 호스트입니다. 지정하지 않으면'127.0.0.1'(로컬호스트 전용)로 기본 설정됩니다. 원격 액세스를 허용하려면'0.0.0.0'으로 설정하십시오. - share (
bool, 선택) —True인 경우, 임시 공개 URL(Gradio 호환 터널)을 생성합니다. Colab 또는 호스팅된 노트북에서는True가 기본값이며, 명시적으로 지정하지 않는 한 이 값이 사용됩니다. - server_port (
int, 선택 사항) — 바인딩할 포트입니다. 설정되지 않은 경우GRADIO_SERVER_PORT(기본값 7860)부터 스캔합니다. - frontend_dir (
str | Path, 선택 사항) — 커스텀 정적 프론트엔드가 포함된 디렉터리입니다.index.html을 포함해야 합니다. 제공되지 않으면 Trackio는TRACKIO_FRONTEND_DIR, 그 다음 영속적 Trackio 설정, 마지막으로 번들된 프론트엔드를 확인합니다. 명시적인frontend_dir가 존재하지 않거나 빈 디렉터리를 가리키면, Trackio는 스타터 템플릿을 복사하여 해당 디렉터리를 제공합니다.
반환값
app
대시보드 핸들(.close()는 서버를 중지합니다).
url: 대시보드의 로컬 URL입니다.
share_url: 공개 공유 URL이 있는 경우 해당 URL입니다.
full_url: 쓰기 토큰을 포함한 전체 URL입니다(공유 중이면 공유 URL, 아니면 로컬 URL).
Trackio 대시보드를 시작합니다.
sync
trackio.sync
< source >( project: strspace_id: str | None = Noneprivate: bool | None = Noneforce: bool = Falserun_in_background: bool = Falsesdk: str = 'gradio'dataset_id: str | None = Nonebucket_id: str | None = Nonefrontend_dir: str | pathlib.Path | None = None ) → str
매개변수
- project (str) — 업로드할 프로젝트의 이름.
- space_id (str, 선택 사항) — 업로드할 Space의 ID입니다 (예: “username/space_id”). 제공되지 않으면 먼저 프로젝트 메타데이터를 확인한 후, 랜덤한 space_id를 생성합니다.
- private (bool, 선택 사항) —
Space를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 저장소가 이미 존재하면 이 값은 무시됩니다. 정적 Trackio 대시보드가 브라우저에서 스냅샷 데이터를 직접 읽기 때문에
sdk="static"에서는 지원되지 않습니다. - force (bool, 선택 사항, 기본값 False) — True인 경우, 확인을 묻지 않고 기존 데이터베이스를 덮어씁니다. False인 경우, 기존 데이터베이스를 덮어쓰기 전에 사용자에게 확인을 요청합니다.
- run_in_background (bool, 선택 사항, 기본값 False) — True인 경우, Space 생성 및 데이터베이스 업로드가 백그라운드 스레드에서 실행됩니다. False인 경우, 모든 단계가 동기적으로 실행됩니다.
- sdk (str, optional, 기본값 “gradio”) — 배포할 Space의 유형입니다. “gradio”는 라이브 서버를 갖춘 Gradio Space를 배포합니다. “static”는 Space를 고정하여 HF Bucket에서 읽는 정적 Space를 배포합니다(서버 불필요).
- dataset_id (str, 선택 사항) — 비추천: trackio 데이터를 Hugging Face Dataset에 영구 저장하는 기능은 trackio의 향후 버전에서 제거됩니다. 대신 bucket_id(Hugging Face Bucket)를 사용하세요.
- bucket_id (str, 선택 사항) — 동기화할 HF Bucket의 ID입니다. 기본적으로 space_id에서 버킷이 자동 생성됩니다.
반환값
str
동기화된 프로젝트의 Space ID입니다.
로컬 Trackio 프로젝트의 데이터베이스를 Hugging Face Space에 동기화합니다. Space가 존재하지 않으면 생성됩니다. 로컬 데이터는 절대 삭제되지 않습니다.
Freezing: sdk="static"을 전달하면 HF Bucket을 백엔드로 사용하는 정적 Space가 배포됩니다(읽기 전용 대시보드, Gradio 서버 없음). 나중에 동일한 프로젝트를 다시 동기화하여 해당 정적 Space를 새로고칠 수 있습니다. 기존 Gradio Space의 일회성 스냅샷을 생성하려면 대신 freeze()를 사용하세요.
freeze
trackio.freeze
< source >( space_id: strproject: strnew_space_id: str | None = Noneprivate: bool | None = Nonebucket_id: str | None = Nonefrontend_dir: str | pathlib.Path | None = None ) → str
매개변수
- space_id (
str) — 소스 Gradio Space의 ID입니다 (예:"username/my-space"또는 로그인한 namespace가 추론되는 짧은 저장소 이름,init()등)./data에 버킷이 마운트된 Gradio Space여야 합니다. - project (
str) — 동결된 Space에 포함할 데이터의 프로젝트 이름. - new_space_id (
str, 선택 사항) — 새로운 정적 Space의 ID입니다. 제공되지 않으면 기본값으로"{space_id}_static"가 사용됩니다. - private (
bool, 선택 사항) — 지원되지 않습니다. 동결된 정적 대시보드는 브라우저에서 스냅샷 데이터를 직접 읽으므로, 대상 스냅샷은 공개되어야 합니다. - bucket_id (
str, 선택 사항) — 새로운 정적 Space의 데이터 저장을 위한 HF Bucket의 ID입니다. 제공되지 않으면 새로운 Space ID에서 자동으로 생성됩니다.
반환값
str
새로 생성된 정적 Space의 Space ID입니다.
지정된 프로젝트의 데이터를 소스 Gradio Space에서 읽기 전용 스냅샷으로 포함하는 새로운 정적 Hugging Face Space를 생성합니다. 데이터는 freeze 시점에 소스 Space에 연결된 버킷에서 읽힙니다. 원래 Space는 수정되지 않으며, freeze가 완료된 후 원래 Gradio Space에 업로드된 메트릭은 새로운 정적 Space에 자동으로 반영되지 않습니다.
delete_project
trackio.delete_project
< source >( project: strforce: bool = False ) → bool
로컬 SQLite 데이터베이스를 제거하여 프로젝트를 삭제합니다.
import_csv
trackio.import_csv
< source >( csv_path: str | pathlib.Pathproject: strname: str | None = Nonespace_id: str | None = Nonedataset_id: str | None = Noneprivate: bool | None = Noneforce: bool = False )
매개변수
- csv_path (
str또는Path) — 가져올 CSV 파일의 str 또는 Path입니다. - project (
str) — CSV 파일을 가져올 프로젝트의 이름입니다. 기존에 존재하는 프로젝트일 수 없습니다. - name (
str, 선택 사항) — CSV 파일을 가져올 Run의 이름입니다. 제공되지 않으면 기본 이름이 생성됩니다. - name (
str, 선택 사항) — 실행 이름(제공하지 않으면 기본 이름이 생성됩니다). - space_id (
str, 선택 사항) — 지정된 경우, 프로젝트는 로컬 디렉터리 대신 Hugging Face Space에 기록됩니다."username/reponame"또는"orgname/reponame"와 같은 완전한 Space 이름이거나,"reponame"만 지정할 수도 있으며 이 경우 Space는 현재 로그인된 Hugging Face 사용자의 네임스페이스에 생성됩니다. Space가 존재하지 않으면 생성됩니다. Space가 이미 존재하면 프로젝트는 해당 Space에 기록됩니다. - dataset_id (
str, 선택 사항) — 비추천: trackio 데이터를 Hugging Face Dataset에 영구 저장하는 기능은 trackio의 향후 버전에서 제거됩니다. 대신bucket_id(Hugging Face Bucket)를 사용하세요. - private (
bool, 선택 사항) — Space를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 저장소가 이미 존재하는 경우 이 값은 무시됩니다.
Trackio 프로젝트에 CSV 파일을 가져옵니다. CSV 파일에는 "step" 열이 필수적으로 포함되어야 하며, "timestamp" 열은 선택적으로 포함할 수 있습니다. 그 외의 모든 열은 메트릭으로 처리됩니다. 또한 열 이름을 포함하는 헤더 행도 포함되어야 합니다.
TODO: init()을 호출하고 Run 객체를 반환하여 사용자가 해당 객체에 메트릭을 계속 기록할 수 있도록 합니다.
import_tf_events
trackio.import_tf_events
< source >( log_dir: str | pathlib.Pathproject: strname: str | None = Nonespace_id: str | None = Nonedataset_id: str | None = Noneprivate: bool | None = Noneforce: bool = False )
매개변수
- log_dir (
str또는Path) — TensorFlow Events 파일이 포함된 디렉토리의 str 또는 Path입니다. - project (
str) — TensorFlow Events 파일을 가져올 프로젝트의 이름입니다. 기존에 존재하는 프로젝트일 수 없습니다. - name (
str, 선택 사항) — 실행(run)에 사용할 이름 접두사입니다. (제공하지 않으면 디렉터리 이름을 사용합니다.) 각 하위 디렉터리는 별도의 실행을 생성합니다. - space_id (
str, 선택 사항) — 지정된 경우, 프로젝트는 로컬 디렉터리 대신 Hugging Face Space에 기록됩니다."username/reponame"또는"orgname/reponame"와 같은 완전한 Space 이름이거나,"reponame"만 지정할 수도 있으며 이 경우 Space는 현재 로그인된 Hugging Face 사용자의 네임스페이스에 생성됩니다. Space가 존재하지 않으면 생성됩니다. Space가 이미 존재하면 프로젝트는 해당 Space에 기록됩니다. - dataset_id (
str, 선택 사항) — 비추천: trackio 데이터를 Hugging Face Dataset에 영구 저장하는 기능은 trackio의 향후 버전에서 제거됩니다. 대신bucket_id(Hugging Face Bucket)를 사용하세요. - private (
bool, 선택 사항) — Space를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 저장소가 이미 존재하는 경우 이 값은 무시됩니다.
TensorFlow Events 파일을 디렉터리에서 Trackio 프로젝트로 가져옵니다. 로그 디렉터리 내의 각 하위 디렉터리는 별도의 run으로 가져와집니다.
저장
trackio.save
< source >( glob_str: str | pathlib.Pathproject: str | None = None ) → str
프로젝트에 파일을 저장합니다(특정 run과 연결되지 않음). Trackio가 로컬에서 실행 중이면 파일은 프로젝트의 files 디렉토리에 복사됩니다. Trackio가 Space에서 실행 중이면 파일은 Space의 files 디렉토리에 업로드됩니다.
Artifact
class trackio.Artifact
< source >( name: strtype: strdescription: str | None = Nonemetadata: dict | None = None )
프로젝트에 연결된 버전 관리가 되는 이름이 지정된 파일 및 참조 번들
Artifact를 생성하고, add_file / add_dir(바이트가 콘텐츠 주소 기반 저장소에 스테이징됨) 또는 add_reference(바이트를 복사하지 않고 외부 URI만 기록됨)를 사용하여 파일을 추가한 다음, trackio.log_artifact로 영속화합니다. 로깅은 아티팩트를 고정하고 읽기 전용 version, aliases, size, manifest를 채웁니다.
add_file
< source >( local_path: str | pathlib.Pathname: str | None = None )
artifact에 포함되도록 단일 파일을 스테이징합니다.
add_reference
< source >( uri: strname: str | None = Nonechecksum: bool = Truemax_objects: int | None = None )
매개변수
- uri (
str) — 참조된 데이터의 위치, percent-encoded (로컬 URI는pathlib.Path.as_uri()로 생성).file://,http(s)://,hf://는 네이티브로 해석 및 가져오며, 기타 스킴 (s3://,gs://, Azure blob URL 등)은trackio.register_reference_handler를 통해 등록된 사용자 정의ReferenceHandler가 필요합니다 — 완전한 예제는 artifacts 문서를 참조하세요 — 그렇지 않으면 예외가 발생합니다. - name (
str, 선택 사항) — 참조가 저장되는 논리적 경로입니다. 기본값은uri의 마지막 세그먼트이며, 확장된 접두사(슬래시로 끝나는 경우)의 경우 각 객체의 상대 경로가 중첩되는 접두사입니다. - checksum (
bool, 선택 사항, 기본값True) —True인 경우, 소스를 탐색하여 크기와 checksum(및 디렉터리/프리픽스 확장)을 유도합니다:file://는 스트림 해싱을 통해 sha256을 생성하고,hf://는 LFS sha256 또는 git blob id를 사용하며,http(s)://는 서버의ETag를 사용합니다. 이 과정에서 파일 시스템을 읽거나 네트워크 요청을 보낼 수 있습니다. 원격 소스에 대해 checksum을 얻을 수 없는 경우(예: ETag가 없는 경우), URI 자체가digest로 사용되고 경고가 출력됩니다. 존재하지 않는 로컬file://경로는 대신 예외를 발생시킵니다. 원격 탐색을 완전히 건너뛰려면checksum=False를 전달하세요. - max_objects (
int, 선택 사항) — 디렉터리/프리픽스가 확장될 수 있는 객체의 최대 수(기본값 10,000); 이 값을 초과하면 예외가 발생합니다.
…
add_file/add_dir와 달리, 참조는 바이트를 콘텐츠 주소형 저장소에 스테이징하지 않고 데이터의 URI(가용할 경우 크기와 체크섬 포함)를 기록합니다. 이는 중복 저장해서는 안 되는 대규모 또는 이미 영구적으로 저장된 데이터셋에 대해 버전 관리와 계보 추적을 수행하는 방법입니다.
디렉토리를 나타내는 URI(file://, hf://, 또는 커스텀 핸들러에 의해 확장된 접두사)는 max_objects로 제한된 개수만큼 객체별로 하나의 항목으로 확장됩니다. Reference bytes는 Space 또는 버킷에 업로드되지 않습니다.
URI는 아티팩트 매니페스트에 그대로 저장되며, 매니페스트는 공유 Hugging Face Dataset에 동기화될 수 있습니다. 따라서 보안상의 이유로 서명된 URI는 경고를 트리거합니다. 객체의 정형화된 서명되지 않은 URI(예: s3://bucket/key)를 사용하는 것이 좋습니다.
다운로드
< source >( root: str | pathlib.Path | None = None )
아티팩트의 파일을 로컬 디렉터리로 materialize합니다.
Files는 Trackio의 콘텐츠 주소 기반 캐시에서 복사되며(로컬에 없으면 원격에서 가져옴) 따라서 반복 호출은 저렴하고 멱등적입니다.
add_reference를 통해 추가된 Reference 항목도 여기서 가져옵니다: 각 reference URI의 대상은 해당 디렉터리로 다운로드됩니다(http(s)://의 경우 번들된 httpx2, hf://의 경우 huggingface_hub, 기타 스킴의 경우 등록된 사용자 정의 ReferenceHandler를 사용). 각 대상은 원자적으로 기록되며 호출은 멱등적입니다. reference digest는 불투명(provider ETag 또는 URI 자체)하므로, 존재하는 파일은 최신 상태로 간주되어 소스와 재검증되지 않으며, 재탐색된 체크섬이 기록된 값과 더 이상 일치하지 않는 소스는 경고와 함께 그대로 다운로드됩니다. 다운로드 과정에서 대량의 데이터가 전송될 수 있으므로, 다운로드 없이 URI로 작업하려면 대신 references 속성 또는 get_entry_uri에서 읽어 사용하세요. 소스가 없거나 서버에 도달할 수 없거나 등록된 핸들러가 없는 스킴인 경우 예외가 발생합니다.
논리 경로 name에 해당하는 참조 항목에 기록된 URI를 반환합니다. 해당 이름의 참조 항목이 없으면 None을 반환합니다.
링크
< source >( target_path: straliases: list[str] | None = Nonebucket_id: str | None = None )
매개변수
- target_path (
str) — 링크할 컬렉션으로,"registry-<registry>/<collection>"형식입니다. 레지스트리는 이미 존재해야 합니다. - aliases (
list[str], 선택) — 링크된 버전에 배치할 별칭입니다.latest는 자동으로 관리되며, 이를 전달해도 아무 동작도 수행하지 않습니다. - bucket_id (
str, 선택 사항) — 레지스트리를 저장하는 버킷, 예:"my-org/models-registry". 로컬 레지스트리의 경우 생략할 수 있으며,TRACKIO_REGISTRY_BUCKET_ID가 설정된 경우 해당 값이 기본값으로 사용됩니다.
이 아티팩트 버전을 레지스트리 컬렉션에 연결합니다.
링크는 이 버전으로의 포인터입니다: 파일은 복사되지 않습니다. 전체 의미론(컬렉션 버전 관리, 별칭, 반환되는 링크된 아티팩트)은 Run.link_artifact를 참조하세요.
아티팩트는 이미 기록되었거나 가져와져야 합니다. Run.link_artifact와 달리 이 메서드는 초안 아티팩트를 대신 기록하지 않으며, 링크에는 게시 실행이 기록되지 않습니다. Space나 자체 호스팅 서버에서 가져온 아티팩트는 바이트가 저장된 위치에서 로컬 레지스트리에 접근할 수 없으므로, 버킷 기반 레지스트리에만 링크할 수 있습니다.
이 레지스트리 링크를 제거하세요.
link 또는 Run.link_artifact가 반환한 연결된 아티팩트에서 이 메서드를 호출하십시오. 소스 아티팩트 버전에서 호출하지 마십시오. 소스 아티팩트와 그 파일은 변경되지 않으며, 컬렉션 멤버십만 제거됩니다. 링크를 가리키는 별칭도 함께 제거되며, 컬렉션 버전 번호는 재사용되지 않습니다. 해당 버전이 latest를 보유하고 있었다면, 해당 별칭은 남은 가장 높은 버전으로 이동합니다.
No-op: trackio는 아티팩트를 동기적으로 기록하므로, log_artifact가 반환될 때 이미 아티팩트가 커밋된 상태입니다.
레지스트리
class trackio.Registry
< source >( name: strbucket_id: str | None = None )
하나의 아티팩트 레지스트리에 대한 핸들.
레지스트리는 아티팩트 버전을 컬렉션으로 구성하여 관리하는 공유 카탈로그입니다. Run.link_artifact를 사용하여 레지스트리에 게시하고, "staging" 또는 "production"와 같은 별칭을 이동시켜 버전을 승격합니다. 전체적인 내용은 Registry 가이드를 참고하세요.
Registry를 직접 생성하지 않습니다. trackio.Api().create_registry(name)을 사용하여 레지스트리를 생성하거나, trackio.Api().registry(name)을 사용하여 기존 레지스트리를 가져오세요. 두 방법 모두 이 핸들을 반환합니다.
예:
import trackio
registry = trackio.Api().create_registry("models")
registry.create_collection(
"my-model", artifact_type="model", description="My favorite model"
)
run = trackio.init(project="my-experiments")
artifact = trackio.log_artifact("model.pt", name="resnet", type="model")
run.link_artifact(artifact, "registry-models/my-model", aliases=["staging"])
trackio.finish()
registry.collection("my-model").linkscreate_collection
< source >( name: strartifact_type: strdescription: str | None = None )
이 레지스트리에 컬렉션을 생성합니다.
컬렉션은 첫 번째 링크 시에도 자동으로 생성되므로, 이 기능은 주로 설명을 미리 설정하는 데 유용합니다. 컬렉션이 이미 존재하는 경우 그대로 반환되며, description이 None이 아닌 값이면 해당 값이 적용됩니다.
레지스트리의 감사 로그를 반환하며, 가장 오래된 이벤트가 먼저 나옵니다.
각 이벤트에는 id, ts 타임스탬프, kind ("create", "link", "promote", "update", 또는 "unlink"), 그리고 변경 사항을 설명하는 payload가 있습니다. collection 키가 없는 create payload는 레지스트리 자체의 생성을 기록합니다.
컬렉션
class trackio.Collection
< source >( name: strtype: strdescription: str | Nonecreated_at: strnum_links: intlatest_version: int | Nonelinks: list[dict] )
레지스트리 컬렉션의 읽기 전용 스냅샷입니다.
Registry.create_collection, Registry.collection, Registry.collections에서 반환됩니다.
이미지
클래스 trackio.TrackioImage
< source >( value: str | pathlib.Path | numpy.ndarray | PIL.Image.Imagecaption: str | None = None )
Image 객체를 초기화합니다.
예:
import trackio
import numpy as np
from PIL import Image
# Create an image from numpy array
image_data = np.random.randint(0, 255, (64, 64, 3), dtype=np.uint8)
image = trackio.Image(image_data, caption="Random image")
trackio.log({"my_image": image})
# Create an image from PIL Image
pil_image = Image.new('RGB', (100, 100), color='red')
image = trackio.Image(pil_image, caption="Red square")
trackio.log({"red_image": image})
# Create an image from file path
image = trackio.Image("path/to/image.jpg", caption="Photo from file")
trackio.log({"file_image": image})Video
클래스 trackio.TrackioVideo
< source >( value: str | pathlib.Path | numpy.ndarraycaption: str | None = Nonefps: int | None = Noneformat: typing.Optional[typing.Literal['gif', 'mp4', 'webm']] = None )
매개변수
- value (
str,Path, 또는numpy.ndarray, 선택 사항) — 비디오 파일의 경로 또는 numpy 배열입니다. numpy 배열인 경우,np.uint8타입이어야 하며 RGB 값은[0, 255]범위를 가져야 합니다. shape은 (frames, channels, height, width) 또는 (batch, frames, channels, height, width) 중 하나여야 합니다. 후자의 경우, 비디오는 그리드로 타일링됩니다. - caption (
str, 선택 사항) — 동영상에 대한 문자열 캡션입니다. - fps (
int, 선택 사항) — 영상의 초당 프레임 수. 값이 ndarray일 때만 사용됩니다. 기본값은24입니다. - format (
Literal["gif", "mp4", "webm"], 선택) — 비디오 형식(“gif”, “mp4”, 또는 “webm”). 값이 ndarray인 경우에만 사용됩니다. 기본값은 “gif”입니다.
Video 객체를 초기화합니다.
예:
import trackio
import numpy as np
# Create a simple video from numpy array
frames = np.random.randint(0, 255, (10, 3, 64, 64), dtype=np.uint8)
video = trackio.Video(frames, caption="Random video", fps=30)
# Create a batch of videos
batch_frames = np.random.randint(0, 255, (3, 10, 3, 64, 64), dtype=np.uint8)
batch_video = trackio.Video(batch_frames, caption="Batch of videos", fps=15)
# Create video from file path
video = trackio.Video("path/to/video.mp4", caption="Video from file")write_video
< source >( file_path: str | pathlib.Pathvideo: ndarrayfps: floatcodec: typing.Literal['h264', 'vp9', 'gif'] )
RGB uint8만 지원하며, shape은 (F, H, W, 3)입니다.
오디오
클래스 trackio.TrackioAudio
< source >( value: str | pathlib.Path | numpy.ndarraycaption: str | None = Nonesample_rate: int | None = Noneformat: typing.Optional[typing.Literal['wav', 'mp3']] = None )
매개변수
- value (
str,Path또는numpy.ndarray, 선택 사항) — 오디오 파일의 경로 또는 numpy 배열입니다. 배열은 모노의 경우(samples,), 스테레오의 경우(samples, 2)형이어야 합니다. Float 배열은 피크 정규화되어 16-bit PCM으로 변환되며, 정수 배열은 필요에 따라 16-bit PCM으로 변환됩니다. - caption (
str, 선택 사항) — 오디오에 대한 문자열 캡션입니다. - sample_rate (
int, 선택 사항) — Hz 단위의 샘플링 레이트.value가 numpy 배열인 경우 필수입니다. - format (
Literal["wav", "mp3"], 선택 사항) —value가 numpy 배열인 경우 사용되는 오디오 형식. 기본값은 “wav”입니다.
Audio 객체를 초기화합니다.
예:
import trackio
import numpy as np
# Generate a 1-second 440 Hz sine wave (mono)
sr = 16000
t = np.linspace(0, 1, sr, endpoint=False)
wave = 0.2 * np.sin(2 * np.pi * 440 * t)
audio = trackio.Audio(wave, caption="A4 sine", sample_rate=sr, format="wav")
trackio.log({"tone": audio})
# Stereo from numpy array (shape: samples, 2)
stereo = np.stack([wave, wave], axis=1)
audio = trackio.Audio(stereo, caption="Stereo", sample_rate=sr, format="mp3")
trackio.log({"stereo": audio})
# From an existing file
audio = trackio.Audio("path/to/audio.wav", caption="From file")
trackio.log({"file_audio": audio})입력 오디오 배열을 연속적인 int16 PCM으로 변환합니다. 부동 소수점 입력에는 피크 정규화가 적용됩니다.
Object3D
class trackio.TrackioObject3D
< source >( path_or_array: str | pathlib.Path | numpy.ndarraycaption: str | None = None )
Html
클래스 trackio.TrackioHtml
< source >( data: typing.Anyinject: bool = Truedata_is_not_path: bool = Falsecaption: str | None = None )
매개변수
- data (
str,Path, file-like, Plotly figure, or Matplotlib figure) — Raw HTML,.html파일 경로, file-like 객체, 또는 Plotly 또는 Matplotlib figure. - inject (
bool, 선택) — HTML 조각을 스타일화된 문서로 감쌉니다. 기본값은True입니다. - data_is_not_path (
bool, 선택 사항) —wandb.Html호환성을 위해 허용되지만 무시됩니다. - caption (
str, 선택 사항) — HTML에 사용할 문자열 캡션입니다.
Html 객체를 초기화합니다.
예:
import trackio
trackio.init(project="my-project")
# Raw HTML
trackio.log({"report": trackio.Html("<h1>Results</h1>")})
# Plotly figure
import plotly.express as px
fig = px.line(x=[1, 2, 3], y=[4, 5, 6])
trackio.log({"plot": trackio.Html(fig)})
# Matplotlib figure
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
trackio.log({"chart": trackio.Html(plt)})표
class trackio.Table
< source >( columns: list[str] | None = Nonedata: list[list[typing.Any]] | None = Nonedataframe: typing.Optional[typing.Any] = Nonerows: list[list[typing.Any]] | None = Noneoptional: bool | list[bool] = Trueallow_mixed_types: bool = Falselog_mode: typing.Optional[typing.Literal['IMMUTABLE', 'MUTABLE', 'INCREMENTAL']] = 'IMMUTABLE' )
매개변수
- columns (
list[str], 선택 사항) — 테이블의 열 이름입니다.data가 제공된 경우 선택 사항입니다.dataframe이 제공된 경우 기대하지 않습니다. 현재 무시됩니다. - data (
list[list[Any]], 선택 사항) — 2차원 행 지향 값 배열입니다. 각 값은 숫자, 문자열(너무 길면 잘려서 Markdown으로 처리됨), 또는Trackio.Image또는Trackio.Image객체의 리스트일 수 있습니다. - dataframe (
pandas.DataFrame, 선택 사항) — 테이블을 생성하는 데 사용되는 DataFrame입니다. 이 값이 설정되면data및columns인수는 무시됩니다. - rows (
list[list[Any]], 선택 사항) — 현재 무시됩니다. - optional (
bool또는list[bool], 선택 사항, 기본값True) — 현재 무시됩니다. - allow_mixed_types (
bool, 선택 사항, 기본값False) — 현재 무시됩니다. - log_mode — (
Literal["IMMUTABLE", "MUTABLE", "INCREMENTAL"]또는None, 선택 사항, 기본값"IMMUTABLE"): 현재 무시됩니다.
Table 객체를 초기화합니다.
Tables는 이미지, 숫자, 텍스트를 포함한 표 형식 데이터를 기록하는 데 사용할 수 있습니다.
to_display_format
< source >( table_data: list[dict] ) → list[dict]
저장된 테이블 데이터를 UI 렌더링을 위한 표시 형식으로 변환합니다.
Note:
이 기능은 self.data 속성을 사용하지 않고, UI가 수신하는 table_data 매개변수를 사용합니다.
Trace
class trackio.Trace
< source >( messages: list[dict[str, Any]]metadata: dict | None = Nonespans: list[dict[str, Any]] | None = None )
매개변수
- messages (
list[dict[str, Any]]) — OpenAI 스타일의 메시지입니다. 예:{"role": "user", "content": "..."}. Assistant 메시지는tool_calls를 포함할 수 있으며, tool 결과는tool_call_id를 포함할 수 있습니다.spans가 제공되지 않으면 대시보드는 이를 tool 작업으로 짝지어 처리합니다. - metadata (
dict, 선택) — 트레이스 수준의 메타데이터, 예:session_id또는environment.status,duration_ms,latency_ms,cost_usd키는 스팬이 해당 값을 제공하지 않을 때 대시보드에서 트레이스 수준의 폴백으로 사용됩니다. - spans (
list[dict[str, Any]], 선택) — 응답을 생성한 내용을 설명하는 실행 스팬입니다. 각 스팬은id,name,kind("span","generation", 또는"tool")를 키로 하는 딕셔너리이며, 선택적으로parent_id,start_time,end_time,duration_ms,status,error,input,output,model,usage,cost_usd,metadata를 포함할 수 있습니다.
Trace 객체를 초기화합니다.
Traces는 대화형 또는 에이전트 스타일의 요청을 캡처합니다: OpenAI 스타일의 메시지, 선택적 메타데이터, 선택적 실행 스팬입니다. 스팬은 모델 생성, 도구 호출 또는 기타 작업을 설명하는 사전(dictionary)입니다. 메시지, 메타데이터 또는 스팬 내부의 중첩된 Trackio 미디어 객체는 trace와 함께 영구 저장되고 직렬화됩니다.
히스토그램
class trackio.Histogram
< source >( sequence: typing.Union[numpy.ndarray, typing.Sequence[float], typing.Sequence[int], NoneType] = Nonenp_histogram: tuple | None = Nonenum_bins: int = 64 )
Trackio의 히스토그램 데이터 유형으로, wandb.Histogram과 호환됩니다.
예:
import trackio
import numpy as np
# Create histogram from sequence
data = np.random.randn(1000)
trackio.log({"distribution": trackio.Histogram(data)})
# Create histogram from numpy histogram
hist, bins = np.histogram(data, bins=30)
trackio.log({"distribution": trackio.Histogram(np_histogram=(hist, bins))})
# Specify custom number of bins
trackio.log({"distribution": trackio.Histogram(data, num_bins=50)})