@weave.op() デコレーター (Python) を使用するか、weave.op() でラップする (TypeScript) ことで、これらのネストされた関数とその親子関係をトラッキングできます。
アプリケーションの実行フロー全体を取得できるよう、関数とサブ関数にはできるだけ細かい粒度でデコレーターを適用してください。これにより、アプリケーションの動作をより深く理解し、改善しやすくなります。
ネストされた関数をトレースする
このセクションでは、関数とそのネストされたサブ関数をトレースする例を順を追って説明します。以下のコードは クイックスタートの例 をベースに、LLM から返された項目の数をカウントするロジックを追加し、それらを上位の関数でラップしています。さらに、この例ではweave.op() を使用して、すべての関数とその呼び出し順序、親子関係をトレースします。
- Python
- TypeScript
extract_dinos と count_dinos) の入力と出力に加えて、自動的にログされた OpenAI のトレースが表示されます。
メタデータをトラッキングする
Weave でネストされた関数をトレースできるようになったので、次はユーザーや環境など、run に関する追加のコンテキストをトレースに付与できます。メタデータをトラッキングするには、weave.attributes コンテキストマネージャーを使用し、トラッキングするメタデータの辞書を呼び出し時に渡します。
前の例の続きです。
- Python
- TypeScript
ユーザー ID や、コードの環境ステータス (開発、ステージング、本番) など、実行時に変わるメタデータをトラッキングできます。システムプロンプトなどのシステム設定をトラッキングするには、Weave モデルを使用してください。
次のステップ
- App Versioning チュートリアルに沿って、プロンプト、モデル、アプリケーションに加えたアドホックな変更を取得し、バージョン管理して整理しましょう。