メインコンテンツへスキップ
LLM を活用したアプリケーションには、複数の LLM 呼び出しに加えて、監視が重要な追加のデータ処理や検証ロジックが含まれることがあります。これらのネストされた関数とその親子関係は、Python では @weave.op() デコレーターを使用し、TypeScript では weave.op() でラップすることで、Weave でトラッキングできます。 アプリケーションの完全な実行フローを把握するために、関数やサブ関数はできるだけ細かい粒度でデコレートすることをお勧めします。これにより、アプリケーションの挙動をより深く理解し、改善しやすくなります。 次のコードは、クイックスタートの例 を基に、LLM から返された項目数を数え、それらをより上位の関数でまとめるロジックを追加したものです。さらに、この例では weave.op() を使用して、すべての関数、その呼び出し順序、および親子関係をトレースします:
ネストされた関数上記のコードを実行すると、Traces ページに、ネストされた 2 つの関数 (extract_dinoscount_dinos) の入力と出力に加え、自動的に記録された OpenAI のトレースが表示されます。中央のトレース ツリー パネルと、選択した Call の詳細パネルを示す、ネストされた Weave Traces ページ

メタデータをトラッキングする

weave.attributes コンテキストマネージャーを使用し、call 時にトラッキングするメタデータを含む辞書を渡すことで、メタデータをトラッキングできます。 上記の例の続きです。
ユーザー ID やコードの実行環境 (development、staging、または production) などのメタデータは、実行時にトラッキングすることを推奨します。system prompt などのシステム設定をトラッキングするには、Weave Models を使用することを推奨します。
attributes の使用方法の詳細は、属性を定義してログする を参照してください。

次のステップ

  • App Versioning チュートリアル に沿って、アドホックなプロンプト、モデル、アプリケーションへの変更を記録し、バージョン管理し、整理しましょう。