이것은 대화형 노트북입니다. 로컬에서 실행하거나 다음 링크를 사용할 수 있습니다:
서드파티 시스템에서 트레이스 임포트하기
이 노트북은 CSV 파일에서 과거 대화 트레이스를 W&B Weave로 임포트하는 방법을 보여줍니다. 이를 통해 Weave instrumented 애플리케이션 외부에서 생성된 데이터를 분석하고, 모델 동작을 비교하며, 평가를 실행할 수 있습니다. 때때로 Python 또는 JavaScript 코드를 Weave 인테그레이션으로 instrument하여 GenAI 애플리케이션의 실시간 트레이스를 획득할 수 없습니다. 종종 이러한 트레이스는 나중에 CSV 또는 JSON 형식으로 제공됩니다. 이 노트북은 하위 수준 Weave Python API를 사용하여 CSV 파일에서 데이터를 추출하고 Weave로 임포트하여 분석하고 평가할 수 있도록 합니다. 이 쿡북에서 가정하는 샘플 데이터셋은 다음과 같은 구조를 가지고 있습니다:conversation_id를 부모 식별자로, turn_index를 자식 식별자로 사용하여 완전한 대화 로깅을 제공합니다.
자신의 데이터셋, 파일 경로 및 Weights & Biases 프로젝트에 맞게 다음 섹션의 변수를 수정해야 합니다.
환경 설정
필요한 패키지를 모두 설치하고 임포트하세요.WANDB_API_KEY를 환경에 설정하여 wandb.login()으로 로그인할 수 있도록 하세요 (Colab에는 시크릿으로 제공하세요).
Colab에 업로드할 파일의 이름을 name_of_file에 설정하고, 로깅할 Weights & Biases 프로젝트를 name_of_wandb_project에 설정하세요.
name_of_wandb_project은 [TEAM_NAME]/[PROJECT_NAME] 형식으로도 사용할 수 있으며, 트레이스를 로깅할 팀을 지정할 수 있습니다.weave.init()을 호출하여 Weave 클라이언트를 가져오세요.
데이터 로드
환경이 준비되면 CSV 데이터를 로드하고 형태를 조정하여 Weave가 기대하는 부모-자식 구조와 일치하도록 할 수 있습니다. 데이터를 pandas 데이터프레임으로 로드하고,conversation_id와 turn_index로 정렬하여 부모와 자식이 올바르게 정렬되도록 합니다.
이렇게 하면 conversation_data 아래에 대화 턴이 배열로 포함된 2열 pandas 데이터프레임이 생성됩니다.
트레이스를 Weave에 로깅하기
데이터를 대화와 턴으로 구성한 후, 다음 단계는 해당 레코드를 부모 Call과 자식 Call로 Weave에 기록하는 것입니다. pandas 데이터프레임을 순회합니다:conversation_id마다 부모 Call을 생성합니다.- 턴 배열을 순회하여
turn_index순으로 정렬된 자식 Call을 생성합니다.
- Weave Call은 Weave 트레이스와 동일합니다. 이 Call은 연결된 부모 또는 자식을 가질 수 있습니다.
- Weave Call은 피드백 및 메타데이터와 같이 연결된 다른 항목을 가질 수 있습니다. 이 예제에서는 입력과 출력만 연결하지만, 데이터가 제공하는 경우 임포트 시 이러한 다른 항목을 추가할 수 있습니다.
- Weave Call은 실시간으로 추적하기 위한 것이므로
created및finished상태입니다. 이 작업은 사후 임포트이므로 object가 정의되고 서로 연결된 후에 한 번 생성하고 완료합니다. - Call의
op값은 Weave가 동일한 구성을 가진 Call을 분류하는 방식입니다. 이 예제에서 모든 부모 Call은Conversation유형이고, 모든 자식 Call은Turn유형입니다. 필요에 따라 수정할 수 있습니다. - Call은
inputs와output을 가질 수 있습니다.inputs는 생성 시 정의되고,output은 Call이 완료될 때 정의됩니다.
결과: Weave에 로깅된 트레이스
이 시점에서 CSV 데이터가 Weave로 임포트되었습니다. 이제 Weights & Biases UI에서Conversation 및 Turn 오퍼레이션 아래에 그룹화된 대화와 턴을 탐색할 수 있습니다.
트레이스:


선택: 트레이스를 내보내 평가 실행하기
트레이스가 Weave에 있고 대화가 어떻게 보이는지 이해했다면, 이를 다른 프로세스로 내보내 Weave 평가를 실행할 수 있습니다.
결과
내보낸 데이터셋이 이제 Weave에 다시 게시되었으며 평가의 입력으로 사용할 준비가 되었습니다.