メインコンテンツへスキップ
Weave の属性を使用すると、トレースと評価にカスタムメタデータを追加できます。このメタデータには、環境名、モデルバージョン、実験 ID、ユーザー ID などの情報に加え、Weave データの整理、フィルター、分析に役立つその他のコンテキスト情報も含められます。 属性は、特に次の項目でトレースをグループ化またはフィルターする必要がある場合に役立ちます。
  • デプロイ
  • テナント
  • Experiments
Weave では、属性を追加する方法が 2 つあります。
  • call ごとの属性: weave.attributes() を使用して、特定の op やコードブロックにメタデータを追加します
  • グローバル属性: 初期化時に global_attributes フィールドを使用して属性を設定すると、プロジェクト内のすべてのトレースと評価に適用されます
UI では、トレースと評価の実行中にログされたすべての属性を表示できます。さらに、それらを使用してデータをフィルターしたりグループ化したりできます。
call.attributes は、call が開始されると変更できません。op を呼び出す前に、 このコンテキストマネージャーを使用して必要なメタデータを設定してください。

call ごとの属性

weave.attributes() コンテキストマネージャーを使用すると、特定のトレース対象の操作にメタデータを追加できます。これにより、特定の function call や評価 run にコンテキスト情報をタグ付けできます。
この function は、コンテキストマネージャーブロック内 (Python) またはコールバック function 内 (TypeScript) に含まれる、すべてのトレース対象の操作に属性を付加します。 weave.attributes() コンテキストはネストすることもできます。同じ key については、内側のコンテキストが外側のコンテキストを上書きします。

グローバル属性

Weave の初期化時にグローバル属性を設定すると、プロジェクト内のすべてのトレースと評価に自動的に適用されます。これは、環境、デプロイバージョン、チーム情報など、プロジェクト全体で共通のメタデータを引き継がせるのに便利です。

グローバル属性と call ごとの属性を組み合わせる

グローバル属性と call ごとの属性は併用できます。同じキーを持つ call ごとの属性は、グローバル属性を上書きします。

実行中に属性を取得する

call にログされている現在の属性セットを返します。これは、条件分岐のロジックに必要な call やコンテキストをデバッグする際に役立ちます。
次の例では、process_data 関数をログするように Weave デコレータを設定し、ログする属性を設定して、実行時にそれらを返します。
出力は次のとおりです。
weave.get_current_call() は、@weave.op でデコレートされた関数の内部でのみ動作します。op の外では None を返します。