- 애플리케이션을 통해 흐르는 데이터 추적
- 호출 시점의 메타데이터 추적
중첩된 함수 호출 추적
LLM 기반 애플리케이션은 여러 번의 LLM 호출과 추가적인 데이터 처리 및 검증 로직을 포함할 수 있으며, 이를 모니터링하는 것은 매우 중요합니다. 많은 앱에서 흔히 볼 수 있는 깊게 중첩된 호출 구조에서도, 추적하려는 모든 함수에weave.op()를 추가하기만 하면 Weave 가 중첩된 함수들 사이의 부모-자식 관계를 추적합니다.
퀵스타트 예제를 확장하여, 다음 코드는 LLM에서 반환된 아이템의 개수를 세고 이를 상위 레벨 함수로 감싸는 추가 로직을 더합니다. 또한, weave.op()를 사용하여 모든 함수, 호출 순서 및 부모-자식 관계를 추적합니다:
- Python
- TypeScript
extract_dinos와 count_dinos)의 입력과 결과는 물론, 자동으로 로그된 OpenAI trace를 확인할 수 있습니다.
메타데이터 추적
weave.attributes 컨텍스트 매니저를 사용하여 호출 시점에 추적할 메타데이터 사전을 전달함으로써 메타데이터를 추적할 수 있습니다.
위의 예제를 이어가겠습니다:
- Python
- TypeScript
사용자 ID나 코드의 환경 상태(development, staging 또는 production)와 같은 메타데이터는 run 타임에 추적하는 것을 권장합니다.시스템 프롬프트와 같은 시스템 설정을 추적하려면 Weave Models 사용을 권장합니다.
다음 단계는?
- App Versioning 튜토리얼을 따라 임시 프롬프트, 모델 및 애플리케이션 변경 사항을 캡처하고 버전 관리하며 정리하는 방법을 알아보세요.