Weave では、保存ビュー を使うことで、トレースされた関数呼び出しや評価の操作方法をカスタマイズできます。保存ビューを定義すると、フィルター、ソート、列の表示/非表示を設定して、関連するデータにすばやくアクセスできます。
ビューは Weave Python SDK から直接、または UI から作成、変更、保存できます。Python SDK ではプログラム的なフィルタリングやクエリに対してきめ細かな制御が可能で、UI では Traces タブと Evals タブ内で、さまざまなテーブルの表示設定を簡単に探索・保存できます。
このガイドでは次の内容を説明します。
Python SDK における SavedView
Weave の SavedView クラスは、trace および evals データのビューを保存・フィルタリング・ソート・カスタマイズするための手段を提供します。
Weave のプロジェクトで SavedView インスタンスを初期化します。
import weave
client = weave.init(<my_project>)
view = weave.SavedView()
.to_grid() を使って、保存したビューをグリッドとして表現します。limit で表示する行数の上限を指定します。
.show() を呼び出してグリッドを表示します:
.set_columns() を使用して、ビューに表示する列を設定します。表示する列を 1つ以上指定します。
view.set_columns("id", "op_name")
.add_column() を使用して、ビューに 1 つ以上の新しい列を追加します。追加する列を 1 つ以上指定してください。
# フィールド指定子とラベル "Created" を持つ列を追加する
view.add_column("Created")
# 任意で、第2引数を指定して新しい列に別のラベル名を設定できます。デフォルトでは、フィールド指定子がラベルとして使用されます。
.sort_by() を使用して、特定の列で結果をソートします。ソートする列名とソート順(asc または desc)を指定します。
view.sort_by("started_at", "desc")
Weave では、すべての trace や eval にはオペレーション名が関連付けられています。
.filter_op() を使うと、特定のオペレーションが実行された呼び出しだけを含むように SavedView をフィルタできます。
view.filter_op("Evaluation.predict_and_score")
.add_filter() を使用して、ビューにカスタムフィルターを適用します。サポートされているフィルター演算子 のいずれかと条件を指定してフィルターを定義します。
view.add_filter("output.model_latency", ">=", 5)
| 演算子 | 説明 | 例 |
|---|
"contains" | 文字列が特定の部分文字列を含むかどうかを確認します。 | view.add_filter("output.status", "contains", "error") |
"equals" | 文字列が指定した値と完全に一致するかどうかを確認します。 | view.add_filter("input.category", "equals", "Alice") |
"in" | 文字列が値のリスト内に含まれているかどうかを確認します。 | view.add_filter("category", "in", ["A", "B", "C"]) |
"=" | 数値が特定の値と等しいかどうかを確認します。 | view.add_filter("output.score", "=", 80) |
"≠", "!=" | 数値が特定の値と等しくないかどうかを確認します。 | view.add_filter("metrics.loss", "!=", 0.5) |
"<" | 数値が特定の値より小さいかどうかを確認します。 | view.add_filter("age", "<", 30) |
"≤", "<=" | 数値が特定の値以下かどうかを確認します。 | view.add_filter("metric.value", "<=", 100) |
">" | 数値が特定の値より大きいかどうかを確認します。 | view.add_filter("output.score", ">", 90) |
"≥", ">=" | 数値が特定の値以上かどうかを確認します。 | view.add_filter("output.model_latency", ">=", 5) |
"is" | ブール値フィールドが True か False かを確認します。 | view.add_filter("is_active", "is", True) |
"after" | 日付が指定したタイムスタンプより後かどうかを確認します。 | view.add_filter("started_at", "after", "2024-01-01") |
"before" | 日付が指定したタイムスタンプより前かどうかを確認します。 | view.add_filter("ended_at", "before", "2024-12-31") |
"is empty" | フィールドが空(None または "")かどうかを確認します。 | view.add_filter("comments", "is empty", None) |
"is not empty" | フィールドが空でないかどうかを確認します。 | view.add_filter("attachments", "is not empty", None) |
.remove_filter() を使用して、インデックスまたはフィールド名で指定した特定のフィルターをビューから削除します。
view.remove_filter("output.model_latency")
.remove_filters() を使ってすべてのフィルタを削除します。
.save() を呼び出して、SavedView を Weave に公開します。
保存済みビュー内のフィルタに一致する関数呼び出しを取得するには .get_calls() を使用します。limit や offset などの省略可能な引数を指定できます。
calls = view.get_calls(limit=10)
Weave UI では、保存済みビューを作成、読み込み、名前の変更、および編集できます。より細かく制御したい場合は、Python SDK を使用してください。
- Traces または Evals タブに移動します。
- テーブルの設定で、次のいずれかの項目を調整します:
- フィルター
- 並び順
- ページサイズ
- 列の表示/非表示
- 列の固定
- 次の 2 つのいずれかの方法でビューを保存します:
- 画面右上にある Save view をクリックします。
- Save view の左側にあるハンバーガーメニューをクリックします。表示されるドロップダウンメニューから + Save as new view をクリックします。
- Traces タブまたは Evals タブに移動します。
- タブタイトルの左側にあるハンバーガーメニューをクリックします。保存済みビューの一覧がドロップダウンメニューで表示されます。
- アクセスしたいビューをクリックします。選択した保存済みビューが Traces または Evals タブに表示されます。
- 保存済みビューを読み込むで説明されている手順に従ってください。
- Traces タブまたは Evals タブの左上隅にあるビュー名をクリックします。
- ビューの新しい名前を入力します。
- 新しいビュー名を保存するには、Enter キーを押します。
- 保存済みビューを読み込むの手順に従ってください。
- テーブルの設定を変更します。
- 右上隅の Save view をクリックします。
自分やチームにとって不要になったと判断したビューは削除できます。ただし、一度削除すると元に戻せません。
- Traces または Evals タブを開きます。
- 削除したいビューを読み込みます。
- Save view の左側にあるハンバーガーメニューをクリックします。
- ドロップダウンメニューで Delete view をクリックします。
- 表示されるモーダルで Delete view をクリックして確定します。削除を中止する場合は Cancel をクリックします。
- Traces または Evals タブに移動します。
- Traces または Evals タブの右側にあるハンバーガーメニューをクリックします。保存済みのすべてのビューが表示されるドロップダウンメニューが開きます。
- メニューの一番下にある Traces または Evals をクリックします。デフォルトのビューが表示されます。