이 문서는 대화형 노트북입니다. 로컬에서 실행하거나 아래 링크를 이용하세요.
Weave와 통합하기: 프로덕션 대시보드
이 노트북에서는 Weave의 API와 함수를 사용하여 Weave의 Traces 뷰를 확장하는 프로덕션 모니터링용 맞춤형 대시보드를 만드는 방법을 보여 줍니다. 이 가이드는 프로덕션 환경에서 LLM 애플리케이션을 운영하면서, 기본 Traces 뷰에서 제공하는 수준을 넘어 성능, 비용, 사용자 피드백을 필요에 맞게 파악하려는 개발자와 ML 엔지니어를 위한 것입니다. 이 노트북에서 다루는 내용은 다음과 같습니다.- Weave에서 트레이스, 비용, 피드백 및 기타 메트릭 가져오기
- 사용자 피드백과 비용 분포에 대한 집계 뷰 만들기
- 시간에 따른 토큰 사용량과 지연 시간 시각화 만들기
streamlit을 설치하고 프로덕션 대시보드 스크립트를 실행하면 자신의 Weave 프로젝트에서 대시보드를 사용해 볼 수 있습니다.
설정
먼저 다음 패키지를 설치하세요.구현
다음 섹션에서는 Weave 클라이언트 초기화, call 데이터 가져오기, 대시보드용 시각화 생성 과정을 단계별로 살펴봅니다.Weave 클라이언트 초기화 및 비용 정의
먼저 Weave 클라이언트를 초기화하고 각 모델의 비용을 추가하는 함수를 설정하세요. 이후의 비용 쿼리에서 각 Call에 토큰당 가격을 할당하려면 이 단계가 반드시 필요합니다. W&B는 여러 표준 모델의 표준 비용을 기본으로 제공하며, 사용자 정의 비용과 맞춤형 모델을 직접 추가할 수도 있습니다. 다음 예시에서는 일부 모델에 사용자 정의 비용을 추가하고 나머지 모델에는 표준 비용을 사용하는 방법을 보여줍니다. 비용은 Weave에서 각 Call에 대해 추적된 토큰을 기준으로 계산됩니다. 많은 LLM 공급업체 라이브러리의 경우 Weave가 토큰 사용량을 자동으로 추적하지만, 어떤 Call이든 맞춤형 토큰 수를 직접 반환할 수도 있습니다. 맞춤형 모델의 토큰 수와 비용 계산을 정의하는 방법에 대한 자세한 내용은 사용자 정의 비용 쿡북을 참조하세요.Weave에서 Call 데이터 가져오기
클라이언트를 초기화하고 비용을 설정했다면, 다음으로 Weave에서 call 데이터를 가져옵니다. call 데이터를 가져오는 방법은 두 가지입니다.- call 단위로 데이터 가져오기
- 고수준 API 사용하기
Call 단위로 데이터 가져오기
Weave에서 데이터에 액세스하는 첫 번째 방법은 필터링된 Call 목록을 가져온 뒤 Call별로 필요한 데이터를 추출하는 것입니다. 이 방법을 사용하려면calls_query_stream API로 Weave에서 Call 데이터를 가져오세요.
calls_query_streamAPI: Weave에서 Call 데이터를 가져오는 API입니다.filter딕셔너리: Call 데이터를 가져올 때 사용할 필터 매개변수가 담긴 딕셔너리입니다. 자세한 내용은 CallSchema 레퍼런스를 참조하세요.expand_columns목록: Call 데이터에서 확장할 열이 담긴 목록입니다.sort_by목록: Call 데이터의 정렬 매개변수가 담긴 목록입니다.include_costs불리언: Call 데이터에 비용을 포함할지 여부를 나타내는 불리언입니다.include_feedback불리언: Call 데이터에 피드백을 포함할지 여부를 나타내는 불리언입니다.
고수준 API 사용하기
모든 Call을 일일이 살펴보지 않아도, Weave에서 제공하는 고수준 API를 사용하면 모델 비용, 피드백 및 기타 메트릭에 직접 액세스할 수 있습니다. 예를 들어 비용을 조회하려면query_costs API를 사용하여 프로젝트에서 사용된 모든 LLM의 비용을 가져오세요.
입력 수집 및 시각화 생성
call 데이터와 비용을 데이터프레임으로 준비했다면 plotly로 시각화를 생성할 수 있습니다. 다음은 원하는 대로 사용자 지정할 수 있는 기본 대시보드입니다. 더 고급 예시는 knowledge-worker-weave 저장소의 Streamlit 예시를 참고하세요.결론
이 쿡북에서는 Weave의 API와 함수를 사용하여 맞춤형 프로덕션 모니터링 대시보드를 만드는 방법을 살펴보았습니다. Weave는 빠른 인테그레이션을 통해 데이터를 간편하게 입력하고, 맞춤형 프로세스에 활용할 수 있도록 데이터를 손쉽게 추출하는 데 중점을 둡니다.- 데이터 입력:
@weave-op()데코레이터를 사용하여 프레임워크에 관계없이 트레이싱할 수 있으며, CSV에서 Call을 임포트할 수도 있습니다(관련 임포트 쿡북 참조).- Service API 엔드포인트를 사용하면 다양한 프로그래밍 프레임워크와 언어에서 Weave로 로깅할 수 있습니다. 자세한 내용은 Service API 레퍼런스를 참조하세요.
- 데이터 출력:
- CSV, TSV, JSONL 또는 JSON 형식으로 데이터를 다운로드할 수 있습니다. 자세한 내용은 Service API 레퍼런스를 참조하세요.
- 프로그래밍 방식으로 데이터에 액세스하여 내보낼 수 있습니다. 이 쿡북에서 설명한 대로 내보내기 패널의 “Use Python” 섹션을 참조하세요. 자세한 내용은 Call 쿼리 및 내보내기를 참조하세요.