Passer au contenu principal
Cette page vous montre comment configurer des moniteurs personnalisés dans W&B Weave afin que vous puissiez évaluer passivement le trafic de production et mettre en évidence les tendances et les problèmes dans vos applications LLM. Utilisez ce guide lorsque vous souhaitez définir vos propres critères d’évaluation, au-delà des signaux prédéfinis de Weave, pour les traces de production. Les moniteurs utilisent des juges LLM pour évaluer passivement le trafic de production afin de mettre en évidence les tendances et les problèmes dans vos applications LLM. Par exemple, vous pouvez surveiller les réponses de votre application pour en vérifier l’exactitude ou l’utilité, ou surveiller les entrées utilisateur pour identifier les tendances dans les questions posées à vos agents. Les moniteurs stockent automatiquement tous les résultats d’évaluation dans la base de données de W&B Weave, ce qui vous permet d’analyser les tendances et les schémas historiques. Vous pouvez surveiller le texte, les images et l’audio dans les entrées et les sorties de votre application. Les moniteurs ne nécessitent aucune modification du code de votre application. Configurez-les à l’aide de l’interface Weave. Si vous devez intervenir activement sur le comportement de votre application en fonction des scores, utilisez plutôt les guardrails.

Signaux et moniteurs personnalisés

Utilisez les signaux, des évaluateurs automatisés prédéfinis pour les traces de production, pour mettre rapidement en place une surveillance en production, puis ajoutez des moniteurs personnalisés pour des critères d’évaluation propres à votre application.
SignauxMoniteurs personnalisés
ConfigurationActivation en un clic, sans rédaction de promptContrôle complet sur le prompt d’évaluation, le modèle et les paramètres
PortéeClassificateurs prédéfinis de qualité et d’erreursTous les critères d’évaluation que vous définissez
Sélection des tracesAutomatique (traces racine réussies pour la qualité, traces en échec pour les erreurs)Opérations, filtres et taux d’échantillonnage configurables
ModèleServerless Inference (prédéfini)Tout modèle commercial ou modèle Serverless Inference
Cas d’utilisationSurveillance rapide en production avec des classificateurs éprouvésCritères d’évaluation personnalisés propres à votre application

Créer un moniteur dans Weave

Pour créer un moniteur personnalisé dans Weave :
  1. Ouvrez l’interface W&B, puis ouvrez votre projet Weave.
  2. Dans la barre latérale de Weave, sélectionnez Monitors, puis le bouton + New Monitor. La boîte de dialogue modale Create new monitor s’ouvre.
  3. Dans le menu Create new monitor, configurez les champs suivants :
    • Name : doit commencer par une lettre ou un chiffre. Peut contenir des lettres, des chiffres, des tirets et des caractères de soulignement.
    • Description (facultatif) : expliquez à quoi sert le moniteur.
    • Bouton Active monitor : activez ou désactivez le moniteur.
    • Calls to monitor :
      • Operations : choisissez un ou plusieurs @weave.op à surveiller. Vous devez journaliser au moins une trace utilisant l’op pour qu’il apparaisse dans la liste des ops disponibles.
      • Filter (facultatif) : limitez les appels éligibles (par exemple avec max_tokens ou top_p).
      • Sampling rate : le pourcentage d’appels à évaluer (de 0 % à 100 %).
        Un taux d’échantillonnage plus faible réduit les coûts, car chaque appel d’évaluation entraîne un coût.
    • LLM-as-a-judge configuration :
      • Scorer name : doit commencer par une lettre ou un chiffre. Peut contenir des lettres, des chiffres, des tirets et des caractères de soulignement.
      • Score Audio : filtre les modèles LLM disponibles pour n’afficher que les modèles compatibles avec l’audio, et ouvre le champ Media Scoring JSON Paths.
      • Score Images : filtre les modèles LLM disponibles pour n’afficher que les modèles compatibles avec les images, et ouvre le champ Media Scoring JSON Paths.
      • Judge model : sélectionnez le modèle à utiliser pour évaluer vos ops. Le menu contient les modèles LLM commerciaux que vous avez configurés dans votre compte W&B, ainsi que des modèles Serverless Inference. Les modèles compatibles avec l’audio portent le libellé Audio Input à côté de leur nom. Pour le modèle sélectionné, configurez les paramètres suivants :
        • Configuration name : un nom pour cette configuration de modèle.
        • System prompt : définit le rôle et la persona du modèle juge, par exemple « You are an impartial AI judge. »
        • Response format : le format que le juge utilise pour produire sa réponse, par exemple un json_object ou du text brut.
        • Scoring prompt : la tâche d’évaluation utilisée pour évaluer vos ops. Vous pouvez faire référence à des variables de prompt issues de vos ops dans vos prompts d’évaluation. Par exemple, « Evaluate whether {output} is accurate based on {ground_truth}. »
      • Media Scoring JSON Paths : spécifiez des expressions JSONPath (RFC 9535) pour extraire les médias de vos données de trace. Si vous ne spécifiez aucun chemin, le moniteur inclut tous les médias évaluables provenant des messages utilisateur. Ce champ apparaît lorsque vous activez Score Audio ou Score Images.
  4. Après avoir configuré les champs du moniteur, sélectionnez Create monitor. Cela ajoute le moniteur à votre projet Weave. Lorsque votre code commence à générer des traces, vous pouvez consulter les scores dans l’onglet Traces en sélectionnant le nom du moniteur, puis en examinant les données dans le panneau correspondant.
Vous pouvez également comparer et visualiser les données de trace du moniteur dans l’interface Weave, ou les télécharger dans des formats tels que CSV et JSON à l’aide du bouton de téléchargement () dans l’onglet Traces. Weave stocke automatiquement tous les résultats des scorers dans le champ feedback de l’objet Call.

Exemple : créer un moniteur de véracité

L’exemple complet suivant vous guide dans la création d’un moniteur qui évalue la véracité des énoncés générés. À la fin, vous disposerez d’un moniteur actif qui évalue un exemple d’op dans votre projet Weave, avec des traces évaluées visibles dans l’interface W&B.
  1. Définissez une fonction qui génère des énoncés. Certains sont vrais, d’autres non :
import weave
import random
import openai

weave.init("my-team/my-weave-project")

client = openai.OpenAI()

@weave.op()
def generate_statement(ground_truth: str) -> str:
    if random.random() < 0.5:
        response = client.chat.completions.create(
            model="gpt-4.1",
            messages=[
                {
                    "role": "user",
                    "content": f"Generate a statement that is incorrect based on this fact: {ground_truth}"
                }
            ]
        )
        return response.choices[0].message.content
    else:
        return ground_truth

generate_statement("The Earth revolves around the Sun.")
  1. Exécutez la fonction au moins une fois pour enregistrer une trace dans votre projet. Cela rend l’op disponible pour le monitoring dans l’interface W&B.
  2. Ouvrez votre projet Weave dans l’interface W&B et sélectionnez Monitors dans la barre latérale. Sélectionnez ensuite New Monitor.
  3. Dans le menu Create new monitor, configurez les champs avec les valeurs suivantes :
    • Name: truthfulness-monitor
    • Description: Evaluates the truthfulness of generated statements.
    • Active monitor: basculez sur on.
    • Operations: sélectionnez generate_statement.
    • Sampling rate: définissez 100% pour évaluer chaque appel.
    • Scorer name: truthfulness-scorer
    • Judge model: o3-mini-2025-01-31
    • System prompt: You are an impartial AI judge. Your task is to evaluate the truthfulness of statements.
    • Response format: json_object
    • Scoring prompt:
      Evaluate whether the output statement is accurate based on the input statement.
      
      This is the input statement: {ground_truth}
      
      This is the output statement: {output}
      
      The response should be a JSON object with the following fields:
      - is_true: a boolean stating whether the output statement is true or false based on the input statement.
      - reasoning: your reasoning as to why the statement is true or false.
      
  4. Sélectionnez Create monitor. Cela ajoute le moniteur à votre projet Weave.
  5. Dans votre script, appelez votre fonction avec des énoncés présentant différents degrés de véracité afin de tester la fonction d’évaluation :
generate_statement("The Earth revolves around the Sun.")
generate_statement("Water freezes at 0 degrees Celsius.")
generate_statement("The Great Wall of China was built over several centuries.")
  1. Après avoir exécuté le script avec plusieurs énoncés différents, ouvrez l’interface W&B et accédez à l’onglet Traces. Sélectionnez n’importe quelle trace LLMAsAJudgeScorer.score pour voir les résultats.
Trace du moniteur Vous disposez maintenant d’un moniteur de véracité fonctionnel qui évalue chaque appel de generate_statement et stocke les résultats aux côtés de la trace d’origine, prêts à être analysés et comparés dans l’interface Weave.