Passer au contenu principal
Si vous utilisez des bibliothèques de fournisseurs de LLM (comme OpenAI, Anthropic, Cohere ou Mistral) dans votre application, le patching automatique permet à Weave de tracer automatiquement vos appels LLM. Lorsque vous appelez weave.init(), Weave intercepte (applique un patch à) les bibliothèques clientes LLM prises en charge. Le code de votre application reste inchangé. Vous utilisez le SDK du fournisseur comme d’habitude, et Weave enregistre chaque requête en tant qu’appel Weave. Cette page explique quand et comment modifier ce comportement : désactiver le suivi automatique, le limiter à des fournisseurs spécifiques, ou post-traiter les entrées et les sorties (par exemple, pour masquer des PII).

Comportement par défaut

Par défaut, Weave patche automatiquement et suit les appels aux bibliothèques LLM courantes telles que openai et anthropic. Appelez weave.init(...) au début de votre programme et utilisez ces bibliothèques normalement. Leurs appels apparaissent dans les Traces de votre projet.

Configurer le patching automatique

Les sections suivantes expliquent comment activer, désactiver ou effectuer le fine-tuning du patching automatique en Python et en TypeScript. Choisissez l’onglet correspondant à votre SDK.
L’argument autopatch_settings est obsolète. Utilisez implicitly_patch_integrations=False pour désactiver le patching implicite, ou appelez des fonctions de patch spécifiques comme patch_openai(settings={...}) pour configurer les paramètres de chaque intégration.
Par défaut, Weave fournit un patching implicite automatique pour toutes les intégrations prises en charge.Patching implicite (automatique) : Weave patche automatiquement les bibliothèques, quel que soit le moment où vous les importez.
# Option 1: Importer avant weave.init()
import openai
import weave
weave.init('your-team-name/your-project-name')  # OpenAI est patché automatiquement.

# Option 2: Importer après weave.init()
import weave
weave.init('your-team-name/your-project-name')
import anthropic  # Patché automatiquement via le hook d’import.
Désactiver le patching implicite : vous pouvez désactiver le patching automatique si vous préférez un contrôle explicite.
import weave

# Option 1: Via le paramètre settings
weave.init('your-team-name/your-project-name', settings={'implicitly_patch_integrations': False})

# Option 2: Via une variable d’environnement
# Définissez WEAVE_IMPLICITLY_PATCH_INTEGRATIONS=false avant d’exécuter votre script

# Lorsque le patching implicite est désactivé, vous devez appliquer explicitement les patchs aux intégrations
import openai
weave.patch_openai()  # Désormais requis pour le traçage OpenAI
Patching explicite (manuel) : vous pouvez appliquer explicitement des patchs aux intégrations pour un contrôle plus fin. C’est utile lorsque le patching implicite est désactivé ou lorsque vous souhaitez tracer seulement un sous-ensemble de fournisseurs.
import weave
weave.init('your-team-name/your-project-name')
weave.integrations.patch_openai()  # Activer le traçage OpenAI
weave.integrations.patch_anthropic()  # Activer le traçage Anthropic
Après avoir exécuté le code ci-dessus, Weave trace uniquement les fournisseurs que vous avez explicitement patchés.

Post-traiter les entrées et les sorties

En plus d’activer ou de désactiver le patching, vous pouvez transformer ce que Weave enregistre pour chaque appel. Vous pouvez personnaliser la manière dont Weave enregistre les entrées et les sorties (par exemple, pour masquer des PII ou des secrets) en passant des paramètres à la fonction de patch :
import weave.integrations

def redact_inputs(inputs: dict) -> dict:
    if "email" in inputs:
        inputs["email"] = "[REDACTED]"
    return inputs

weave.init(...)
weave.integrations.patch_openai(
    settings={
        "op_settings": {"postprocess_inputs": redact_inputs}
    }
)
Pour plus d’informations sur la gestion des données sensibles, voir Comment utiliser Weave avec des données PII.