> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 자동 LLM Call 추적 제어

> W&B Weave가 OpenAI, Anthropic 및 기타 LLM 라이브러리에 대한 Call을 자동으로 기록하는 방식을 제어합니다

애플리케이션에서 LLM 공급자 라이브러리(예: OpenAI, Anthropic, Cohere, Mistral)를 사용하면 Weave가 자동 패치(autopatching)를 통해 LLM Call을 자동으로 트레이스합니다. `weave.init()`을 호출하면 Weave가 지원되는 LLM 클라이언트 라이브러리를 가로챕니다(패치). 애플리케이션 코드는 수정할 필요가 없습니다. 평소처럼 공급자 SDK를 사용하면 Weave가 각 요청을 Weave Call로 기록합니다.

이 페이지에서는 이 동작을 변경해야 하는 경우와 변경 방법을 설명합니다. 자동 추적을 끄거나, 특정 공급자로만 제한하거나, 입력과 출력을 후처리(예: PII 마스킹)할 수 있습니다.

<h2 id="default-behavior">
  기본 동작
</h2>

기본적으로 Weave는 `openai`, `anthropic` 등 널리 쓰이는 LLM 라이브러리를 자동으로 패치하고, 이 라이브러리에 대한 Call을 추적합니다. 프로그램을 시작할 때 `weave.init(...)`을 호출한 다음 해당 라이브러리를 평소처럼 사용하면 됩니다. 이러한 Call은 프로젝트의 Traces에 표시됩니다.

<h2 id="configure-autopatching">
  자동 패치 설정하기
</h2>

다음 섹션에서는 Python과 TypeScript에서 자동 패치를 활성화 또는 비활성화하거나 세부적으로 조정하는 방법을 설명합니다. 사용하는 SDK에 해당하는 탭을 선택하세요.

<Tabs>
  <Tab title="Python">
    <Warning>
      `autopatch_settings` 인수는 사용 중단되었습니다. 암시적 패치를 비활성화하려면 `implicitly_patch_integrations=False`를 사용하세요. 인테그레이션별로 설정하려면 `patch_openai(settings={...})`와 같은 개별 패치 함수를 Call하세요.
    </Warning>

    Weave는 기본적으로 지원되는 모든 인테그레이션에 자동 암시적 패치를 적용합니다.

    암시적 패치(자동): 라이브러리를 임포트하는 시점과 관계없이 Weave가 자동으로 패치합니다.

    ```python lines theme={"system"}
    # 옵션 1: weave.init() 전에 임포트
    import openai
    import weave
    weave.init('your-team-name/your-project-name')  # OpenAI가 자동으로 패치됩니다.

    # 옵션 2: weave.init() 후에 임포트
    import weave
    weave.init('your-team-name/your-project-name')
    import anthropic  # 임포트 훅을 통해 자동으로 패치됩니다.
    ```

    암시적 패치 비활성화: 패치를 명시적으로 제어하려면 자동 패치를 끌 수 있습니다.

    ```python lines theme={"system"}
    import weave

    # 옵션 1: settings 매개변수 사용
    weave.init('your-team-name/your-project-name', settings={'implicitly_patch_integrations': False})

    # 옵션 2: 환경 변수 사용
    # 스크립트를 실행하기 전에 WEAVE_IMPLICITLY_PATCH_INTEGRATIONS=false를 설정하세요

    # 암시적 패치를 비활성화하면 인테그레이션을 명시적으로 패치해야 합니다
    import openai
    weave.patch_openai()  # 이제 OpenAI 트레이싱을 위해 필수입니다
    ```

    명시적 패치(수동): 인테그레이션을 명시적으로 패치하면 더 세밀하게 제어할 수 있습니다. 암시적 패치를 꺼 두었거나 일부 공급자만 트레이스하려는 경우에 유용합니다.

    ```python lines theme={"system"}
    import weave
    weave.init('your-team-name/your-project-name')
    weave.integrations.patch_openai()  # OpenAI 트레이싱 활성화
    weave.integrations.patch_anthropic()  # Anthropic 트레이싱 활성화
    ```

    위 코드를 실행하면 Weave는 명시적으로 패치한 공급자만 트레이스합니다.

    <h3 id="post-process-inputs-and-outputs">
      입력 및 출력 후처리
    </h3>

    패치를 켜고 끄는 것 외에도 Weave가 각 Call에서 기록하는 내용을 변환할 수 있습니다. 패치 함수에 설정을 전달하면 Weave가 입력과 출력을 기록하는 방식을 사용자 지정할 수 있습니다(예: PII나 시크릿 마스킹).

    ```python lines theme={"system"}
    import weave.integrations

    def redact_inputs(inputs: dict) -> dict:
        if "email" in inputs:
            inputs["email"] = "[REDACTED]"
        return inputs

    weave.init(...)
    weave.integrations.patch_openai(
        settings={
            "op_settings": {"postprocess_inputs": redact_inputs}
        }
    )
    ```

    민감한 데이터 처리에 대한 자세한 내용은 [PII 데이터와 함께 Weave 사용하기](/ko/products/wandb/weave/cookbooks/pii)를 참조하세요.
  </Tab>

  <Tab title="TypeScript">
    TypeScript SDK는 OpenAI와 Anthropic에 대해서만 자동 패치를 지원합니다. Weave를 임포트하면 OpenAI가 패치되며, 별도의 설정은 필요하지 않습니다.

    또한 TypeScript SDK는 다음 기능을 지원하지 않습니다.

    * 자동 패치 설정 또는 비활성화
    * 입력 및 출력 후처리

    자동 패치가 작동하지 않는 예외적인 경우(ESM, Next.js 같은 번들러)에는 명시적 래핑을 사용하여 Weave가 OpenAI 클라이언트를 확실히 트레이스하도록 하세요.

    ```typescript twoslash theme={"system"}
    // @noErrors
    import OpenAI from 'openai'
    import * as weave from 'weave'
    import { wrapOpenAI } from 'weave'

    const client = wrapOpenAI(new OpenAI())
    await weave.init('your-team-name/your-project-name')
    ```

    ESM 설정 및 문제 해결에 대한 자세한 내용은 [TypeScript SDK 인테그레이션 가이드](/ko/products/wandb/weave/guides/integrations/js)를 참조하세요.
  </Tab>
</Tabs>


## Related topics

- [코드 트레이싱하기](/ko/products/wandb/weave/guides/tracking/create-call.md)
