Weave에서 저장된 뷰(Saved Views) 를 사용하면 추적된 함수 호출 및 평가와 상호작용하는 방식을 사용자 지정할 수 있습니다. 저장된 뷰를 정의하면 필터, 정렬, 열 표시 여부를 구성하여 관련 데이터를 빠르게 확인할 수 있습니다.
저장된 뷰는 Weave Python SDK 또는 UI에서 직접 생성, 수정, 저장할 수 있습니다. Python SDK는 프로그래밍 방식의 필터링 및 쿼리에 대한 세밀한 제어를 제공하며, UI에서는 Traces 및 Evals 탭에서 다양한 테이블 구성을 손쉽게 탐색하고 저장할 수 있습니다.
이 가이드에서는 다음 내용을 다룹니다:
Weave의 SavedView 클래스는 trace 및 evals 데이터 뷰를 저장, 필터링, 정렬하고 사용자 지정할 수 있는 방법을 제공합니다.
Weave 프로젝트에서 SavedView 인스턴스를 초기화하려면:
import weave
client = weave.init(<my_project>)
view = weave.SavedView()
.to_grid()를 사용해 SavedView를 그리드 형태로 표시합니다. limit으로 표시할 최대 행 개수를 지정합니다.
.show()를 호출해 그리드 뷰를 표시합니다:
.set_columns()를 사용해 뷰에 표시할 열을 설정합니다. 표시할 열을 하나 이상 지정하세요.
view.set_columns("id", "op_name")
.add_column()을 사용하여 뷰에 하나 이상의 새 열을 추가합니다. 추가할 열을 하나 이상 지정합니다.
# 필드 지정자와 레이블 "Created"로 열 추가
view.add_column("Created")
# 선택적으로, 두 번째 인수를 추가하여 새 열에 다른 레이블 이름을 지정할 수 있습니다. 기본적으로 필드 지정자가 레이블로 사용됩니다.
.sort_by()를 사용해 특정 열을 기준으로 결과를 정렬합니다. 정렬할 열 이름과 정렬 순서(asc 또는 desc)를 지정하세요.
view.sort_by("started_at", "desc")
Weave에서는 모든 trace 또는 eval이 operation 이름과 연결되어 있습니다.
특정 operation이 실행된 호출만 포함하도록 SavedView를 필터링하려면 .filter_op()을(를) 사용하세요.
view.filter_op("Evaluation.predict_and_score")
.add_filter()를 사용해 뷰에 사용자 지정 필터를 적용하세요. 지원되는 필터 연산자 중 하나와 조건을 사용해 필터를 정의하세요.
view.add_filter("output.model_latency", ">=", 5)
| Operator | 설명 | 예시 |
|---|
"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()를 사용하여 저장된 뷰를 Weave에 게시합니다.
.get_calls()를 사용하여 저장된 뷰에 설정된 필터와 일치하는 함수 호출을 가져옵니다. limit과 offset 같은 옵션 매개변수를 지정할 수 있습니다.
calls = view.get_calls(limit=10)
Weave UI에서 저장된 뷰를 만들고 불러오고 이름을 바꾸고 수정할 수 있습니다. 더 정밀하게 제어하려면 Python SDK를 사용하세요.
- Traces 또는 Evals 탭으로 이동합니다.
- 테이블 구성에서 다음 옵션을 조정합니다:
- 필터
- 정렬 순서
- 페이지 크기
- 열 표시 여부
- 열 고정
- 다음 두 가지 방법 중 하나로 뷰를 저장합니다:
- 오른쪽 상단에서 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를 클릭합니다. 기본 보기가 표시됩니다.