Skip to main content
Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens suivants :
Dans ce notebook, vous apprendrez à utiliser l’API de service W&B Weave pour journaliser des traces afin de :
  1. Simuler un appel LLM simple et sa réponse, puis les journaliser vers Weave.
  2. Simuler un appel LLM plus complexe et sa réponse, puis les journaliser vers Weave.
  3. Exécuter un exemple de requête de recherche sur les traces journalisées.
Afficher les traces journalisées Pour afficher toutes les traces Weave créées lors de l’exécution du code de ce guide, accédez à l’onglet Traces de votre projet Weave (défini par team_id\project_id), puis sélectionnez le nom de la trace.
Avant de commencer, vérifiez que les prérequis sont remplis.

Prérequis : définir les variables et les points de terminaison

Avant de journaliser des traces, vous devez configurer les points de terminaison de l’API de service et vous authentifier avec vos identifiants W&B. Le code suivant définit les URL des points de terminaison permettant d’accéder à l’API de service : Vous devez également définir les variables suivantes :
  • project_id : le nom du projet Weights & Biases dans lequel vous souhaitez journaliser vos traces.
  • team_id : le nom de votre équipe CoreWeave Forge.
  • wandb_token : votre clé API W&B.

Trace simple

Les sections suivantes vous expliquent comment créer une trace simple :
  1. Démarrer une trace simple
  2. Terminer une trace simple

Démarrer une trace simple

Le code suivant crée un exemple d’appel LLM payload_start et le journalise dans Weave via le point de terminaison url_start. L’objet payload_start simule un appel au modèle gpt-4o d’OpenAI avec la requête Why is the sky blue?. En cas de réussite, ce code affiche un message indiquant que la trace a démarré :

Terminer une trace simple

Pour finaliser la trace simple, le code suivant crée un exemple d’appel LLM payload_end et le journalise dans Weave via le point de terminaison url_end. L’objet payload_end reproduit la réponse du modèle gpt-4o d’OpenAI à la requête Why is the sky blue?. L’objet est formaté de sorte que la synthèse de la tarification et la complétion de chat soient générées dans la vue de trace du tableau de bord Weave. En cas de succès, ce code affiche un message indiquant que la trace est terminée :

Trace complexe

Maintenant que vous avez journalisé une trace simple, en une seule étape, les sections suivantes vous guident dans la création d’une trace plus complexe comportant des spans enfants, comparable à une recherche RAG en plusieurs opérations :
  1. Démarrer une trace complexe
  2. Ajouter un span enfant pour une recherche de document RAG
  3. Ajouter un span enfant pour un appel de complétion LLM
  4. Terminer une trace complexe

Démarrer une trace complexe

Le code suivant montre comment créer une trace plus complexe comportant plusieurs spans, par exemple une recherche RAG (Retrieval-Augmented Generation) suivie d’un appel LLM. La première partie initialise une trace parente (payload_parent_start) qui représente l’opération. Ici, l’opération traite la requête de l’utilisateur Can you summarize the key points of this document?. L’objet payload_parent_start simule l’étape initiale d’un flux de travail en plusieurs étapes et journalise l’opération dans Weave à l’aide du point de terminaison url_start. En cas de réussite, ce code affiche un message indiquant que l’appel parent a été journalisé :

Ajouter un span enfant pour une recherche de document RAG

Le code suivant montre comment ajouter un span enfant à la trace parente complexe démarrée à l’étape précédente. Cette étape modélise la sous-opération de recherche de document RAG dans le flux de travail. La trace enfant est initialisée avec l’objet payload_child_start, qui comprend :
  • trace_id : lie ce span enfant à la trace parente.
  • parent_id : associe le span enfant à l’opération parente.
  • inputs : journalise la requête de recherche, par exemple : "This is a search query of the documents I'm looking for."
Lorsque l’appel au point de terminaison url_start réussit, le code affiche un message indiquant que l’appel enfant a démarré et s’est terminé :

Ajouter un span enfant pour un appel de complétion LLM

Le code suivant montre comment ajouter un autre span enfant à la trace parente complexe, qui représente un appel de complétion LLM. Cette étape modélise la génération de la réponse du LLM à partir du contexte documentaire récupéré lors de l’opération RAG précédente. La trace de complétion LLM est initiée avec l’objet payload_child_start, qui comprend :
  • trace_id : relie ce span enfant à la trace parente.
  • parent_id : associe le span enfant au flux de travail parent.
  • inputs : journalise les messages d’entrée du LLM, notamment la requête de l’utilisateur et le contexte documentaire ajouté.
  • model : indique le modèle utilisé pour l’opération (gpt-4o).
En cas de succès, le code affiche un message indiquant que la trace du span enfant LLM a démarré :
Une fois l’opération terminée, l’objet payload_child_end clôt la trace en journalisant la réponse générée par le LLM dans le champ output. Le code journalise également une synthèse des informations d’utilisation. En cas de réussite, le code affiche un message indiquant que la trace du span enfant du LLM a démarré puis s’est terminée :

Terminer une trace complexe

Le code suivant montre comment finaliser la trace parente, ce qui marque la fin du flux de travail. Cette étape agrège les résultats de tous les spans enfants (par exemple, la recherche RAG et la complétion du LLM), puis journalise la sortie finale et les métadonnées. La trace est finalisée à l’aide de l’objet payload_parent_end, qui comprend :
  • id : le parent_call_id obtenu lors du démarrage initial de la trace parente.
  • output : la sortie finale du flux de travail.
  • summary : regroupe les données d’utilisation du flux de travail.
  • prompt_tokens : nombre total de jetons utilisés pour l’ensemble des prompts.
  • completion_tokens : nombre total de jetons générés dans l’ensemble des réponses.
  • total_tokens : nombre total de jetons pour le flux de travail.
  • requests : nombre total de requêtes effectuées (ici, 1).
En cas de succès, le code affiche :

Exécuter une requête de recherche

Une fois les traces journalisées dans Weave, vous pouvez utiliser l’API de service pour les interroger par programmation. Le code suivant montre comment interroger les traces créées dans les exemples précédents, en ne conservant que celles dont le champ inputs.model est égal à gpt-4o. L’objet query_payload comprend :
  • project_id : identifie l’équipe et le projet à interroger.
  • filter : garantit que la requête renvoie uniquement les racines de trace (traces de premier niveau).
  • query : définit la logique de filtrage à l’aide de l’opérateur $expr.
    • $getField : récupère le champ inputs.model.
    • $literal : sélectionne les traces dont inputs.model est égal à "gpt-4o".
  • limit : limite la requête à 10 000 résultats.
  • offset : fait commencer la requête au premier résultat.
  • sort_by : trie les résultats selon l’horodatage started_at, par ordre décroissant.
  • include_feedback : exclut les données de feedback des résultats.
Si la requête aboutit, la réponse contient les données de trace correspondant aux paramètres de la requête :
Dernière modification le 30 septembre 2026