이 노트북은 인터랙티브 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용해 실행할 수 있습니다:
서드파티 시스템에서 트레이스 가져오기
csv 또는 json 형식으로 제공되는 일이 흔합니다.
이 쿡북에서는 하위 수준 Weave Python API를 활용하여 CSV 파일에서 데이터를 추출하고, 이를 Weave로 가져와 인사이트를 도출하고 엄밀한 평가를 수행하는 방법을 살펴봅니다.
이 쿡북에서 사용하는 예제 데이터셋은 다음과 같은 구조를 갖습니다:
conversation_id를, 자식 식별자로는 turn_index를 사용합니다.
필요에 따라 변수를 수정하십시오.
환경 설정
WANDB_API_KEY를 환경 변수에 설정해 두면 wandb.login()으로 쉽게 로그인할 수 있습니다(이 값은 Colab에 secret으로 제공해야 합니다).
Colab에 업로드할 파일 이름을 name_of_file에 설정하고, 로그를 기록할 W&B 프로젝트를 name_of_wandb_project에 설정합니다.
NOTE: 트레이스를 기록할 팀을 지정하려면 name_of_wandb_project를 {team_name}/{project_name} 형식으로 설정할 수도 있습니다.
그다음 weave.init()을 호출하여 Weave 클라이언트를 가져옵니다.
데이터 로딩
conversation_id와 turn_index 기준으로 정렬합니다.
이렇게 하면 conversation_data 열에 대화 턴이 배열 형태로 들어 있는, 두 개의 열을 가진 pandas 데이터프레임이 생성됩니다.
트레이스를 Weave에 로깅하기
- 각
conversation_id마다 상위 호출(parent call)을 생성합니다. turn_index로 정렬된 턴 배열을 순회하면서 자식 호출(child call)을 생성합니다.
- 하나의 Weave 호출은 하나의 Weave 트레이스와 동일하며, 이 호출에는 상위 호출이나 자식 호출이 연결될 수 있습니다.
- 하나의 Weave 호출에는 Feedback, Metadata 등 다른 정보도 연결될 수 있습니다. 여기서는 입력과 출력만 연결하지만, 데이터가 제공된다면 가져오기(import) 시에 이러한 정보도 추가할 수 있습니다.
- Weave 호출은 실시간 추적을 위한 것이므로
created와finished시점이 기록됩니다. 이번처럼 사후(import) 작업에서는 객체를 정의하고 서로 연결한 뒤에 한 번에 생성 및 완료로 처리합니다. - 호출의
op값은 Weave가 동일한 구조의 호출들을 분류하는 기준입니다. 이 예제에서는 모든 상위 호출이Conversation타입이고, 모든 자식 호출이Turn타입입니다. 필요에 따라 이 값을 변경할 수 있습니다. - 호출은
inputs와output을 가질 수 있습니다.inputs는 생성 시 정의하고,output은 호출이 완료될 때 정의합니다.
결과: Weave에 트레이스가 기록됨


보너스: 트레이스를 내보내 엄격한 평가를 수행해 보세요!

결과
