이것은 인터랙티브 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
제3자 시스템에서 트레이스 가져오기
경우에 따라 Weave의 간단한 통합으로 Python이나 Javascript 코드를 계측하여 GenAI 애플리케이션의 실시간 트레이스를 얻는 것이 불가능할 수 있습니다. 이러한 트레이스는 종종 나중에 다음 형식으로 제공됩니다:csv
또는 json
형식.
이 쿡북에서는 CSV 파일에서 데이터를 추출하고 Weave로 가져와 인사이트와 엄격한 평가를 수행하기 위한 하위 수준 Weave Python API를 살펴봅니다.
이 쿡북에서 가정하는 샘플 데이터셋은 다음과 같은 구조를 가지고 있습니다:
conversation_id
를 부모 식별자로 사용하고, turn_index
를 자식 식별자로 사용하여 완전한 대화 로깅을 제공합니다.
필요에 따라 변수를 수정하세요.
환경 설정
필요한 모든 패키지를 설치하고 가져옵니다. 환경에WANDB_API_KEY
를 설정하여 wandb.login()
로 쉽게 로그인할 수 있게 합니다(이것은 colab에 비밀로 제공되어야 합니다).
colab에 업로드하는 파일의 이름을 name_of_file
에 설정하고 이를 로깅할 W&B 프로젝트를 name_of_wandb_project
에 설정합니다.
NOTE: name_of_wandb_project
는 {team_name}/{project_name}
형식일 수도 있어 트레이스를 로깅할 팀을 지정합니다.
그런 다음 weave.init()
데이터 로딩
데이터를 Pandas 데이터프레임으로 로드하고,conversation_id
와 turn_index
로 정렬하여 부모와 자식이 올바르게 정렬되도록 합니다.
이렇게 하면 conversation_data
아래에 대화 턴이 배열로 있는 두 열의 pandas DF가 생성됩니다.
Weave에 트레이스 로깅하기
이제 pandas DF를 반복합니다:- 모든
conversation_id
- 턴 배열을 반복하여
turn_index
- Weave 호출은 Weave 트레이스와 동일하며, 이 호출은 관련된 부모나 자식을 가질 수 있습니다
- Weave 호출은 피드백, 메타데이터 등 다른 것들과 연결될 수 있습니다. 여기서는 입력과 출력만 연결하지만, 데이터가 제공하는 경우 가져오기에 이러한 항목을 추가할 수 있습니다.
- weave 호출은
created
되고finished
됩니다. 이는 실시간으로 추적되도록 설계되었기 때문입니다. 이것은 사후 가져오기이므로, 객체가 정의되고 서로 연결되면 생성하고 완료합니다. - 호출의
op
값은 Weave가 동일한 구성의 호출을 분류하는 방법입니다. 이 예제에서는 모든 부모 호출은Conversation
유형이고, 모든 자식 호출은Turn
유형입니다. 필요에 따라 이를 수정할 수 있습니다. - 호출은
inputs
와output
를 가질 수 있습니다.inputs
는 생성 시 정의되고output
는 호출이 완료될 때 정의됩니다.