Weave에서 _Saved View_를 사용하면 트레이스된 함수 호출과 평가와 상호작용하는 방식을 사용자 지정할 수 있습니다. Saved View를 정의하면 필터, 정렬, 열 표시 여부를 설정하여 관련 데이터를 빠르게 조회할 수 있습니다.
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이 오퍼레이션 이름과 연관됩니다.
.filter_op()을 사용하여 해당 오퍼레이션이 실행된 호출만 포함하도록 SavedView를 필터링하세요.
view.filter_op("Evaluation.predict_and_score")
.add_filter()를 사용해 뷰에 커스텀 필터를 적용합니다. 필터는 지원되는 필터 연산자 중 하나와 조건을 사용해 정의합니다.
view.add_filter("output.model_latency", ">=", 5)
| Operator | Description | Example |
|---|
"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()를 사용해 SavedView를 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를 클릭합니다. 기본 보기가 표시됩니다.