Il s’agit d’un notebook interactif. Vous pouvez l’exécuter en local ou utiliser les liens ci-dessous :
Utiliser l’API de service pour enregistrer et interroger des traces
- Créer une simulation d’un appel et d’une réponse LLM simples, et l’enregistrer dans Weave.
- Créer une simulation d’un appel et d’une réponse LLM plus complexes, et l’enregistrer dans Weave.
- Exécuter un exemple de requête de recherche sur les traces enregistrées.
Consulter les traces enregistrées
Vous pouvez consulter toutes les traces Weave créées lorsque vous exécutez le code de ce guide en accédant à l’onglet Traces de votre projet Weave (spécifié par team_id\project_id), puis en sélectionnant le nom de la trace.
Avant de commencer, consultez les prérequis
Prérequis : définir les variables et les endpoints
https://trace.wandb.ai/call/starthttps://trace.wandb.ai/call/endhttps://trace.wandb.ai/calls/stream_query
project_id: Le nom du projet W&B dans lequel vous souhaitez consigner vos traces.team_id: Le nom de votre équipe W&B.wandb_token: Votre clé API W&B.
Trace simple
Démarrer une trace simple
payload_start et le journalise dans Weave via l’endpoint url_start. L’objet payload_start simule un appel à gpt-4o d’OpenAI avec la requête Why is the sky blue?.
En cas de succès, ce code affichera un message indiquant que la trace a été démarrée :
Terminer une trace simple
payload_end, et l’enregistre dans Weave à l’aide de l’endpoint url_end. L’objet payload_end imite la réponse de gpt-4o d’OpenAI à la requête Why is the sky blue?. L’objet est formaté de sorte que les informations récapitulatives de tarification et la chat complétion soient générées dans la vue de trace du tableau de bord Weave.
En cas de réussite, ce code affichera un message indiquant que la trace est terminée :
Trace complexe
- Démarrer une trace complexe
- Ajouter un span enfant pour une recherche de document RAG
- Ajouter un span enfant pour un appel de complétion LLM
- Terminer une trace complexe
Démarrer une trace complexe
payload_parent_start) qui représente l’opération globale. Dans ce cas, l’opération consiste à traiter la requête utilisateur Can you summarize the key points of this document?.
L’objet payload_parent_start reproduit l’étape initiale d’un flux de travail à plusieurs étapes, en enregistrant l’opération dans Weave à l’aide de l’endpoint url_start.
En cas de réussite, ce code affichera un message indiquant que l’Appel parent a été enregistré :
Ajouter un span enfant pour une recherche de documents RAG
payload_child_start, qui inclut :
trace_id: relie ce span enfant à la trace parente.parent_id: associe le span enfant à l’opération parente.inputs: consigne la requête de recherche, par ex. :"Ceci est une requête de recherche pour les documents que je cherche."
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
payload_child_start, qui comprend :
trace_id: relie ce span enfant à la trace parente.parent_id: associe le span enfant au flux de travail global.inputs: enregistre les messages d’entrée pour le LLM, y compris la requête de l’utilisateur et le contexte documentaire ajouté.model: spécifie le modèle utilisé pour l’opération (gpt-4o).
payload_child_end met fin à la trace en enregistrant la réponse générée par le LLM dans le champ output. Les informations récapitulatives d’utilisation sont également enregistrées.
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
payload_parent_end, qui comprend :
id: leparent_call_iddu démarrage initial de la trace parente.output: représente la sortie finale de l’ensemble du flux de travail.summary: consolide les données d’utilisation pour l’ensemble du flux de travail.prompt_tokens: nombre total de tokens utilisés pour tous les prompts.completion_tokens: nombre total de tokens générés dans toutes les réponses.total_tokens: nombre total combiné de tokens pour le flux de travail.requests: nombre total de requêtes effectuées (dans ce cas,1).
Exécuter une requête de recherche
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 ne renvoie que les racines de trace (traces de niveau supérieur).query: définit la logique de filtrage à l’aide de l’opérateur$expr:$getField: récupère le champinputs.model.$literal: sélectionne les traces pour lesquellesinputs.modelest égal à"gpt-4o".
limit: limite la requête à 10 000 résultats.offset: commence la requête au premier résultat.sort_by: trie les résultats selon l’horodatagestarted_at, par ordre décroissant.include_feedback: exclut les données de feedback des résultats.