메인 콘텐츠로 건너뛰기

오브젝트

**오브젝트(Object)**는 버전 관리가 가능하고 직렬화 가능한 데이터입니다. Weave는 오브젝트가 변경될 때 자동으로 버전을 생성하여, 변경 불가능한 이력을 만듭니다. 오브젝트에는 다음이 포함됩니다:
  • Datasets: 평가를 위한 예제 모음
  • Models: LLM 로직을 위한 설정과 매개변수
  • Prompts: 버전 관리되는 프롬프트 템플릿
dataset = weave.Dataset(
    name="test-cases",
    rows=[
        {"input": "What is 2+2?", "expected": "4"},
        {"input": "What is the capital of France?", "expected": "Paris"},
    ]
)
weave.publish(dataset)

객체 게시하기

Weave의 직렬화 레이어는 객체를 저장하고 버전을 관리합니다.
import weave
# 프로젝트 'intro-example'에 대한 추적을 초기화합니다
weave.init('intro-example')
# 리스트를 저장하면서 이름을 'cat-names'로 지정합니다
weave.publish(['felix', 'jimbo', 'billie'], 'cat-names')
이름을 지정해 객체를 저장하면, 해당 객체가 아직 존재하지 않는 경우 Weave가 그 객체의 첫 번째 버전을 생성합니다.

객체 다시 가져오기

weave.publish는 Ref를 반환합니다. 어떤 Ref에서든 .get()을 호출해 객체를 다시 가져올 수 있습니다.Ref를 생성한 다음, 해당 Ref에서 객체를 다시 가져올 수 있습니다.
weave.init('intro-example')
cat_names = weave.ref('cat-names').get()

객체 삭제하기

객체 버전을 삭제하려면 객체 ref에서 .delete()를 호출하세요.
weave.init('intro-example')
cat_names_ref = weave.ref('cat-names:v1')
cat_names_ref.delete()
삭제된 객체에 접근하려고 하면 오류가 발생합니다. 삭제된 객체를 참조하는 객체를 resolve하면, 삭제된 객체 대신 DeletedRef 객체가 반환됩니다.

Ref 스타일

완전 한정 Weave 객체 ref URI는 다음과 같습니다:
weave://<entity>/<project>/object/<object_name>:<object_version>
  • entity: wandb 엔티티(사용자 이름 또는 팀)
  • project: wandb 프로젝트
  • object_name: 객체 이름
  • object_version: 버전 해시, v0, v1…과 같은 문자열, 또는 “:latest”와 같은 별칭 중 하나입니다. 모든 객체에는 “:latest” 별칭이 있습니다.
Ref는 몇 가지 다른 방식으로 작성할 수 있습니다.
  • weave.ref(<name>): weave.init(<project>)이(가) 먼저 호출되어 있어야 합니다. “:latest” 버전을 가리킵니다.
  • weave.ref(<name>:<version>): weave.init(<project>)이(가) 먼저 호출되어 있어야 합니다.
  • weave.ref(<fully_qualified_ref_uri>): weave.init을 호출하지 않고도 작성할 수 있습니다.