weave.init() を呼び出すと、Weave は LiteLLM 経由の LLM Call を自動的にトラッキングしてログします。このガイドでは、Weave と LiteLLM を組み合わせてトレースを取得する方法、Call をバージョン管理された Op でラップする方法、Model で実験を整理する方法、関数呼び出しの動作をトラッキングする方法について説明します。LLM アプリケーションを構築していて、LiteLLM がサポートする複数のモデルプロバイダー全体で可観測性を確保したい場合にご活用ください。
トレース
LLM アプリケーションのトレースは、開発中も本番環境でも、一元化されたデータベースに保存することが重要です。保存したトレースはデバッグに使用できるほか、アプリケーションの改善に役立つデータセットとしても活用できます。注: LiteLLM を使用する場合は、Weave は LiteLLM のトレースを自動的に取得します。ライブラリはこれまでどおり使用できます。まずfrom litellm import completionではなくimport litellmでライブラリをインポートし、litellm.completion()で completion 関数を呼び出してください。これにより、すべての関数とパラメーターが正しく参照されます。
weave.init() を呼び出してください。
独自の Op でラップする
Weave Op は、実験中にコードを自動的にバージョン管理することで結果を再現可能にし、さらに入力と出力を取得します。LiteLLM の completion 関数を呼び出す関数を作成して@weave.op() でデコレートすると、Weave が入力と出力を自動的にトラッキングします。以下に例を示します。
実験を効率化するために Model を作成する
多くの要素が同時に変化する状況では、実験を整理するのは困難です。Model クラスを使用すると、システムプロンプトや使用しているモデルなど、アプリの実験に関する詳細を取得して整理できます。これにより、アプリのさまざまな反復処理を整理して比較しやすくなります。
Model は、コードのバージョン管理や入力と出力の取得に加えて、アプリケーションの動作を制御する構造化されたパラメーターも取得します。これにより、どのパラメーターが最も効果的かを見つけやすくなります。また、Weave モデルは serve や評価と組み合わせて使用することもできます。
次の例では、さまざまなモデルと temperature を試すことができます。
関数呼び出し
LiteLLM は、対応するモデルでの関数呼び出しをサポートしています。Weave はこれらの関数の Call を自動的にトラッキングするため、関数、引数、応答を他のトレースとあわせて確認できます。