メインコンテンツへスキップ
これはインタラクティブなノートブックです。ローカル環境で実行するか、以下のリンクから開いてください:

🔑 前提条件

Weave でトレースを開始する前に、次の前提条件を満たしてください。
  1. W&B Weave SDK をインストールし、APIキー でログインします。
  2. OpenAI SDK をインストールし、APIキー でログインします。
  3. W&B プロジェクトを初期化します。
# 依存関係のインストールとインポート
!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(
    "Create a W&B API key at: https://wandb.ai/settings#apikeys"
)
os.environ["WANDB_API_KEY"] = getpass("Enter your W&B API key: ")
print("---")
print("You can generate your OpenAI API key here: https://platform.openai.com/api-keys")
os.environ["OPENAI_API_KEY"] = getpass("Enter your OpenAI API key: ")
print("---")
#####

# 🏠 W&Bのプロジェクト名を入力
weave_client = weave.init("MY_PROJECT_NAME")  # 🐝 W&Bのプロジェクト名

🐝 はじめてのトレースを実行する

次のコードサンプルは、@weave.op デコレータを使って Weave でトレースを取得し、可視化する方法を示しています。ここでは extract_fruit という関数を定義し、OpenAI の GPT-4o にプロンプトを送って、文から構造化データ(果物、色、風味)を抽出します。関数に @weave.op を付与すると、Weave は関数の実行を自動的にトラッキングし、入力・出力・中間ステップを含めて記録します。サンプルの文でこの関数を呼び出すと、トレース全体が保存され、Weave UI 上で閲覧できます。
@weave.op()  # 🐝 リクエストを追跡するデコレーター
def extract_fruit(sentence: str) -> dict:
    client = OpenAI()
    system_prompt = (
        "Parse sentences into a JSON dict with keys: fruit, color and flavor."
    )
    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 = "There are many fruits that were found on the recently discovered planet Goocrux. There are neoskizzles that grow there, which are purple and taste like candy."
extract_fruit(sentence)

🚀 さらにサンプルをお探しですか?