> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-dependabot-npm-and-yarn-scripts-css-minify-npm.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 저장된 뷰 만들기 및 관리

> 트레이스된 함수 호출 및 평가와 상호작용하는 방식을 사용자 지정합니다

Weave에서 \_저장된 뷰\_를 사용하면 트레이스된 함수 호출 및 평가와 상호작용하는 방식을 사용자 지정할 수 있습니다. 저장된 뷰를 정의하면 필터, 정렬, 열 표시 여부를 설정해 관련 데이터에 빠르게 액세스할 수 있습니다. 저장된 뷰를 사용하면 매번 설정을 다시 적용하지 않아도 사용자와 팀이 동일하게 선별된 트레이스 또는 평가 데이터 범위로 다시 돌아갈 수 있습니다.

UI를 통해 또는 Weave Python SDK에서 직접 뷰를 만들고, 수정하고, 저장할 수 있습니다. UI에서는 **트레이스** 및 **Evals** 탭에서 다양한 테이블 설정을 탐색하고 저장할 수 있으며, Python SDK는 프로그래밍 방식의 필터링과 쿼리를 세밀하게 제어할 수 있게 해줍니다. 워크플로에 맞는 탭을 선택하세요.

<Tabs>
  <Tab title="UI">
    Weave UI에서 저장된 뷰를 생성, 로드, 이름 변경, 편집할 수 있습니다. UI는 임시 테이블 설정을 재사용 가능한 뷰로 저장하는 가장 빠른 방법입니다. 프로그래밍 방식으로 제어하려면 **Python** 탭을 선택하세요.

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

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

    <h3 id="load-a-saved-view">
      저장된 뷰 로드
    </h3>

    1. **Traces** 또는 **Evals** 탭으로 이동하세요.
    2. 탭 제목 왼쪽의 **menu** (<Icon icon="bars" 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. 테이블 설정을 조정하세요.
    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="bars" 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="bars" iconType="solid" />) 버튼을 클릭하세요. 저장된 모든 뷰가 포함된 드롭다운 메뉴가 표시됩니다.
    3. 메뉴 하단에서 **Traces** 또는 **Evals**를 클릭하세요. 기본 뷰가 표시됩니다.
  </Tab>

  <Tab title="Python">
    Weave의 `SavedView` 클래스를 사용하면 트레이스 및 평가 데이터의 뷰를 저장, 필터링, 정렬하고 사용자 지정할 수 있습니다. 다음 섹션에서는 뷰를 초기화하고, 컬럼과 필터를 설정하며, 뷰를 영구 저장하여 나중에 조건에 맞는 Call을 조회하는 방법을 살펴봅니다.

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

    Weave 프로젝트에서 `SavedView` 인스턴스를 초기화합니다:

    ```python lines theme={null}
    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={null}
    view.to_grid(limit=5)
    ```

    `.show()`를 사용하여 그리드 형태로 표시합니다:

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

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

    뷰에 표시할 열을 설정하려면 `.set_columns()`를 사용하세요. 표시할 열을 하나 이상 지정하세요.

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

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

    `.add_column()`을 사용하여 뷰에 하나 이상의 새 열을 추가하세요. 추가할 열을 하나 이상 지정합니다.

    ```python lines theme={null}
    # 필드 지정자와 "Created" 레이블로 열을 추가합니다
    view.add_column("Created")
    # 두 번째 인수를 추가하면 새 열에 다른 레이블 이름을 지정할 수 있습니다(선택 사항). 기본적으로 레이블에는 필드 지정자가 사용됩니다.
    ```

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

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

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

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

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

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

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

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

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

    <h4 id="filter-operators">
      Filter Operator
    </h4>

    | 연산자 | 설명 | 예시 |
    | - | - | - |
    | `"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"` | 날짜가 지정된 Timestamp 이후인지 확인합니다. | `view.add_filter("started_at", "after", "2024-01-01")` |
    | `"before"` | 날짜가 지정된 Timestamp 이전인지 확인합니다. | `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={null}
    view.remove_filter("output.model_latency")
    ```

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

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

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

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

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

    <h3 id="retrieve-function-calls">
      함수 호출 조회하기
    </h3>

    `.get_calls()`를 사용하여 저장된 뷰의 필터와 일치하는 함수 호출을 조회하세요. `limit`, `offset`과 같은 선택 파라미터를 지정할 수 있습니다.

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