Weave에서 saved views 를 사용하면 추적된 함수 호출 및 평가와 상호작용하는 방식을 맞춤 설정할 수 있습니다. 저장된 뷰를 정의하여 필터, 정렬 및 열 가시성을 설정함으로써 관련 데이터에 신속하게 엑세스할 수 있습니다.
Weave Python SDK 또는 UI를 통해 직접 뷰를 생성, 수정 및 저장할 수 있습니다. Python SDK는 프로그래밍 방식의 필터링 및 쿼리를 위한 세밀한 제어를 제공하며, UI를 사용하면 Traces 및 Evals 탭에서 다양한 테이블 구성을 쉽게 탐색하고 저장할 수 있습니다.
이 가이드에서는 다음 내용을 다룹니다:
Saved views in the Python SDK
Weave의 SavedView 클래스는 추적 및 evals 데이터의 뷰를 저장, 필터링, 정렬 및 맞춤 설정하는 방법을 제공합니다.
SavedView 초기화
Weave 프로젝트에서 SavedView 인스턴스를 초기화합니다:
import weave
client = weave.init(<my_project>)
view = weave.SavedView()
SavedView를 그리드로 시각화
.to_grid()를 사용하여 저장된 뷰를 그리드로 표현합니다. 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에서 모든 추적 또는 eval은 작업 이름(operation name)과 연결됩니다.
.filter_op()를 사용하여 해당 특정 작업이 실행된 호출만 포함하도록 SavedView를 필터링합니다.
view.filter_op("Evaluation.predict_and_score")
연산자 및 조건으로 필터링
.add_filter()를 사용하여 뷰에 사용자 정의 필터를 적용합니다. 지원되는 필터 연산자 중 하나와 조건을 사용하여 필터를 정의합니다.
view.add_filter("output.model_latency", ">=", 5)
필터 연산자
| 연산자 | 설명 | 예시 |
|---|
"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()를 사용하여 모든 필터를 제거합니다.
SavedView 저장
.save()를 사용하여 저장된 뷰를 Weave에 게시합니다.
함수 호출 가져오기
.get_calls()를 사용하여 저장된 뷰의 필터와 일치하는 함수 호출을 검색합니다. limit 및 offset과 같은 선택적 파라미터를 지정할 수 있습니다.
calls = view.get_calls(limit=10)
Saved views in the UI
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를 클릭합니다. 기본 뷰가 표시됩니다.