@weave.op() (Python) ou en les encapsulant avec weave.op() (TypeScript).
Décorez les fonctions et sous-fonctions de la manière la plus granulaire possible afin de capturer le flux d’exécution complet de l’application. Vous pourrez ainsi mieux comprendre et façonner le comportement de votre application.
Tracer des fonctions imbriquées
Cette section détaille pas à pas un exemple qui trace une fonction et ses sous-fonctions imbriquées. Le code suivant reprend l’exemple de démarrage rapide et y ajoute une logique qui compte les éléments renvoyés par le LLM, puis les encapsule dans une fonction de plus haut niveau. De plus, l’exemple utiliseweave.op() pour tracer chaque fonction, son ordre d’appel et sa relation parent-enfant :
- Python
- TypeScript
extract_dinos et count_dinos), ainsi que la trace OpenAI journalisée automatiquement.
Suivre les métadonnées
Maintenant que Weave trace vos fonctions imbriquées, vous pouvez enrichir ces traces avec des informations de contexte supplémentaires sur le run, comme l’utilisateur ou l’environnement. Pour suivre des métadonnées, utilisez le gestionnaire de contexteweave.attributes en lui transmettant un dictionnaire des métadonnées à suivre au moment de l’appel.
Reprenons l’exemple précédent :
- Python
- TypeScript
Suivez les métadonnées au moment de l’exécution, comme les ID de vos utilisateurs et l’environnement d’exécution de votre code (développement, staging ou production).Pour suivre les paramètres système, comme un prompt système, utilisez les Weave Models.
Étapes suivantes
- Suivez le tutoriel sur la gestion des versions des applications pour capturer, versionner et organiser les modifications ad hoc apportées aux prompts, aux modèles et aux applications.