메인 콘텐츠로 건너뛰기
GitHub 소스 코드

class Api

W&B 서버에 쿼리를 보내는 데 사용합니다. 예제:
import wandb

wandb.Api()

메서드 Api.__init__

__init__(
    overrides: 'dict[str, Any] | None' = None,
    timeout: 'int | None' = None,
    api_key: 'str | None' = None
) → None
API를 초기화합니다. Args:
  • overrides: base_url을 설정할 수 있습니다.
  • using a W&B server other than https: //api.wandb.ai. 또한 entity, project, run의 기본값을 설정할 수 있습니다.
  • timeout: API 요청에 대한 HTTP 타임아웃(초)입니다. 지정하지 않으면 기본 타임아웃이 사용됩니다.
  • api_key: 인증에 사용할 API key입니다. 제공되지 않으면 현재 환경 또는 설정에 지정된 API key가 사용됩니다. 환경에 제공되거나 설정되지 않은 경우 API key 입력을 요청합니다.

property Api.client

클라이언트 객체를 반환합니다. Returns:
  • RetryingClient: client 속성의 값입니다.

property Api.default_entity

기본 W&B 엔터티를 반환합니다. Returns:
  • str | None: default_entity 프로퍼티 값입니다.

property Api.user_agent

W&B 공용 user agent를 반환합니다. Returns:
  • str: user_agent 속성 값입니다.

property Api.viewer

viewer 객체를 반환합니다. Raises:
  • ValueError: W&B에서 viewer 데이터를 가져올 수 없는 경우
  • requests.RequestException: GraphQL 요청을 보내는 동안 오류가 발생한 경우
Returns:
  • User: viewer 속성 값

메서드 Api.artifact

artifact(name: 'str', type: 'str | None' = None)
단일 아티팩트를 반환합니다. Args:
  • name: 아티팩트의 이름. 아티팩트 이름은 파일 경로와 비슷한 형태로, 최소한 아티팩트가 로깅된 프로젝트 이름, 아티팩트 이름, 그리고 아티팩트의 버전 또는 별칭으로 구성됩니다. 선택적으로, 아티팩트를 로깅한 엔터티를 접두사로 추가하고 그 뒤에 슬래시(/)를 붙일 수 있습니다. 이름에 엔터티가 지정되지 않으면 실행 또는 API 설정의 엔터티가 사용됩니다.
  • type: 가져올 아티팩트의 유형.
Returns: Artifact 객체. Raises:
  • ValueError: 아티팩트 이름이 지정되지 않은 경우.
  • ValueError: 아티팩트 유형이 지정되었지만 가져온 아티팩트의 유형과 일치하지 않는 경우.
Examples: 다음 코드 예제에서 “entity”, “project”, “artifact”, “version”, 그리고 “alias”는 각각 W&B 엔터티, 아티팩트가 속한 프로젝트 이름, 아티팩트 이름, 그리고 아티팩트의 버전 및 별칭을 나타내는 플레이스홀더입니다.
import wandb

# 프로젝트, 아티팩트 이름, 아티팩트 별칭 지정
wandb.Api().artifact(name="project/artifact:alias")

# 프로젝트, 아티팩트 이름, 특정 아티팩트 버전 지정
wandb.Api().artifact(name="project/artifact:version")

# 엔터티, 프로젝트, 아티팩트 이름, 아티팩트 별칭 지정
wandb.Api().artifact(name="entity/project/artifact:alias")

# 엔터티, 프로젝트, 아티팩트 이름, 특정 아티팩트 버전 지정
wandb.Api().artifact(name="entity/project/artifact:version")
참고:
이 메서드는 외부 사용만을 위한 것입니다. wandb 리포지토리 코드 내에서는 api.artifact()를 호출하지 마십시오.

메서드 Api.artifact_collection

artifact_collection(type_name: 'str', name: 'str') → ArtifactCollection
지정된 타입의 단일 아티팩트 컬렉션을 반환합니다. 반환된 ArtifactCollection 객체를 사용하여 해당 컬렉션 내 특정 아티팩트에 대한 정보 등을 조회할 수 있습니다. 인자(Args):
  • type_name: 가져올 아티팩트 컬렉션의 타입.
  • name: 아티팩트 컬렉션 이름. 선택적으로, 아티팩트를 로깅한 엔터티를 접두사로 두고 그 뒤에 슬래시(/)를 붙여서 사용할 수 있습니다.
반환값(Returns): ArtifactCollection 객체. 예시(Examples): 다음 코드 스니펫에서 “type”, “entity”, “project”, 그리고 “artifact_name” 은 각각 컬렉션 타입, 사용자의 W&B 엔터티, 아티팩트가 포함된 프로젝트 이름, 그리고 아티팩트 이름을 나타내는 자리표시자입니다.
import wandb

collections = wandb.Api().artifact_collection(
    type_name="type", name="entity/project/artifact_name"
)

# 컬렉션에서 첫 번째 아티팩트를 가져옵니다.
artifact_example = collections.artifacts()[0]

# 아티팩트의 내용을 지정된 루트 디렉토리에 다운로드합니다.
artifact_example.download()

method Api.artifact_collection_exists

artifact_collection_exists(name: 'str', type: 'str') → bool
지정된 프로젝트와 엔터티 내에 아티팩트 컬렉션이 존재하는지 여부입니다. Args:
  • name: 아티팩트 컬렉션 이름입니다. 선택적으로, 아티팩트를 로깅한 엔터티를 접두사로 추가하고 그 뒤에 슬래시(/)를 붙일 수 있습니다. 엔터티 또는 프로젝트가 지정되지 않은 경우, 존재한다면 override 매개변수에서 컬렉션을 유추합니다. 그렇지 않으면 엔터티는 사용자 설정에서 가져오고, 프로젝트는 기본값인 “uncategorized”로 설정됩니다.
  • type: 아티팩트 컬렉션의 유형입니다.
Returns: 아티팩트 컬렉션이 존재하면 True, 그렇지 않으면 False를 반환합니다. Examples: 다음 코드 스니펫에서 “type”과 “collection_name”은 각각 아티팩트 컬렉션의 유형과 컬렉션 이름을 의미합니다.
import wandb

wandb.Api.artifact_collection_exists(type="type", name="collection_name")

메서드 Api.artifact_collections

artifact_collections(
    project_name: 'str',
    type_name: 'str',
    per_page: 'int' = 50
) → ArtifactCollections
일치하는 아티팩트 컬렉션 모음을 반환합니다. Args:
  • project_name: 필터링에 사용할 프로젝트 이름입니다.
  • type_name: 필터링에 사용할 아티팩트 타입 이름입니다.
  • per_page: 쿼리 페이지네이션을 위한 페이지 크기를 설정합니다. 일반적으로 이 값을 변경할 필요는 없습니다.
Returns: 반복 가능한 ArtifactCollections 객체를 반환합니다.

메서드 Api.artifact_exists

artifact_exists(name: 'str', type: 'str | None' = None) → bool
지정한 프로젝트와 엔터티 내에 아티팩트 버전이 존재하는지 여부입니다. Args:
  • name: 아티팩트의 이름입니다. 앞에 아티팩트의 엔터티와 프로젝트를 접두사로 추가합니다. 콜론(:)을 사용해 아티팩트의 버전 또는 별칭을 뒤에 붙입니다. 엔터티나 프로젝트가 지정되지 않은 경우, 값이 설정되어 있다면 W&B에서 override 매개변수를 사용합니다. 그렇지 않으면 사용자 설정에서 엔터티를 가져오고, 프로젝트는 “Uncategorized”로 설정됩니다.
  • type: 아티팩트의 유형입니다.
Returns: 아티팩트 버전이 존재하면 True, 그렇지 않으면 False를 반환합니다. Examples: 다음 코드 스니펫에서 “entity”, “project”, “artifact”, “version”, “alias”는 각각 여러분의 W&B 엔터티, 아티팩트가 포함된 프로젝트 이름, 아티팩트 이름, 그리고 아티팩트 버전을 나타내는 플레이스홀더입니다.
import wandb

wandb.Api().artifact_exists("entity/project/artifact:version")
wandb.Api().artifact_exists("entity/project/artifact:alias")

method Api.artifact_type

artifact_type(type_name: 'str', project: 'str | None' = None) → ArtifactType
일치하는 ArtifactType을 반환합니다. 인자:
  • type_name: 가져올 아티팩트 타입의 이름입니다.
  • project: (선택 사항) 필터링에 사용할 프로젝트 이름 또는 경로입니다.
반환값: ArtifactType 객체를 반환합니다.

메서드 Api.artifact_types

artifact_types(project: 'str | None' = None) → ArtifactTypes
일치하는 아티팩트 타입 컬렉션을 반환합니다. Args:
  • project: 필터링에 사용할 프로젝트 이름 또는 경로입니다.
Returns: 반복 가능한(iterable) ArtifactTypes 객체입니다.

메서드 Api.artifact_versions

artifact_versions(type_name, name, per_page=50)
사용 중단되었습니다. 대신 Api.artifacts(type_name, name) 메서드를 사용하세요.

메서드 Api.artifacts

artifacts(
    type_name: 'str',
    name: 'str',
    per_page: 'int' = 50,
    tags: 'list[str] | None' = None
) → Artifacts
Artifacts 컬렉션을 반환합니다. Args:
  • type_name: 가져올 아티팩트의 유형입니다.
  • name: 아티팩트 컬렉션 이름입니다. 선택적으로, 아티팩트를 로깅한 엔터티를 접두사로 추가한 뒤 슬래시(/)를 붙일 수 있습니다.
  • per_page: 쿼리 페이지네이션을 위한 페이지 크기를 설정합니다. 일반적으로 이 값을 변경할 필요는 없습니다.
  • tags: 나열된 모든 태그를 가진 아티팩트만 반환합니다.
Returns: 반복 가능한 Artifacts 객체입니다. Examples: 다음 코드 스니펫에서 “type”, “entity”, “project”, 그리고 “artifact_name”은 각각 아티팩트 유형, W&B 엔터티, 아티팩트가 로깅된 프로젝트 이름, 그리고 아티팩트 이름을 나타내는 플레이스홀더입니다.
import wandb

wandb.Api().artifacts(type_name="type", name="entity/project/artifact_name")

method Api.automation

automation(name: 'str', entity: 'str | None' = None) → Automation
주어진 매개변수와 일치하는 단 하나의 Automation을 반환합니다. 인수(Args):
  • name: 가져올 Automation의 이름입니다.
  • entity: Automation을 가져올 엔터티입니다.
예외(Raises):
  • ValueError: 검색 조건과 일치하는 Automation이 없거나 둘 이상인 경우 발생합니다.
예시(Examples): 이름이 “my-automation”인 기존 Automation을 가져옵니다:
import wandb

api = wandb.Api()
automation = api.automation(name="my-automation")
엔터티 “my-team”에서 이름이 “other-automation”인 기존 automation을 가져옵니다:
automation = api.automation(name="other-automation", entity="my-team")

메서드 Api.automations

automations(
    entity: 'str | None' = None,
    name: 'str | None' = None,
    per_page: 'int' = 50
) → Iterator[Automation]
주어진 매개변수와 일치하는 모든 Automation을 순회하는 이터레이터를 반환합니다. 매개변수를 제공하지 않으면, 반환된 이터레이터는 사용자가 액세스할 수 있는 모든 Automation을 포함합니다. Args:
  • entity: Automation을 가져올 엔터티.
  • name: 가져올 Automation의 이름.
  • per_page: 페이지당 가져올 Automation 개수. 기본값은 50입니다. 일반적으로 이 값을 변경할 필요는 없습니다.
Returns: Automation 목록. Examples: 엔터티 “my-team”에 대해 존재하는 모든 Automation을 가져옵니다:
import wandb

api = wandb.Api()
automations = api.automations(entity="my-team")

method Api.create_automation

create_automation(
    obj: 'NewAutomation',
    fetch_existing: 'bool' = False,
    **kwargs: 'Unpack[WriteAutomationsKwargs]'
) → Automation
새로운 자동화를 생성합니다. Args: obj: 생성할 자동화입니다. fetch_existing: True인 경우, 충돌하는 자동화가 이미 존재하면 에러를 발생시키는 대신 기존 자동화를 가져오려고 시도합니다. **kwargs: 자동화를 생성하기 전에 자동화에 할당할 추가 값입니다. 제공된 경우, 자동화에 이미 설정되어 있을 수 있는 다음 키들의 값을 덮어씁니다:
  • name: 자동화의 이름.
    • description: 자동화의 설명.
    • enabled: 자동화 활성화 여부.
    • scope: 자동화의 범위.
    • event: 자동화를 트리거하는 이벤트.
    • action: 자동화에 의해 트리거되는 동작.
Returns: 저장된 자동화. Examples: 특정 프로젝트 내의 실행에서 기록한 메트릭이 사용자 지정 임계값을 초과할 때 Slack 알림을 보내는, 이름이 “my-automation”인 새로운 자동화를 생성합니다:
import wandb
from wandb.automations import OnRunMetric, RunEvent, SendNotification

api = wandb.Api()

project = api.project("my-project", entity="my-team")

# 팀의 첫 번째 Slack 통합 사용
slack_hook = next(api.slack_integrations(entity="my-team"))

event = OnRunMetric(
     scope=project,
     filter=RunEvent.metric("custom-metric") > 10,
)
action = SendNotification.from_integration(slack_hook)

automation = api.create_automation(
     event >> action,
     name="my-automation",
     description="Send a Slack message whenever 'custom-metric' exceeds 10.",
)

메서드 Api.create_custom_chart

create_custom_chart(
    entity: 'str',
    name: 'str',
    display_name: 'str',
    spec_type: "Literal['vega2']",
    access: "Literal['private', 'public']",
    spec: 'str | dict'
) → str
사용자 지정 차트 프리셋을 생성하고 해당 ID를 반환합니다. Args:
  • entity: 차트를 소유하는 엔터티(사용자 또는 팀)
  • name: 차트 프리셋의 고유 식별자
  • display_name: UI에 표시되는 사람이 읽을 수 있는 이름
  • spec_type: 사양의 유형. Vega-Lite v2 사양의 경우 반드시 “vega2”여야 합니다.
  • access: 차트에 대한 접근 수준:
    • “private”: 차트는 이를 생성한 엔터티만 접근할 수 있음
    • “public”: 차트를 누구나 접근할 수 있음
  • spec: 딕셔너리 또는 JSON 문자열 형태의 Vega/Vega-Lite 사양
Returns: “entity/name” 형식으로 생성된 차트 프리셋의 ID Raises:
  • wandb.Error: 차트 생성에 실패한 경우
  • UnsupportedError: 서버가 사용자 지정 차트를 지원하지 않는 경우
Example:
    import wandb

    api = wandb.Api()

    # 간단한 막대 차트 사양 정의
    vega_spec = {
         "$schema": "https://vega.github.io/schema/vega-lite/v6.json",
         "mark": "bar",
         "data": {"name": "wandb"},
         "encoding": {
             "x": {"field": "${field:x}", "type": "ordinal"},
             "y": {"field": "${field:y}", "type": "quantitative"},
         },
    }

    # 커스텀 차트 생성
    chart_id = api.create_custom_chart(
         entity="my-team",
         name="my-bar-chart",
         display_name="My Custom Bar Chart",
         spec_type="vega2",
         access="private",
         spec=vega_spec,
    )

    # wandb.plot_table()과 함께 사용
    chart = wandb.plot_table(
         vega_spec_name=chart_id,
         data_table=my_table,
         fields={"x": "category", "y": "value"},
    )

메서드 Api.create_project

create_project(name: 'str', entity: 'str') → None
새 프로젝트를 생성합니다. 인자:
  • name: 새 프로젝트의 이름.
  • entity: 새 프로젝트의 엔터티.

메서드 Api.create_registry

create_registry(
    name: 'str',
    visibility: "Literal['organization', 'restricted']",
    organization: 'str | None' = None,
    description: 'str | None' = None,
    artifact_types: 'list[str] | None' = None
) → Registry
새 레지스트리를 생성합니다. Args:
  • name: 레지스트리의 이름입니다. 조직 내에서 고유해야 합니다.
  • visibility: 레지스트리의 공개 범위입니다.
  • organization: 조직의 모든 사용자가 이 레지스트리를 볼 수 있습니다. 이후 UI의 설정에서 이들의 역할을 수정할 수 있습니다.
  • restricted: UI를 통해 초대된 멤버만 이 레지스트리에 접근할 수 있습니다. 공개 공유는 비활성화됩니다.
  • organization: 레지스트리가 속한 조직입니다. 설정에 조직이 지정되지 않은 경우, 엔터티가 하나의 조직에만 속해 있다면 해당 엔터티에서 조직 정보를 가져옵니다.
  • description: 레지스트리에 대한 설명입니다.
  • artifact_types: 레지스트리에서 허용되는 아티팩트 타입입니다. 타입은
  • more than 128 characters and do not include characters /or ``:. If not specified, all types are accepted. Allowed types added to the registry cannot be removed later.: 128자를 넘을 수 없으며, /또는:` 문자를 포함할 수 없습니다. 지정하지 않으면 모든 타입이 허용됩니다. 한 번 레지스트리에 추가된 허용 타입은 이후 제거할 수 없습니다.
Returns: 레지스트리 객체입니다. Examples:
import wandb

api = wandb.Api()
registry = api.create_registry(
    name="my-registry",
    visibility="restricted",
    organization="my-org",
    description="This is a test registry",
    artifact_types=["model"],
)

메서드 Api.create_run

create_run(
    run_id: 'str | None' = None,
    project: 'str | None' = None,
    entity: 'str | None' = None
) → public.Run
새 실행을 생성합니다. Args:
  • run_id: 실행에 할당할 ID입니다. 지정하지 않으면 W&B가 임의의 ID를 생성합니다.
  • project: 실행을 기록할 프로젝트입니다. 프로젝트를 지정하지 않으면 “Uncategorized” 프로젝트에 실행을 기록합니다.
  • entity: 프로젝트를 소유한 엔터티입니다. 엔터티를 지정하지 않으면 기본 엔터티에 실행을 기록합니다.
Returns: 새로 생성된 Run.

method Api.create_run_queue

create_run_queue(
    name: 'str',
    type: 'public.RunQueueResourceType',
    entity: 'str | None' = None,
    prioritization_mode: 'public.RunQueuePrioritizationMode | None' = None,
    config: 'dict | None' = None,
    template_variables: 'dict | None' = None
) → public.RunQueue
W&B Launch에서 새로운 실행 큐를 생성합니다. Args:
  • name: 생성할 큐의 이름
  • type: 큐에 사용할 리소스 유형. “local-container”, “local-process”, “kubernetes”, “sagemaker”, “gcp-vertex” 중 하나.
  • entity: 큐를 생성할 엔터티 이름. None이면, 설정된 엔터티 또는 기본 엔터티를 사용합니다.
  • prioritization_mode: 사용할 우선순위 부여 방식의 버전. “V0” 또는 None 중 하나.
  • config: 큐에 사용할 기본 리소스 구성. 템플릿 변수를 지정하려면 핸들바(예: {{var}})를 사용합니다.
  • template_variables: config와 함께 사용할 템플릿 변수 스키마 딕셔너리.
Returns: 새로 생성된 RunQueue. Raises: 매개변수가 유효하지 않으면 ValueError를 발생시키고, wandb API 오류가 발생하면 wandb.Error를 발생시킵니다.

메서드 Api.create_team

create_team(team: 'str', admin_username: 'str | None' = None) → Team
새 팀을 생성합니다. 매개변수:
  • team: 팀 이름
  • admin_username: 팀 관리자 사용자 이름. 기본값은 현재 사용자입니다.
반환값: Team 객체.

메서드 Api.create_user

create_user(email: 'str', admin: 'bool | None' = False) → User
새 사용자를 생성합니다. 매개변수:
  • email: 사용자의 이메일 주소입니다.
  • admin: 사용자를 전역 인스턴스 관리자 권한으로 설정합니다.
반환값: User 객체를 반환합니다.

메서드 Api.delete_automation

delete_automation(obj: 'Automation | str') → Literal[True]
자동화를 삭제합니다. 인자:
  • obj: 삭제할 자동화 또는 해당 ID.
반환값: 자동화가 성공적으로 삭제되면 True를 반환합니다.

method Api.flush

flush()
로컬 캐시를 비웁니다. api 객체는 실행에 대한 로컬 캐시를 유지합니다. 따라서 스크립트를 실행하는 동안 실행 상태가 변경될 수 있는 경우, 해당 실행과 연관된 최신 값을 가져오려면 api.flush()로 로컬 캐시를 비워야 합니다.

메서드 Api.from_path

from_path(path: 'str')
경로에서 실행, 스윕, 프로젝트 또는 리포트를 반환합니다. Args:
  • path: 프로젝트, 실행, 스윕 또는 리포트의 경로
Returns: Project, Run, Sweep 또는 BetaReport 인스턴스. Raises: 경로가 잘못되었거나 객체가 존재하지 않으면 wandb.Error가 발생합니다. Examples: 다음 코드 스니펫에서 “project”, “team”, “run_id”, “sweep_id”, 그리고 “report_name”은 각각 프로젝트, 팀, 실행 ID, 스윕 ID 및 특정 리포트의 이름을 나타내는 플레이스홀더입니다.
import wandb

api = wandb.Api()

project = api.from_path("project")
team_project = api.from_path("team/project")
run = api.from_path("team/project/runs/run_id")
sweep = api.from_path("team/project/sweeps/sweep_id")
report = api.from_path("team/project/reports/report_name")

메서드 Api.integrations

integrations(
    entity: 'str | None' = None,
    per_page: 'int' = 50
) → Iterator[Integration]
엔터티에 대한 모든 통합의 이터레이터를 반환합니다. 인수(Args):
  • entity: 통합을 가져올 대상 엔터티(예: 팀 이름). 제공하지 않으면 사용자의 기본 엔터티가 사용됩니다.
  • per_page: 페이지당 가져올 통합 개수. 기본값은 50입니다. 일반적으로 이 값을 변경할 필요는 없습니다.
반환(Yields):
  • Iterator[SlackIntegration | WebhookIntegration]: 지원되는 통합에 대한 이터레이터입니다.

메서드 Api.job

job(name: 'str | None', path: 'str | None' = None) → public.Job
Job 객체를 반환합니다. Args:
  • name: Job의 이름입니다.
  • path: Job 아티팩트를 다운로드할 루트 경로입니다.
Returns: Job 객체입니다.

메서드 Api.list_jobs

list_jobs(entity: 'str', project: 'str') → list[dict[str, Any]]
지정된 엔터티와 프로젝트에 대해 존재하는 경우, 작업 목록을 반환합니다. Args:
  • entity: 나열할 작업이 속한 엔터티입니다.
  • project: 나열할 작업이 속한 프로젝트입니다.
Returns: 조건에 일치하는 작업 목록입니다.

method Api.project

project(name: 'str', entity: 'str | None' = None) → public.Project
지정된 이름(및 주어진 경우 엔터티)을 가진 Project 를 반환합니다. Args:
  • name: 프로젝트 이름.
  • entity: 요청된 엔터티 이름. None이면 Api 에 전달된 기본 엔터티를 사용합니다. 기본 엔터티가 없으면 ValueError 를 발생시킵니다.
Returns: Project 객체를 반환합니다.

메서드 Api.projects

projects(entity: 'str | None' = None, per_page: 'int' = 200) → public.Projects
지정된 엔터티에 대한 프로젝트를 가져옵니다. Args:
  • entity: 요청할 엔터티의 이름입니다. None인 경우 Api에 전달된 기본 엔터티를 사용합니다. 기본 엔터티도 없으면 ValueError를 발생시킵니다.
  • per_page: 쿼리 페이지네이션을 위한 페이지 크기를 설정합니다. 일반적으로 이 값을 변경할 필요는 없습니다.
Returns: Projects 객체를 반환하며, 이는 Project 객체들의 반복 가능한 컬렉션입니다.

메서드 Api.queued_run

queued_run(
    entity: 'str',
    project: 'str',
    queue_name: 'str',
    run_queue_item_id: 'str',
    project_queue=None,
    priority=None
)
경로를 기준으로 대기열에 있는 단일 실행을 반환합니다. entity/project/queue_id/run_queue_item_id 형태의 경로를 파싱합니다.

메서드 Api.registries

registries(
    organization: 'str | None' = None,
    filter: 'dict[str, Any] | None' = None,
    per_page: 'int' = 100
) → Registries
Registry 객체의 지연(lazy) 이터레이터를 반환합니다. 이 이터레이터를 사용해 조직의 레지스트리 전반에서 레지스트리, 컬렉션 또는 아티팩트 버전을 검색하고 필터링할 수 있습니다. Args:
  • organization: (str, optional) 가져올 레지스트리가 속한 organization입니다. 지정하지 않으면 사용자 설정에 지정된 organization을 사용합니다.
  • filter: (dict, optional) 지연 레지스트리 이터레이터의 각 객체에 적용할 MongoDB 스타일의 필터입니다. 레지스트리에 대해 필터링할 수 있는 필드는 name, description, created_at, updated_at입니다. 컬렉션에 대해 필터링할 수 있는 필드는 name, tag, description, created_at, updated_at입니다. 버전에 대해 필터링할 수 있는 필드는 tag, alias, created_at, updated_at, metadata입니다.
  • per_page: 쿼리 페이지네이션에 사용할 페이지 크기를 설정합니다.
Returns: Registry 객체의 지연(lazy) 이터레이터. Examples: 이름에 “model”이 포함된 모든 레지스트리를 찾습니다.
import wandb

api = wandb.Api()  # 엔터티가 여러 조직에 속한 경우 조직을 지정하세요
api.registries(filter={"name": {"$regex": "model"}})
레지스트리에서 이름이 “my_collection”이고 태그가 “my_tag”인 모든 컬렉션을 찾습니다
api.registries().collections(filter={"name": "my_collection", "tag": "my_tag"})
컬렉션 이름에 “my_collection”이 포함되고 버전 별칭이 “best”인 모든 아티팩트 버전을 레지스트리에서 찾습니다
api.registries().collections(
    filter={"name": {"$regex": "my_collection"}}
).versions(filter={"alias": "best"})
레지스트리에서 “model”을 포함하고 태그가 “prod”이거나 별칭이 “best”인 모든 아티팩트 버전을 찾습니다
api.registries(filter={"name": {"$regex": "model"}}).versions(
    filter={"$or": [{"tag": "prod"}, {"alias": "best"}]}
)

메서드 Api.registry

registry(name: 'str', organization: 'str | None' = None) → Registry
레지스트리 이름을 기준으로 레지스트리를 반환합니다. Args:
  • name: 레지스트리의 이름입니다. wandb-registry- 접두사는 포함하지 않습니다.
  • organization: 레지스트리가 속한 조직입니다. 설정에 organization이 설정되어 있지 않으면, 엔터티가 하나의 조직에만 속해 있는 경우 해당 엔터티에서 organization 값을 가져옵니다.
Returns: 레지스트리 객체를 반환합니다. Examples: 레지스트리를 가져와 업데이트하기
import wandb

api = wandb.Api()
registry = api.registry(name="my-registry", organization="my-org")
registry.description = "This is an updated description"
registry.save()

메서드 Api.reports

reports(
    path: 'str' = '',
    name: 'str | None' = None,
    per_page: 'int' = 50
) → public.Reports
지정된 프로젝트 경로에 대한 리포트를 가져옵니다. 참고: wandb.Api.reports() API는 베타 버전이며 향후 릴리스에서 변경될 수 있습니다. 인자:
  • path: 리포트가 위치한 프로젝트의 경로입니다. 프로젝트를 생성한 엔터티를 접두사로 지정하고, 그 뒤에 슬래시(/)를 붙여 지정합니다.
  • name: 요청된 리포트의 이름입니다.
  • per_page: 쿼리 페이지네이션을 위한 페이지 크기를 설정합니다. 일반적으로 이 값을 변경할 필요는 없습니다.
반환값: BetaReport 객체들의 이터러블 컬렉션인 Reports 객체를 반환합니다. 예시:
import wandb

wandb.Api.reports("entity/project")

메서드 Api.run

run(path='')
entity/project/run_id 형식의 경로를 파싱하여 하나의 실행을 반환합니다. Args:
  • path: entity/project/run_id 형식의 실행 경로입니다. api.entity 가 설정된 경우 project/run_id 형식으로 지정할 수 있고, api.project 가 설정된 경우 run_id만 지정할 수 있습니다.
Returns: Run 객체.

메서드 Api.run_queue

run_queue(entity: 'str', name: 'str')
주어진 엔터티에 대한 지정된 이름의 RunQueue를 반환합니다. run 큐를 생성하는 방법에 대한 자세한 내용은 Api.create_run_queue를 참조하세요.

메서드 Api.runs

runs(
    path: 'str | None' = None,
    filters: 'dict[str, Any] | None' = None,
    order: 'str' = '+created_at',
    per_page: 'int' = 50,
    include_sweeps: 'bool' = True,
    lazy: 'bool' = True
)
Run 객체들을 지연 방식으로 순회하는 Runs 객체를 반환합니다. 필터링할 수 있는 필드는 다음과 같습니다:
  • createdAt: 실행이 생성된 시점의 타임스탬프입니다. (ISO 8601 형식, 예: “2023-01-01T12:00:00Z”)
  • displayName: 사람이 읽을 수 있는 실행의 표시 이름입니다. (예: “eager-fox-1”)
  • duration: 실행의 전체 실행 시간(초 단위)입니다.
  • group: 관련 실행들을 함께 묶기 위해 사용하는 그룹 이름입니다.
  • host: 실행이 수행된 호스트 이름입니다.
  • jobType: 실행의 작업 유형 또는 목적입니다.
  • name: 실행의 고유 식별자입니다. (예: “a1b2cdef”)
  • state: 실행의 현재 상태입니다.
  • tags: 실행과 연결된 태그입니다.
  • username: 실행을 시작한 사용자의 사용자 이름입니다.
또한 실행의 config 항목이나 summary 메트릭으로도 필터링할 수 있습니다. 예를 들어 config.experiment_name, summary_metrics.loss 등입니다. 더 복잡한 필터링을 위해서는 MongoDB 쿼리 연산자를 사용할 수 있습니다. 자세한 내용은 https://docs.mongodb.com/manual/reference/operator/query 를 참조하세요. 다음 연산들이 지원됩니다:
  • $and
  • $or
  • $nor
  • $eq
  • $ne
  • $gt
  • $gte
  • $lt
  • $lte
  • $in
  • $nin
  • $exists
  • $regex
Args:
  • path: (str) 프로젝트에 대한 경로이며, “entity/project” 형식이어야 합니다.
  • filters: (dict) MongoDB 쿼리 언어를 사용하여 특정 실행들을 조회하는 필터입니다. config.key, summary_metrics.key, state, entity, createdAt 등 실행 속성으로 필터링할 수 있습니다.
  • For example: {"config.experiment_name": "foo"} 는 experiment name이 “foo”로 설정된 config 항목을 가진 실행들을 찾습니다.
  • order: (str) 정렬 기준은 created_at, heartbeat_at, config.*.value, 또는 summary_metrics.* 가 될 수 있습니다. order 앞에 +를 붙이면 오름차순(기본값), -를 붙이면 내림차순입니다. 기본 정렬 기준은 가장 오래된 것부터 최신까지의 run.created_at입니다.
  • per_page: (int) 쿼리 페이지네이션을 위한 페이지 크기를 설정합니다.
  • include_sweeps: (bool) 결과에 sweep 실행을 포함할지 여부입니다.
  • lazy: (bool) 더 빠른 성능을 위해 지연 로딩을 사용할지 여부입니다. True(기본값)일 때는 필수 실행 메타데이터만 초기 로딩되며, config, summaryMetrics, systemMetrics 같은 무거운 필드는 접근 시점에 필요에 따라 로딩됩니다. 전체 데이터를 미리 로딩하려면 False로 설정하세요.
Returns: Run 객체들의 반복 가능한 컬렉션인 Runs 객체를 반환합니다. Examples:
import wandb
from wandb.apis.public import Api

# 프로젝트에서 config.experiment_name이 "foo"로 설정된 실행을 찾습니다
Api.runs(path="my_entity/project", filters={"config.experiment_name": "foo"})
# config.experiment_name이 "foo" 또는 "bar"로 설정된 프로젝트의 실행 찾기
Api.runs(
    path="my_entity/project",
    filters={
         "$or": [
             {"config.experiment_name": "foo"},
             {"config.experiment_name": "bar"},
         ]
    },
)
# config.experiment_name이 정규식과 일치하는 프로젝트의 실행 찾기
# (앵커는 지원되지 않음)
Api.runs(
    path="my_entity/project",
    filters={"config.experiment_name": {"$regex": "b.*"}},
)
# 실행 이름이 정규식과 일치하는 프로젝트의 실행 찾기
# (앵커는 지원되지 않음)
Api.runs(
    path="my_entity/project", filters={"display_name": {"$regex": "^foo.*"}}
)
# 손실값 오름차순으로 정렬된 프로젝트의 실행 찾기
Api.runs(path="my_entity/project", order="+summary_metrics.loss")

메서드 Api.slack_integrations

slack_integrations(
    entity: 'str | None' = None,
    per_page: 'int' = 50
) → Iterator[SlackIntegration]
엔터티에 대한 Slack 통합 이터레이터를 반환합니다. 인자:
  • entity: 통합을 가져올 엔터티(예: 팀 이름). 지정하지 않으면 기본 엔터티가 사용됩니다.
  • per_page: 페이지당 가져올 통합 개수. 기본값은 50입니다. 일반적으로 이 값을 변경할 이유는 없습니다.
Yields:
  • Iterator[SlackIntegration]: Slack 통합 이터레이터.
예시: 팀 “my-team”에 등록된 모든 Slack 통합을 가져옵니다:
import wandb

api = wandb.Api()
slack_integrations = api.slack_integrations(entity="my-team")
채널 이름이 “team-alerts-”로 시작하는 Slack 연동만 찾으려면:
slack_integrations = api.slack_integrations(entity="my-team")
team_alert_integrations = [
    ig
    for ig in slack_integrations
    if ig.channel_name.startswith("team-alerts-")
]

메서드 Api.sweep

sweep(path='')
entity/project/sweep_id 형식의 경로를 파싱하여 sweep을 반환합니다. Args:
  • path: entity/project/sweep_id 형식의 sweep 경로입니다. api.entity가 설정된 경우 project/sweep_id 형식을 사용할 수 있고, api.project가 설정된 경우에는 sweep_id만 사용할 수 있습니다.
Returns: Sweep 객체.

method Api.sync_tensorboard

sync_tensorboard(root_dir, run_id=None, project=None, entity=None)
tfevent 파일이 포함된 로컬 디렉터리를 wandb로 동기화합니다.

메서드 Api.team

team(team: 'str') → Team
주어진 이름과 일치하는 Team을 반환합니다. Args:
  • team: 팀 이름.
Returns: Team 객체.

메서드 Api.update_automation

update_automation(
    obj: 'Automation',
    create_missing: 'bool' = False,
    **kwargs: 'Unpack[WriteAutomationsKwargs]'
) → Automation
기존 automation을 업데이트합니다. Args:
  • obj: 업데이트할 automation입니다. 반드시 이미 존재하는 automation이어야 합니다. create_missing (bool): True이면 automation이 존재하지 않을 경우 새로 생성합니다. **kwargs: automation을 업데이트하기 전에 추가로 지정할 값들입니다. 지정하면, 이미 automation에 설정되어 있던 값을 덮어씁니다:
    • name: automation의 이름.
    • description: automation의 설명.
    • enabled: automation이 활성화되어 있는지 여부.
    • scope: automation의 scope.
    • event: automation을 트리거하는 event.
    • action: automation에 의해 트리거되는 action.
Returns: 업데이트된 automation을 반환합니다. Examples: 기존 automation(“my-automation”)을 비활성화하고 설명을 수정합니다:
import wandb

api = wandb.Api()

automation = api.automation(name="my-automation")
automation.enabled = False
automation.description = "Kept for reference, but no longer used."

updated_automation = api.update_automation(automation)
또는
import wandb

api = wandb.Api()

automation = api.automation(name="my-automation")

updated_automation = api.update_automation(
    automation,
    enabled=False,
    description="Kept for reference, but no longer used.",
)

메서드 Api.upsert_run_queue

upsert_run_queue(
    name: 'str',
    resource_config: 'dict',
    resource_type: 'public.RunQueueResourceType',
    entity: 'str | None' = None,
    template_variables: 'dict | None' = None,
    external_links: 'dict | None' = None,
    prioritization_mode: 'public.RunQueuePrioritizationMode | None' = None
)
W&B Launch에서 실행 대기열을 생성하거나 업데이트합니다. Args:
  • name: 생성할 대기열의 이름
  • entity: 대기열을 생성할 선택적 엔터티 이름. None이면 구성된 엔터티 또는 기본 엔터티를 사용합니다.
  • resource_config: 대기열에 사용할 선택적 기본 리소스 구성. 템플릿 변수를 지정하려면 핸들바(예: {{var}})를 사용합니다.
  • resource_type: 대기열에 사용할 리소스 유형. “local-container”, “local-process”, “kubernetes”, “sagemaker”, “gcp-vertex” 중 하나입니다.
  • template_variables: 구성에서 사용할 템플릿 변수 스키마 딕셔너리.
  • external_links: 대기열에서 사용할 선택적 외부 링크 딕셔너리.
  • prioritization_mode: 사용할 선택적 우선순위 지정 버전. “V0” 또는 None.
Returns: 업서트된 RunQueue. Raises: 매개변수가 잘못된 경우 ValueError, wandb API 오류가 발생한 경우 wandb.Error

메서드 Api.user

user(username_or_email: 'str') → User | None
사용자 이름 또는 이메일 주소로 사용자를 반환합니다. 이 함수는 로컬 관리자에게만 동작합니다. 자신의 사용자 객체를 가져오려면 api.viewer를 사용하세요. 인수:
  • username_or_email: 사용자의 사용자 이름 또는 이메일 주소.
반환값: User 객체 또는 사용자를 찾을 수 없으면 None.

메서드 Api.users

users(username_or_email: 'str') → list[User]
부분적인 사용자 이름 또는 이메일 주소를 기준으로 모든 사용자를 반환합니다. 이 함수는 로컬 관리자만 사용할 수 있습니다. 자신의 사용자 객체를 가져오려면 api.viewer를 사용하세요. 인자:
  • username_or_email: 찾고자 하는 사용자의 사용자 이름 또는 이메일 주소의 접두사 또는 접미사입니다.
반환값: User 객체의 배열입니다.

메서드 Api.webhook_integrations

webhook_integrations(
    entity: 'str | None' = None,
    per_page: 'int' = 50
) → Iterator[WebhookIntegration]
엔터티에 대한 webhook integration 이터레이터를 반환합니다. Args:
  • entity: integration을 가져올 엔터티(예: 팀 이름). 제공하지 않으면 사용자의 기본 엔터티가 사용됩니다.
  • per_page: 페이지별로 가져올 integration 개수. 기본값은 50입니다. 일반적으로 이 값을 변경해야 할 이유는 거의 없습니다.
Yields:
  • Iterator[WebhookIntegration]: webhook integration 이터레이터.
Examples: 팀 “my-team”에 대해 등록된 모든 webhook integration을 가져오려면:
import wandb

api = wandb.Api()
webhook_integrations = api.webhook_integrations(entity="my-team")
https://my-fake-url.com"에 요청을 보내는 웹훅 통합만 검색합니다:
webhook_integrations = api.webhook_integrations(entity="my-team")
my_webhooks = [
    ig
    for ig in webhook_integrations
    if ig.url_endpoint.startswith("https://my-fake-url.com")
]