Passer au contenu principal
Il s’agit d’un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens ci-dessous :

🔑 Prérequis

Avant de commencer à utiliser Tracing dans Weave, assurez-vous de remplir les prérequis suivants.
  1. Installez le SDK Weave de W&B et connectez-vous avec votre clé API.
  2. Installez le SDK OpenAI et connectez-vous avec votre clé API.
  3. Initialisez votre projet W&B.
# Installer les dépendances et les imports
!pip install wandb weave openai -q

import json
import os
from getpass import getpass

from openai import OpenAI

import weave

# 🔑 Configurer vos clés API
# L'exécution de cette cellule vous demandera votre clé API via `getpass` et ne l'affichera pas dans le 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("---")
#####

# 🏠 Entrez votre nom de projet W&B
weave_client = weave.init("MY_PROJECT_NAME")  # 🐝 Votre nom de projet W&B

🐝 Créez votre première trace

L’exemple de code suivant montre comment capturer et visualiser une trace dans Weave à l’aide du décorateur @weave.op. Il définit une fonction appelée extract_fruit qui envoie un prompt à GPT-4o d’OpenAI pour extraire des données structurées (fruit, couleur et saveur) à partir d’une phrase. En décorant la fonction avec @weave.op, Weave suit automatiquement son exécution, y compris les entrées, les sorties et les étapes intermédiaires. Lorsque la fonction est appelée avec une phrase d’exemple, la trace complète est enregistrée et peut être consultée dans la Weave UI.
@weave.op()  # 🐝 Décorateur pour suivre les requêtes
def extract_fruit(sentence: str) -> dict:
    client = OpenAI()
    system_prompt = (
        "Analysez les phrases en un dict JSON avec les clés : fruit, color et 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)

🚀 Besoin d’autres exemples ?