- LLM 라이브러리 Call 자동 추적
weave.op을 사용한 맞춤형 함수 추적- API를 직접 사용한 수동 Call 추적
LLM 라이브러리 Call 자동 추적
Weave는openai, anthropic, cohere, mistral, LangChain 등 널리 사용되는 여러 라이브러리 및 프레임워크와 자동으로 통합됩니다. LLM 또는 프레임워크 라이브러리를 임포트하고 Weave 프로젝트를 초기화하기만 하면 됩니다. 그러면 별도로 코드를 변경하지 않아도 Weave가 LLM 또는 플랫폼에 대한 모든 Call을 자동으로 트레이스하여 프로젝트에 기록합니다. 지원되는 라이브러리 인테그레이션의 전체 목록은 인테그레이션 개요를 참조하세요.
- Python
- TypeScript
맞춤형 함수 추적하기
LLM 애플리케이션에는 전처리와 후처리, 프롬프트 등 추적하고 싶은 추가 로직이 있는 경우가 많습니다. Weave가 자동으로 트레이스하는 LLM Call과 함께 직접 작성한 함수도 캡처하려면 이 방법을 사용하세요.- Python
- TypeScript
클래스 및 객체 메서드 추적하기
독립 실행형 함수뿐만 아니라 클래스 및 객체 메서드도 추적할 수 있습니다. 클래스의 메서드에weave.op 데코레이터를 적용하면 어떤 메서드든 추적할 수 있습니다.
- Python
- TypeScript
병렬(멀티스레드) 함수 호출 트레이스하기
기본적으로 병렬 Call은 Weave에서 모두 별도의 루트 Call로 표시되므로 트레이스 계층 구조를 파악하기 어렵습니다. 동일한 상위 Op 아래에 올바르게 중첩되도록 하려면ThreadPoolExecutor를 사용하세요.
- Python
- TypeScript
다음 코드 예제는
ThreadPoolExecutor를 사용하는 방법을 보여줍니다.
첫 번째 함수 func는 x를 받아 x+1을 반환하는 단순한 Op입니다. 두 번째 함수 outer는 입력 목록을 받는 또 다른 Op입니다.
outer 내부에서 ThreadPoolExecutor와 exc.map(func, inputs)를 사용하므로 func의 각 호출은 동일한 상위 트레이스 컨텍스트를 그대로 유지합니다.
수동 Call 추적
자동 인테그레이션과weave.op 데코레이터가 모두 워크플로에 맞지 않는다면 API를 직접 사용해 Call을 수동으로 생성할 수 있습니다. 이 방식은 보일러플레이트 코드가 늘어나는 대신 Call의 시작과 종료 시점을 완전히 제어할 수 있다는 장점이 있습니다.
- Python
- TypeScript
- HTTP API