Prise en main
Pour commencer, appelezweave.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
Les métadonnées personnalisées vous aident à filtrer et à analyser les traces dans l’interface Weave. Pour suivre les métadonnées de vos appels LangChain, utilisez le gestionnaire de contexteweave.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
Le stockage des traces des applications LLM dans une base de données centrale aide aussi bien pendant le développement qu’en Production. Ces traces vous fournissent un jeu de données que vous pouvez utiliser pour déboguer et améliorer votre application. Weave capture automatiquement les traces de vos applications LangChain. Weave suit et consigne les appels effectués via la bibliothèque LangChain, y compris les modèles de prompt, les chaînes, les appels LLM, les outils et les étapes de l’agent. Vous pouvez consulter les traces dans l’interface web de Weave.
Tracer les appels manuellement
Outre le tracing automatique, vous pouvez tracer manuellement les appels à l’aide du callbackWeaveTracer 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
Vous pouvez transmettre le callback WeaveTracer à des composants LangChain spécifiques afin de tracer certaines requêtes.
Utilisation du gestionnaire de contexte weave_tracing_enabled
Vous pouvez également utiliser le gestionnaire de contexte weave_tracing_enabled pour activer le tracing dans des blocs de code spécifiques.
Configuration
Lorsque vous appelezweave.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
Cette section explique comment le tracing de Weave s’intègre au système de callbacks de LangChain, afin que vous puissiez choisir l’approche la mieux adaptée à votre application.Journalisation automatique
La journalisation automatique fournie parweave.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
Les méthodes de 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
Organiser et évaluer des LLM pour différents cas d’usage devient plus complexe à mesure que vous ajoutez des composants comme les prompts, les configurations de modèle et les paramètres d’inférence. Avecweave.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
Les évaluations vous aident à mesurer les performances de vos modèles. La classeweave.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
Tracing des appels asynchrones : un bug dans l’implémentation deAsyncCallbackManager 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.