메인 콘텐츠로 건너뛰기

객체

객체는 버전 관리되는 직렬화 가능한 데이터입니다. 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
weave.init("your-team-name/your-project-name")
# 목록을 저장하고 이름을 'cat-names'로 지정합니다
weave.publish(['felix', 'jimbo', 'billie'], 'cat-names')
이름을 지정해 객체를 저장하면, 해당 객체가 아직 없을 경우 Weave가 그 객체의 첫 번째 버전을 생성합니다.

객체 다시 가져오기

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

객체 삭제

객체 버전을 삭제하려면 object ref에서 .delete()를 호출하세요.
weave.init("your-team-name/your-project-name")
cat_names_ref = weave.ref('cat-names:v1')
cat_names_ref.delete()
삭제된 객체에 접근하면 오류가 발생합니다. 삭제된 객체를 참조하는 레퍼런스가 있는 객체를 resolve하면, 삭제된 객체 대신 DeletedRef가 반환됩니다.

object ref 구성하기

Weave에서 완전 수식된 object ref URI는 다음과 같습니다:
weave:///<your-team-name>/<your-project-name>/object/<object_name>:<object_version>
  • your-team-name: W&B entity(사용자 이름 또는 팀 이름)
  • your-project-name: W&B 프로젝트
  • object_name: 객체 이름
  • object_version: 버전 해시, v0 또는 v1 같은 문자열, 또는 :latest 같은 별칭 중 하나입니다. 모든 객체에는 :latest 별칭이 있습니다.
몇 가지 다른 스타일로 ref를 구성할 수 있습니다:
  • weave.ref(<name>): 객체의 :latest 버전을 조회합니다. weave.init(...)를 호출해야 합니다.
  • weave.ref(<name>:<version>): 객체의 지정된 버전을 조회합니다. weave.init(...)를 호출해야 합니다.
  • weave.ref(<fully_qualified_ref_uri>): 지정된 완전 수식된 object ref URI에 있는 객체를 조회합니다. weave.init()를 호출할 필요가 없습니다.