> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-dbrian-docs-serverless-training-quickstart.mintlify.site/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가 LLM Call을 자동으로 추적합니다. `weave.init()`을 호출하면 Weave가 지원되는 LLM 클라이언트 라이브러리를 가로채어(패치하여) 처리합니다. 애플리케이션 코드는 변경 없이 그대로 유지됩니다. 공급자 SDK를 평소처럼 사용하기만 하면 Weave가 각 요청을 Weave Call로 기록합니다.

이 페이지에서는 이러한 동작을 변경하는 방법을 설명합니다. 자동 추적을 비활성화하거나, 특정 공급자로만 제한하거나, 입력 및 출력을 후처리(예: PII 마스킹)하는 방법을 다룹니다."

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

기본적으로 Weave는 `openai` 및 `anthropic`처럼 널리 사용되는 LLM 라이브러리의 call을 자동으로 패치해 추적합니다. 프로그램 시작 시 `weave.init(...)`를 호출한 뒤 해당 라이브러리를 평소처럼 사용하세요. 해당 call은 프로젝트의 트레이스에 표시됩니다.

<div id="configure-autopatching">
  ## 자동 패치 설정
</div>

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

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

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

    암시적 패치(자동): Weave는 라이브러리를 언제 임포트하든 자동으로 패치합니다.

    ```python lines theme={null}
    # 옵션 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={null}
    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={null}
    import weave
    weave.init('your-team-name/your-project-name')
    weave.integrations.patch_openai()  # OpenAI 트레이싱 활성화
    weave.integrations.patch_anthropic()  # Anthropic 트레이싱 활성화
    ```

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

    ### 입력 및 출력 후처리

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

    ```python lines theme={null}
    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}
        }
    )
    ```

    민감한 데이터 처리에 대한 자세한 내용은 [How to use Weave with PII data](/ko/weave/cookbooks/pii)를 참조하세요.
  </Tab>

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

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

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

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

    ```typescript twoslash theme={null}
    // @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 Integration Guide](/ko/weave/guides/integrations/js)를 참조하세요.
  </Tab>
</Tabs>
