Prise en main
weave.init() au début de votre script. L’argument de weave.init() est un nom de projet qui vous aidera à organiser vos traces.
Suivi des 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 manuellement les appels
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.
Remarque : Weave trace les Runnables LangChain par défaut, 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 du tracing pour des chaînes spécifiques, voire pour des requêtes individuelles dans votre application.
Utiliser WeaveTracer
WeaveTracer à certains composants LangChain afin de tracer des requêtes spécifiques.
Utilisation du gestionnaire de contexte weave_tracing_enabled
weave_tracing_enabled pour activer Tracing sur des blocs de code spécifiques.
Configuration
weave.init, le tracing est activé en définissant la variable d’environnement WEAVE_TRACE_LANGCHAIN sur "true". Cela permet à Weave de capturer automatiquement les traces de vos applications LangChain. Si vous souhaitez 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 toutes les interactions, y compris les modèles de prompt, les chaînes, les appels LLM, les outils et les étapes de l’agent, sont suivies globalement à l’échelle de toute votre application.
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.
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, vous pouvez évaluer les performances de votre modèle sur des tâches ou des jeux de données spécifiques, ce qui 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 que nous avons créé :
En intégrant Weave à Langchain, vous pouvez garantir une journalisation et une surveillance complètes de vos applications LLM, ce qui facilite le débogage et l’optimisation des performances.
Problèmes connus
- Tracing des appels asynchrones - Un bug dans l’implémentation de
AsyncCallbackManagerde Langchain entraîne un traçage des appels asynchrones dans le mauvais ordre. Nous avons ouvert une PR pour corriger ce problème. Par conséquent, l’ordre des appels dans la trace peut être inexact lorsque vous utilisez les méthodesainvoke,astreametabatchdans les Langchain Runnables.