クイックスタート
使い始めるには、スクリプトの冒頭でweave.init() を呼び出すだけです。 weave.init() の 引数 は、 トレース を整理するのに役立つ Projects 名です。
呼び出しメタデータの追跡
LangChain 呼び出しから メタデータ を追跡するには、weave.attributes コンテキストマネージャーを使用できます。 このコンテキストマネージャーを使用すると、チェーンや単一のリクエストなど、特定のコードブロックに対してカスタム メタデータ を設定できます。
トレース
LLM アプリケーションの トレース を中央データベースに保存することは、開発と プロダクション の両方のフェーズで不可欠です。 これらの トレース は、貴重な データセット を提供することで、アプリケーションのデバッグと改善に欠かせないものとなります。 Weave は LangChain アプリケーションの トレース を自動的にキャプチャします。 プロンプトテンプレート、チェーン、LLM 呼び出し、ツール、エージェント のステップなど、LangChain ライブラリを介して行われるすべての呼び出しを追跡し、ログを記録します。 トレース は Weave のウェブインターフェースで確認できます。
手動による呼び出しのトレース
自動追跡に加えて、WeaveTracer コールバック または weave_tracing_enabled コンテキストマネージャーを使用して、手動で呼び出しを トレース することもできます。 これらの メソッド は、LangChain アプリケーションの個々の部分でリクエスト コールバック を使用するのと似ています。
注意: Weave はデフォルトで LangChain Runnable を トレース します。これは weave.init() を呼び出すと有効になります。 weave.init() を呼び出す前に環境変数 WEAVE_TRACE_LANGCHAIN を "false" に設定することで、この 振る舞い を無効にできます。 これにより、アプリケーション内の特定のチェーンや個々のリクエストの トレース 動作を制御できるようになります。
WeaveTracer の使用
WeaveTracer コールバック を個々の LangChain コンポーネントに渡して、特定のリクエストを トレース できます。
weave_tracing_enabled コンテキストマネージャーの使用
あるいは、 weave_tracing_enabled コンテキストマネージャーを使用して、特定のコードブロックの トレース を有効にすることもできます。
設定
weave.init を呼び出すと、環境変数 WEAVE_TRACE_LANGCHAIN が "true" に設定され、 トレース が有効になります。 これにより、Weave が LangChain アプリケーションの トレース を自動的にキャプチャできるようになります。 この 振る舞い を無効にしたい場合は、環境変数を "false" に設定してください。
LangChain コールバックとの関係
自動ログ記録
weave.init() による自動 ログ 記録は、LangChain アプリケーションのすべてのコンポーネントにコンストラクタ コールバック を渡すのと似ています。 つまり、プロンプトテンプレート、チェーン、LLM 呼び出し、ツール、エージェント のステップを含むすべてのインタラクションが、アプリケーション全体でグローバルに追跡されます。
手動ログ記録
手動 ログ 記録 メソッド (WeaveTracer および weave_tracing_enabled )は、LangChain アプリケーションの個々の部分でリクエスト コールバック を使用するのと似ています。 これらの メソッド を使用すると、アプリケーションのどの部分を トレース するかをより細かく制御できます。
- コンストラクタコールバック: チェーンやコンポーネント全体に適用され、すべてのインタラクションを一貫して ログ 記録します。
- リクエストコールバック: 特定のリクエストに適用され、特定の実行の詳細な トレース を可能にします。
Models と 評価
プロンプト、 モデル 設定、推論 パラメータ など複数のコンポーネントがある中で、さまざまな ユースケース に向けたアプリケーション内の LLM を整理し 評価 することは困難です。weave.Model を使用すると、システムプロンプトや使用した モデル などの 実験 の詳細をキャプチャして整理でき、異なるイテレーションの比較が容易になります。
次の例は、LangChain のチェーンを WeaveModel でラップする方法を示しています。
Weave Models は serve や Evaluations と併用することもできます。
評価 (Evaluations)
評価 は、 モデル のパフォーマンスを測定するのに役立ちます。weave.Evaluation クラスを使用すると、特定のタスクや Datasets に対する モデル のパフォーマンスを把握でき、異なる モデル やアプリケーションのイテレーションの比較が容易になります。 次の例は、作成した モデル を 評価 する方法を示しています。
Weave を LangChain と統合することで、LLM アプリケーションの包括的な ログ 記録と監視が保証され、デバッグやパフォーマンスの最適化が容易になります。
既知の問題
- 非同期呼び出しのトレース - LangChain の
AsyncCallbackManagerの実装におけるバグにより、非同期呼び出しが正しい順序で トレース されない問題があります。 これを修正するために PR を提出済みです。 そのため、LangChain Runnable でainvoke、astream、abatchメソッド を使用する場合、 トレース 内の呼び出し順序が正確でない可能性があります。