- LLM ライブラリ Call の自動トラッキング
weave.opによるカスタム関数のトラッキング- API を直接使用した手動での Call トラッキング
LLM ライブラリ Call の自動トラッキング
Weave は、openai、anthropic、cohere、mistral、LangChain など、多くの一般的なライブラリやフレームワークと自動的に統合されます。LLM またはフレームワークのライブラリをインポートし、Weave プロジェクトを初期化するだけで、LLM やプラットフォームに対するすべての Call が自動的にトレースされ、project に記録されます。コードを追加で変更する必要はありません。サポートされるライブラリインテグレーションの一覧については、インテグレーションの概要を参照してください。
- Python
- TypeScript
カスタム関数をトラッキングする
LLM アプリケーションには、前処理や後処理、プロンプトなど、トラッキングしたい追加のロジックが含まれることがよくあります。Weave が自動的にトレースする LLM Call に加えて、独自の関数も取得したい場合は、この方法を使用します。- Python
- TypeScript
クラスおよびオブジェクトのメソッドをトラッキングする
スタンドアロンの関数だけでなく、クラスやオブジェクトのメソッドもトラッキングできます。クラス内のメソッドはどれでも、weave.op でデコレートするだけでトラッキングできます。
- Python
- TypeScript
並列 (マルチスレッド) 関数の Call をトレースする
デフォルトでは、並列の Call はすべて Weave 上で個別のルート Call として表示されるため、トレースの階層構造を追いにくくなります。同じ親 Op の下に正しくネストさせるには、ThreadPoolExecutor を使用します。
- Python
- TypeScript
次のコードサンプルは、
ThreadPoolExecutor の使用例です。
1 つ目の関数 func は、x を受け取って x+1 を返すシンプルな Op です。2 つ目の関数 outer は、入力のリストを受け取る別の Op です。
outer の内部で ThreadPoolExecutor と exc.map(func, inputs) を使用しているため、func への各 Call は同じ親トレースのコンテキストを引き継ぎます。
Call の手動トラッキング
自動インテグレーションもweave.op デコレーターもワークフローに合わない場合は、API を直接使用して Call を手動で作成できます。この方法では定型コードが増えますが、Call の開始と終了のタイミングを完全に制御できます。
- Python
- TypeScript
- HTTP API