> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 保存済みビューを作成して管理する

> トレースされた関数の Call や評価とのやり取りをカスタマイズする

Weave では、*保存済みビュー* を使って、トレースされた関数の Call や評価とのやり取りをカスタマイズできます。保存済みビューを定義すると、フィルター、並べ替え、列の表示/非表示を設定し、関連するデータにすばやくアクセスできます。保存済みビューを使うと、毎回設定し直さなくても、トレースや評価の中から整理された同じデータセットに、自分やチームですぐ戻れます。

保存済みビューは、Weave Python SDK で直接作成、変更、保存することも、UI から操作することもできます。Python SDK では、プログラムによるフィルタリングやクエリをきめ細かく制御でき、UI では **トレース** タブと **Evals** タブでさまざまな表の設定を確認して保存できます。

このガイドでは、次の内容を扱います。

* [Python SDK で保存済みビューを作成および変更する方法](#saved-views-in-the-python-sdk)。
* [Weave UI で保存済みビューを作成して操作する方法](#saved-views-in-the-ui)。

<div id="saved-views-in-the-python-sdk">
  ## Python SDK の保存済みビュー
</div>

Weave の `SavedView` クラスを使うと、トレース と evals のデータのビューを保存、フィルター、並べ替え、カスタマイズできます。以下のセクションでは、ビューを初期化し、列とフィルターを設定したうえで、後から一致する Call を取得できるように保存する方法を説明します。

<div id="initialize-a-savedview">
  ### `SavedView` を初期化する
</div>

Weave のプロジェクトで `SavedView` インスタンスを初期化します。

```python lines theme={null}
import weave
client = weave.init("[MY_PROJECT]")

view = weave.SavedView()
```

<div id="visualize-the-savedview-as-a-grid">
  ### `SavedView` をグリッド表示する
</div>

`.to_grid()` を使用して、保存済みビューをグリッド表示できます。表示する最大行数は `limit` で指定します。

```python lines theme={null}
view.to_grid(limit=5)
```

`.show()` を使用してグリッドを表示します：

```python lines theme={null}
view.to_grid().show()
```

<div id="set-displayed-columns">
  ### 表示列を設定する
</div>

`.set_columns()` を使用して、ビューに表示する列を設定します。表示する列を 1 つ以上指定します。

```python lines theme={null}
view.set_columns("id", "op_name")
```

<div id="add-columns">
  ### 列を追加
</div>

`.add_column()` を使用して、ビューに1つ以上の新しい列を追加します。追加する列を1つ以上指定します。

```python lines theme={null}
# フィールド指定子とラベル "Created" を使用して列を追加する
view.add_column("Created")
# 任意で、第2引数を指定して新しい列に別のラベル名を設定できます。デフォルトでは、フィールド指定子がラベルとして使用されます。
```

<div id="sort-columns">
  ### 列で並べ替える
</div>

特定の列を基準に結果を並べ替えるには、`.sort_by()` を使用します。並べ替える列名と、並べ替え順 (`asc` または `desc`) を指定します。

```python lines theme={null}
view.sort_by("started_at", "desc")
```

<div id="filter-by-operation-name">
  ### operation 名でフィルターする
</div>

Weave では、すべてのトレース または eval が operation 名に関連付けられています。
`.filter_op()` を使用すると、特定の operation が実行された calls のみを含むように `SavedView` をフィルターできます。

```python lines theme={null}
view.filter_op("Evaluation.predict_and_score")
```

<div id="filter-by-operator-and-condition">
  ### 演算子と条件でフィルターする
</div>

`.add_filter()` を使用して、ビューにカスタム フィルターを適用します。[サポートされているフィルター演算子](#filter-operators)のいずれかと条件を使って、フィルターを定義します。

```python lines theme={null}
view.add_filter("output.model_latency", ">=", 5)
```

<div id="filter-operators">
  #### フィルター演算子
</div>

| 演算子              | 説明                                         | 例                                                       |
| ---------------- | ------------------------------------------ | ------------------------------------------------------- |
| `"contains"`     | string に substring が含まれているかどうかを確認します。      | `view.add_filter("output.status", "contains", "error")` |
| `"equals"`       | string が指定した値と完全に一致するかどうかを確認します。           | `view.add_filter("input.category", "equals", "Alice")`  |
| `"in"`           | string が値のリストに含まれているかどうかを確認します。            | `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)`  |

<div id="remove-filters">
  ### フィルターを削除
</div>

`.remove_filter()` を使用して、インデックスまたはフィールド名を指定してビューから特定のフィルターを削除します。

```python lines theme={null}
view.remove_filter("output.model_latency")
```

`.remove_filters()` を使用して、すべてのフィルターを削除します。

```python lines theme={null}
view.remove_filters()
```

<div id="save-the-savedview">
  ### `SavedView` を保存する
</div>

`.save()` を使用して、保存済みビューを Weave に公開します。

```python lines theme={null}
view.save()
```

<div id="retrieve-function-calls">
  ### 関数呼び出しを取得する
</div>

`.get_calls()` を使用して、保存済みビューに設定されたフィルターに一致する関数呼び出しを取得します。`limit` や `offset` などのオプションのパラメーターを指定できます。

```python lines theme={null}
calls = view.get_calls(limit=10)
```

<div id="saved-views-in-the-ui">
  ## UI での保存済みビュー
</div>

Weave UI では、保存済みビューを作成、読み込み、名前変更、編集できます。UI は、アドホックな表の設定を再利用可能なビューとして保存する最も手早い方法です。プログラムによる制御には、[Python SDK](#saved-views-in-the-python-sdk) を使用してください。

<div id="create-a-saved-view">
  ### 保存済みビューを作成する
</div>

1. **トレース** または **Evals** タブにアクセスします。
2. 表の設定で、次の項目を必要に応じて調整します。
   * フィルター
   * 並び順
   * ページサイズ
   * 列の表示
   * 列の固定
3. 次のいずれかの方法でビューを保存します。
   * 右上にある **Save view** をクリックします。
   * **Save view** の左側にある **メニュー** (<Icon icon="bars" iconType="solid" />) ボタンをクリックします。ドロップダウンメニューで **+ Save as new view** をクリックします。

<div id="load-a-saved-view">
  ### 保存済みビューを読み込む
</div>

1. **トレース** または **Evals** タブにアクセスします。
2. タブタイトルの左にある **メニュー** (<Icon icon="bars" iconType="solid" />) ボタンをクリックします。保存済みビューの一覧が表示されたドロップダウンメニューが開きます。
3. アクセスしたいビューをクリックします。保存済みビューが **トレース** または **Evals** タブに表示されます。

<div id="rename-a-saved-view">
  ### 保存済みビューの名前を変更する
</div>

1. [保存済みビューを読み込む](#load-a-saved-view) に記載されている手順に従います。
2. **トレース** または **Evals** タブの左上で、ビュー名をクリックします。
3. 新しいビュー名を入力します。
4. 新しいビュー名を保存するには、**Enter** キーを押します。

<div id="edit-a-saved-view">
  ### 保存済みビューを編集する
</div>

1. [保存済みビューを読み込む](#load-a-saved-view) に記載されている手順に従います。
2. 表の設定を調整します。
3. 画面右上にある **Save view** をクリックします。

<div id="delete-a-saved-view">
  ### 保存済みビューを削除する
</div>

<Warning>
  自分やチームにとって不要になったビューは削除できます。この操作は元に戻せません。
</Warning>

1. **トレース** または **Evals** タブにアクセスします。
2. [削除したいビューを読み込みます](#load-a-saved-view)。
3. **Save view** の左側にある **メニュー** (<Icon icon="bars" iconType="solid" />) ボタンをクリックします。
4. ドロップダウンメニューで、**ビューを削除** をクリックします。
5. ポップアップモーダルで、**ビューを削除** をクリックして確定します。削除を中止するには、**キャンセル** をクリックします。

<div id="return-to-the-default-view">
  ### デフォルトビューに戻る
</div>

1. **トレース** または **Evals** タブにアクセスします。
2. **トレース** または **Evals** タブの右側にある **メニュー** (<Icon icon="bars" iconType="solid" />) ボタンをクリックします。保存済みビューがすべて表示されたドロップダウンメニューが開きます。
3. メニューの下部にある **トレース** または **Evals** をクリックします。デフォルトビューが表示されます。
