이 가이드는 서드파티 라이브러리(예: OpenAI)를 Weave TypeScript SDK와 통합하는 방법을 설명합니다. Weave는 자동 계측을 지원하여 설정을 더 쉽게 하고 수동 구성의 필요성을 줄입니다.
무엇이 변경되었나요? 다음 시점부터 PR #4554, OpenAI와 같은 지원되는 라이브러리는 Weave가 로드될 때 자동으로 패치됩니다. 이전과 같이 수동으로 래핑할 필요가 없습니다:
weave.wrapOpenAI(new OpenAI());
Weave는 일반적으로 이를 자동으로 처리합니다. 그러나 예외적인 경우가 있을 수 있습니다.

사용 지침

CommonJS와 ESM 둘 다 사용할 수 있습니다.

CommonJS

CommonJS의 경우, 특별한 구성이 필요하지 않습니다. 자동 패치는 즉시 작동합니다. 단순히 Weave를 설치하세요:
npm install weave

ESM

ESM의 경우, Node의 --import 플래그를 사용하여 자동 계측을 활성화하세요. weave/instrument 모듈은 weave 패키지가 설치되어 있는 한 사용 가능합니다.
  1. Weave 설치:
    npm install weave
    
  2. 다음을 가져오세요 weave/instrument module:
    node --import=weave/instrument dist/main.js
    

고급 사용법 및 문제 해결

이 섹션에서는 TypeScript SDK의 자동 패치가 예상대로 작동하지 않을 때의 예외 사례와 해결 방법을 다룹니다. 예를 들어, ESM 전용 환경, Next.js와 같은 번들러 설정, 또는 제한된 런타임 환경에서 예상치 못한 문제가 발생할 수 있습니다. 추적이 누락되거나 통합 문제가 발생하면 여기서부터 시작하세요.

다음을 사용하세요 NODE_OPTIONS (ESM에만 해당)

다음과 함께 사용하세요 NODE_OPTIONS 주의해서 사용하세요. 이는 환경의 모든 Node.js 프로세스에 영향을 미치며 부작용을 초래할 수 있습니다.
ESM 프로젝트를 사용하고 CLI 플래그를 전달할 수 없는 경우(예: CLI 도구나 프레임워크의 제약으로 인해), NODE_OPTIONS 환경 변수를 설정하세요:
export NODE_OPTIONS="--import=weave/instrument"

번들러 호환성(예: Next.js)

Next.js와 같은 일부 프레임워크와 번들러는 Node가 런타임에 패치하는 능력을 방해하는 방식으로 서드파티 라이브러리를 번들링할 수 있습니다. 이러한 설정이라면 다음 단계를 시도해 보세요:
  1. 번들러 구성에서 LLM 라이브러리를 외부로 표시하세요. 이렇게 하면 번들링되지 않아 Weave가 런타임에 올바르게 패치할 수 있습니다. 다음 예제는 openai 패키지를 next.config.js 구성에서 외부로 표시하는 방법을 보여줍니다. 이렇게 하면 번들링되지 않습니다. 모듈은 런타임에 로드되므로 Weave가 자동으로 패치하고 추적할 수 있습니다. Next.js와 같은 프레임워크로 작업할 때 자동 계측을 활성화하려면 이 설정을 사용하세요.
    externals: {
    'openai': 'commonjs openai'
    }
    
  2. 패치가 여전히 실패하면 수동 계측으로 대체하세요.

수동 패치(대체 옵션)

수동 패치는 레거시 접근 방식이며 자동 패치가 작동하지 않을 때만 사용해야 합니다.
일부 경우에는 여전히 수동 계측을 사용해야 할 수 있습니다:
import { wrapOpenAI } from 'weave';
const client = wrapOpenAI(new OpenAI());