> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-update-reference-docs-60.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

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

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

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

<Tabs>
  <Tab title="UI">
    Weave UI では、保存済みビューを作成、読み込み、名前変更、編集できます。UI を使用すると、その場で作成した表の設定を再利用可能なビューとしてすばやく保存できます。プログラムで制御するには、**Python** タブを選択します。

    ### 保存済みビューを作成する

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

    ### 保存済みビューを読み込む

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

    ### 保存済みビューの名前を変更する

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

    ### 保存済みビューを編集する

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

    ### 保存済みビューを削除する

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

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

    ### デフォルトビューに戻る

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

  <Tab title="Python">
    Weave の `SavedView` クラスを使用すると、trace や評価データのビューを保存、フィルタリング、ソート、カスタマイズできます。以下のセクションでは、ビューを初期化し、その列とフィルターを設定して、条件に一致する Call を後から取得できるように永続化する方法を説明します。

    ### `SavedView` を初期化する

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

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

    view = weave.SavedView()
    ```

    ### `SavedView` をグリッドとして可視化する

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

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

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

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

    ### 表示する列を設定する

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

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

    ### 列を追加する

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

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

    ### 列を並べ替える

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

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

    ### op 名でフィルターする

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

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

    ### 演算子と条件でフィルターする

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

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

    #### フィルター演算子

    | 演算子              | 説明                                        | 例                                                       |
    | ---------------- | ----------------------------------------- | ------------------------------------------------------- |
    | `"contains"`     | string に部分文字列が含まれているかどうかを確認します。           | `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)`  |

    ### フィルターを削除する

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

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

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

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

    ### `SavedView` を保存する

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

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

    ### 関数の Call を取得する

    `.get_calls()` を使用すると、保存済みビューのフィルターに一致する関数の Call を取得できます。`limit` や `offset` などのオプションのパラメーターを指定することもできます。

    ```python lines theme={null}
    calls = view.get_calls(limit=10)
    ```
  </Tab>
</Tabs>
