@weave.op() (Python), ou les encapsuler avec weave.op() (TypeScript).
Décorez les fonctions et sous-fonctions avec le niveau de granularité le plus fin possible afin de capturer le flux d’exécution complet de l’application. Cela vous aide à mieux comprendre et orienter le comportement de votre application.
Tracer des fonctions imbriquées
Cette section présente pas à pas un exemple qui trace une fonction et ses sous-fonctions imbriquées. Le code suivant s’appuie sur l’exemple de démarrage rapide et ajoute une logique pour compter les éléments renvoyés par le LLM et les encapsuler 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 enregistrée automatiquement.
Suivre les métadonnées
Maintenant que Weave trace vos fonctions imbriquées, vous pouvez enrichir ces traces avec un contexte supplémentaire sur l’exécution, comme l’utilisateur ou l’environnement. Vous pouvez suivre les métadonnées à l’aide du gestionnaire de contexteweave.attributes, en lui passant un dictionnaire des métadonnées à suivre au moment de l’appel.
En reprenant l’exemple précédent :
- Python
- TypeScript
Suivez les métadonnées au moment de l’exécution, comme vos ID utilisateur et l’environnement de votre code (développement, préproduction ou production).Pour suivre les paramètres système, comme un prompt système, utilisez Weave Models.
Et ensuite
- Suivez le tutoriel sur la gestion des versions des applications pour enregistrer, gérer les versions et organiser les modifications ad hoc des prompts, des modèles et des applications.