Prise en main
weave.init() au début de votre script. L’argument de weave.init() est un nom de projet que Weave utilise pour organiser vos traces.
Suivre les métadonnées des appels
weave.attributes. Ce gestionnaire de contexte vous permet de définir des métadonnées personnalisées pour un bloc de code précis, comme une chaîne ou une requête unique.
Traces
Tracer les appels manuellement
WeaveTracer ou du gestionnaire de contexte weave_tracing_enabled. Ces méthodes s’apparentent à l’utilisation de callbacks de requête dans certaines parties d’une application LangChain. Utilisez-les lorsque vous souhaitez tracer des chaînes ou des invocations spécifiques plutôt que l’ensemble de votre application.
Les sections suivantes décrivent chaque approche.
Remarque : par défaut, Weave trace les Runnables LangChain, et ce comportement est activé lorsque vous appelez weave.init(). Vous pouvez désactiver ce comportement en définissant la variable d’environnement WEAVE_TRACE_LANGCHAIN sur "false" avant d’appeler weave.init(). Cela vous permet de contrôler le comportement de tracing de chaînes spécifiques, voire de requêtes individuelles dans votre application.
Utiliser WeaveTracer
WeaveTracer à des composants LangChain spécifiques afin de tracer certaines requêtes.
Utilisation du gestionnaire de contexte weave_tracing_enabled
weave_tracing_enabled pour activer le tracing dans des blocs de code spécifiques.
Configuration
weave.init(), Weave active le tracing en définissant la variable d’environnement WEAVE_TRACE_LANGCHAIN sur "true". Cela permet à Weave de capturer automatiquement les traces de vos applications LangChain. Pour désactiver ce comportement, définissez la variable d’environnement sur "false".
Lien avec les callbacks de LangChain
Journalisation automatique
weave.init() revient à transmettre un callback de constructeur à chaque composant d’une application LangChain. Cela signifie que Weave suit toutes les interactions globalement à l’échelle de toute votre application, y compris les modèles de prompt, les chaînes, les appels LLM, les outils et les étapes de l’agent.
Journalisation manuelle
WeaveTracer et weave_tracing_enabled) sont similaires à l’utilisation de callbacks de requête dans certaines parties d’une application LangChain. Ces méthodes offrent un contrôle plus précis sur les parties de votre application qui font l’objet d’un tracing :
- Callbacks du constructeur : appliqués à l’ensemble de la chaîne ou du composant, ils journalisent toutes les interactions de manière cohérente.
- Callbacks de requête : appliqués à des requêtes spécifiques, ils permettent un tracing détaillé de certaines invocations.
Models et évaluations
weave.Model, vous pouvez capturer et organiser des détails expérimentaux, comme les prompts système ou les modèles que vous utilisez, ce qui facilite la comparaison des différentes itérations.
Les sections suivantes montrent comment encapsuler une chaîne LangChain en tant que weave.Model, puis l’évaluer.
L’exemple suivant montre comment encapsuler une chaîne LangChain dans un WeaveModel :
Vous pouvez également utiliser Weave Models avec serve ainsi qu’avec les Évaluations.
Évaluations
weave.Evaluation permet de capturer les performances de votre modèle sur des tâches ou des jeux de données spécifiques. Cela facilite la comparaison entre différents modèles et les différentes itérations de votre application. L’exemple suivant montre comment évaluer le modèle précédent :
Problèmes connus
AsyncCallbackManager dans LangChain fait que les appels asynchrones ne sont pas tracés dans le bon ordre. Weave a soumis une PR pour corriger ce problème. Par conséquent, l’ordre des appels dans la trace peut ne pas être correct lorsque vous utilisez les méthodes ainvoke, astream et abatch dans les Runnables de LangChain.