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

# 저장된 뷰 생성 및 관리

> 트레이스된 함수 Call과 평가를 다루는 방식을 사용자 지정하세요

Weave의 *저장된 뷰* 를 사용하면 트레이스된 함수 Call과 평가를 다루는 방식을 사용자 지정할 수 있습니다. 저장된 뷰를 정의할 때 필터, 정렬, 열 표시 여부를 설정해 두면 필요한 데이터에 빠르게 액세스할 수 있습니다. 또한 매번 설정을 다시 적용하지 않아도 사용자와 팀원이 트레이스나 평가에서 선별해 둔 동일한 데이터 범위를 언제든 다시 확인할 수 있습니다.

뷰는 UI에서 생성, 수정, 저장하거나 Weave Python SDK에서 직접 다룰 수 있습니다. UI에서는 **Traces** 및 **Evals** 탭에서 다양한 table 설정을 탐색하고 저장할 수 있으며, Python SDK에서는 필터링과 쿼리를 프로그래밍 방식으로 세밀하게 제어할 수 있습니다. 사용 중인 워크플로에 맞는 탭을 선택하세요.

<Tabs>
  <Tab title="UI">
    Weights & Biases UI에서 저장된 뷰를 생성하고, 불러오고, 이름을 변경하고, 편집할 수 있습니다. UI를 사용하면 즉석에서 구성한 table 설정을 재사용 가능한 뷰로 가장 빠르게 캡처할 수 있습니다. 프로그래밍 방식으로 제어하려면 **Python** 탭을 선택하세요.

    <h3 id="create-a-saved-view">
      저장된 뷰 생성
    </h3>

    1. **Traces** 또는 **Evals** 탭으로 이동하세요.
    2. table 설정에서 다음 항목 중 원하는 항목을 조정하세요.
       * 필터
       * 정렬 순서
       * 페이지 크기
       * 열 표시 여부
       * 열 고정
    3. 다음 두 가지 방법 중 하나로 뷰를 저장하세요.
       * 오른쪽 상단에서 **Save view**를 클릭하세요.
       * **Save view** 왼쪽에 있는 **menu** (<Icon icon="menu" iconType="solid" />) 버튼을 클릭한 다음, 드롭다운 메뉴에서 **+ Save as new view**를 클릭하세요.

    <h3 id="load-a-saved-view">
      저장된 뷰 불러오기
    </h3>

    1. **Traces** 또는 **Evals** 탭으로 이동하세요.
    2. 탭 제목 왼쪽에 있는 **menu** (<Icon icon="menu" iconType="solid" />) 버튼을 클릭하세요. 저장된 모든 뷰가 담긴 드롭다운 메뉴가 나타납니다.
    3. 열려는 뷰를 클릭하세요. 저장된 뷰가 **Traces** 또는 **Evals** 탭에 표시됩니다.

    <h3 id="rename-a-saved-view">
      저장된 뷰 이름 변경
    </h3>

    1. [저장된 뷰 불러오기](#load-a-saved-view)에 설명된 단계를 따르세요.
    2. **Traces** 또는 **Evals** 탭의 왼쪽 상단에서 뷰 이름을 클릭하세요.
    3. 뷰의 새 이름을 입력하세요.
    4. **Enter** 키를 눌러 새 뷰 이름을 저장하세요.

    <h3 id="edit-a-saved-view">
      저장된 뷰 편집
    </h3>

    1. [저장된 뷰 불러오기](#load-a-saved-view)에 설명된 단계를 따르세요.
    2. table 설정을 조정하세요.
    3. 오른쪽 상단에서 **Save view**를 클릭하세요.

    <h3 id="delete-a-saved-view">
      저장된 뷰 삭제
    </h3>

    <Warning>
      본인과 팀에 더 이상 필요하지 않은 뷰는 삭제할 수 있습니다. 이 액션은 실행 취소할 수 없습니다.
    </Warning>

    1. **Traces** 또는 **Evals** 탭으로 이동하세요.
    2. 삭제하려는 [뷰를 불러오세요](#load-a-saved-view).
    3. **Save view** 왼쪽에 있는 **menu** (<Icon icon="menu" iconType="solid" />) 버튼을 클릭하세요.
    4. 드롭다운 메뉴에서 **Delete view**를 클릭하세요.
    5. 팝업 모달에서 **Delete view**를 클릭하여 삭제를 확인하세요. 삭제를 취소하려면 **Cancel**을 클릭하세요.

    <h3 id="return-to-the-default-view">
      기본 뷰로 돌아가기
    </h3>

    1. **Traces** 또는 **Evals** 탭으로 이동하세요.
    2. **Traces** 또는 **Evals** 탭 오른쪽에 있는 **menu** (<Icon icon="menu" iconType="solid" />) 버튼을 클릭하세요. 저장된 모든 뷰가 담긴 드롭다운 메뉴가 나타납니다.
    3. 메뉴 하단에서 **Traces** 또는 **Evals**를 클릭하세요. 기본 뷰가 표시됩니다.
  </Tab>

  <Tab title="Python">
    Weave의 `SavedView` 클래스를 사용하면 트레이스 및 평가 데이터의 뷰를 저장, 필터링, 정렬하고 사용자 지정할 수 있습니다. 다음 섹션에서는 뷰를 초기화하고 열과 필터를 설정한 뒤, 뷰를 저장해 두었다가 나중에 조건에 맞는 Call을 조회하는 방법을 안내합니다.

    <h3 id="initialize-a-savedview">
      `SavedView` 초기화하기
    </h3>

    Weave 프로젝트에서 `SavedView` 인스턴스를 초기화하세요:

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

    view = weave.SavedView()
    ```

    <h3 id="visualize-the-savedview-as-a-grid">
      `SavedView`를 그리드로 시각화하기
    </h3>

    저장된 뷰를 그리드로 표시하려면 `.to_grid()`를 사용하세요. 표시할 최대 행 수는 `limit`으로 지정합니다.

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

    `.show()`를 사용해 그리드 형태로 표시하세요:

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

    <h3 id="set-displayed-columns">
      표시할 열 설정
    </h3>

    `.set_columns()`로 뷰에 표시할 열을 설정하세요. 열은 하나 이상 지정할 수 있습니다.

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

    <h3 id="add-columns">
      열 추가
    </h3>

    `.add_column()`을 사용해 뷰에 새 열을 하나 이상 추가하세요. 추가할 열은 하나 이상 지정할 수 있습니다.

    ```python lines theme={"system"}
    # 필드 지정자와 레이블이 "Created"인 열을 추가합니다
    view.add_column("Created")
    # 필요한 경우 두 번째 인수를 추가해 새 열의 레이블 이름을 다르게 지정할 수 있습니다. 기본적으로는 필드 지정자가 레이블로 사용됩니다.
    ```

    <h3 id="sort-columns">
      열 정렬
    </h3>

    특정 열을 기준으로 결과를 정렬하려면 `.sort_by()`를 사용하세요. 정렬할 열 이름과 정렬 순서(`asc` 또는 `desc`)를 지정하면 됩니다.

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

    <h3 id="filter-by-operation-name">
      오퍼레이션 이름으로 필터링
    </h3>

    Weave에서는 모든 트레이스와 평가가 각각 오퍼레이션 이름과 연결되어 있습니다.
    `.filter_op()`를 사용하면 특정 오퍼레이션이 실행된 Call만 포함되도록 `SavedView`를 필터링할 수 있습니다.

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

    <h3 id="filter-by-operator-and-condition">
      연산자 및 조건으로 필터링
    </h3>

    `.add_filter()`를 사용하여 뷰에 맞춤형 필터를 적용하세요. 필터는 [지원되는 필터 Operator](#filter-operators) 중 하나와 조건을 지정하여 정의합니다.

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

    <h4 id="filter-operators">
      필터 Operator
    </h4>

    | 연산자 | 설명 | 예시 |
    | - | - | - |
    | `"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)` |

    <h3 id="remove-filters">
      필터 제거
    </h3>

    뷰에서 특정 필터를 제거하려면 `.remove_filter()`를 사용하세요. 인덱스나 필드 이름으로 제거할 필터를 지정할 수 있습니다.

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

    모든 필터를 제거하려면 `.remove_filters()`를 사용하세요.

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

    <h3 id="save-the-savedview">
      `SavedView` 저장하기
    </h3>

    저장된 뷰를 Weave에 게시하려면 `.save()`를 사용하세요.

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

    <h3 id="retrieve-function-calls">
      함수 Call 조회
    </h3>

    `.get_calls()`를 사용하면 저장된 뷰의 필터와 일치하는 함수 Call을 조회할 수 있습니다. `limit`, `offset` 등의 선택 매개변수도 지정할 수 있습니다.

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