import weave
// TODO: 'your-team-name/your-project-name'를 올바른 값으로 설정하세요.
client = weave.init('your-team-name/your-project-name')
# 프롬프트의 두 버전을 게시합니다.
v0_ref = weave.publish(
weave.StringPrompt("Answer the user's question: {question}"),
name="my-prompt",
)
v1_ref = weave.publish(
weave.StringPrompt("Answer the user's question helpfully and concisely: {question}"),
name="my-prompt",
)
# --- 별칭: 특정 버전을 가리키는 이름 있는 포인터 ---
# 버전에 별칭을 지정합니다.
client.set_aliases(v0_ref, "staging")
client.set_aliases(v1_ref, "production")
# 버전의 별칭을 조회합니다.
client.get_aliases(v1_ref) # ["production", "latest"]
# 다른 버전에 설정해 별칭을 이동합니다.
client.set_aliases(v0_ref, "production") # v1에서 자동으로 해제됩니다.
# 별칭을 해석해 객체를 로드합니다.
prompt = weave.ref("my-prompt:production").get()
# 프로젝트의 모든 별칭을 나열합니다.
client.list_aliases()
# 별칭을 제거합니다.
client.remove_aliases(v0_ref, "production")
# --- 태그: 특정 버전에 붙는 레이블 ---
# 버전에 태그를 추가합니다.
client.add_tags(v0_ref, ["reviewed", "passed-eval"])
client.add_tags(v1_ref, ["reviewed", "needs-improvement"])
# 버전의 태그를 조회합니다.
client.get_tags(v0_ref) # ["passed-eval", "reviewed"]
# 프로젝트의 모든 고유 태그를 나열합니다.
client.list_tags()
# 버전에서 태그를 제거합니다.
client.remove_tags(v1_ref, ["needs-improvement"])
# --- 결합: 단일 Call로 둘 다 가져옵니다. ---
tags, aliases = client.get_tags_and_aliases(v0_ref)
# --- 태그와 별칭을 인라인으로 지정해 게시합니다. ---
ref = weave.publish(
weave.StringPrompt("Be brief: {question}"),
name="my-prompt",
tags=["reviewed"],
aliases=["production"],
)