Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
This is an interactive notebook. You can run it locally or use the links below:
🔑 Prerequisites
Before you can begin tracing in Weave, complete the following prerequisites.
- Install the W&B Weave SDK and log in with your API key.
- Install the OpenAI SDK and log in with your API key.
- Initialize your W&B project.
# Install dependencies and imports
!pip install wandb weave openai -q
import json
import os
from getpass import getpass
from openai import OpenAI
import weave
# 🔑 Setup your API keys
# Running this cell will prompt you for your API key with `getpass` and will not echo to the terminal.
#####
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("---")
#####
# 🏠 Enter your W&B project name
weave_client = weave.init("MY_PROJECT_NAME") # 🐝 Your W&B project name
🐝 Run your first trace
The following code sample shows how to capture and visualize a trace in Weave using the @weave.op decorator. It defines a function called extract_fruit that sends a prompt to OpenAI’s GPT-4o to extract structured data (fruit, color, and flavor) from a sentence. By decorating the function with @weave.op, Weave automatically tracks the function execution, including inputs, outputs, and intermediate steps. When the function is called with a sample sentence, the full trace is saved and viewable in the Weave UI.
@weave.op() # 🐝 Decorator to track requests
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)
🚀 Looking for more examples?