Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-weave-caching.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
이 노트북은 대화형 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
🔑 사전 준비 사항
Weave 에서 트레이싱을 시작하기 전에 다음 단계를 완료하세요.
- W&B Weave SDK를 설치하고 사용자의 API 키로 로그인합니다.
- OpenAI SDK를 설치하고 사용자의 API 키로 로그인합니다.
- 사용자의 W&B Projects 를 초기화합니다.
# 의존성 설치 및 임포트
!pip install wandb weave openai -q
import json
import os
from getpass import getpass
from openai import OpenAI
import weave
# 🔑 API 키 설정
# 이 셀을 실행하면 `getpass`를 통해 API 키 입력을 요청하며 터미널에 표시되지 않습니다.
#####
print("---")
print(
"다음 링크에서 W&B API 키를 생성하세요: https://wandb.ai/settings#apikeys"
)
os.environ["WANDB_API_KEY"] = getpass("W&B API 키를 입력하세요: ")
print("---")
print("다음 링크에서 OpenAI API 키를 생성할 수 있습니다: https://platform.openai.com/api-keys")
os.environ["OPENAI_API_KEY"] = getpass("OpenAI API 키를 입력하세요: ")
print("---")
#####
# 🏠 W&B 프로젝트 이름을 입력하세요
weave_client = weave.init("MY_PROJECT_NAME") # 🐝 사용자의 W&B 프로젝트 이름
🐝 첫 번째 trace 실행하기
다음 코드 예제는 @weave.op 데코레이터를 사용하여 Weave 에서 trace를 캡처하고 시각화하는 방법을 보여줍니다. 이 예제는 OpenAI의 GPT-4o에 프롬프트를 보내 문장에서 구조화된 데이터(과일, 색상, 맛)를 추출하는 extract_fruit 함수를 정의합니다. 함수에 @weave.op 데코레이터를 지정하면 Weave 가 입력, 출력 및 중간 단계를 포함한 함수 실행을 자동으로 추적합니다. 샘플 문장과 함께 함수가 호출되면 전체 trace가 저장되어 Weave UI에서 확인할 수 있습니다.
@weave.op() # 🐝 요청을 추적하기 위한 데코레이터
def extract_fruit(sentence: str) -> dict:
client = OpenAI()
system_prompt = (
"문장을 분석하여 fruit, color, flavor를 키로 갖는 JSON 딕셔너리로 변환하세요."
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": sentence},
],
temperature=0.7,
response_format={"type": "json_object"},
)
extracted = response.choices[0].message.content
return json.loads(extracted)
sentence = "최근 발견된 Goocrux 행성에는 많은 과일이 있습니다. 그곳에서 자라는 neoskizzles은 보라색이며 사탕 같은 맛이 납니다."
extract_fruit(sentence)
🚀 더 많은 예제를 찾으시나요?