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

# Call 표시 이름 설정

> W&B Weave 트레이싱에서 Call의 표시 이름을 설정하거나 재정의합니다

Ops는 Calls를 생성합니다. Op는 `@weave.op`으로 데코레이션한 함수 또는 메서드입니다. 기본적으로 Op의 이름은 함수 이름이며, 해당 Op에 연결된 Calls도 동일한 표시 이름을 가집니다.

맞춤형 표시 이름을 사용하면 Weave UI에서 Calls를 더 쉽게 파악할 수 있습니다. 같은 Op의 Calls를 서로 구분하거나, 입력값이나 타임스탬프 같은 동적인 컨텍스트를 보여주거나, Call 이름을 팀의 규칙에 맞출 때 유용합니다.

특정 Op의 모든 Calls에 대한 표시 이름은 여러 가지 방법으로 재정의할 수 있습니다. 필요한 범위에 맞는 방법을 선택하세요. 단일 Call, Op의 모든 Calls, 또는 Op 자체에 적용할 수 있습니다.

<Tabs>
  <Tab title="Python">
    1. Op를 호출할 때 표시 이름을 변경합니다. 다음 예제에서는 `__weave` 딕셔너리를 사용해 Op 표시 이름보다 우선하는 Call 표시 이름을 설정합니다:

    ```python lines theme={null}
    result = my_function("World", __weave={"display_name": "My Custom Display Name"})
    ```

    2. Call별로 표시 이름을 변경합니다. 다음 예제에서는 [`Op.call`](/ko/weave/reference/python-sdk/trace/op#function-call) 메서드를 사용해 `call` 객체를 반환한 다음, [`call.set_display_name`](/ko/weave/reference/python-sdk/trace/weave_client#method-set_display_name)을 사용해 표시 이름을 설정합니다:

    ```python lines theme={null}
    result, call = my_function.call("World")
    call.set_display_name("My Custom Display Name")
    ```

    3. 특정 Op의 모든 Calls에 대한 표시 이름을 변경합니다. 다음 예제에서는 `@weave.op` 함수 데코레이터 자체에 새 표시 이름을 설정하여 해당 Op의 모든 Calls에 적용합니다:

    ```python lines theme={null}
    @weave.op(call_display_name="My Custom Display Name")
    def my_function(name: str):
        return f"Hello, {name}!"
    ```

    `call_display_name`은 `call` 객체를 받아 string을 반환하는 함수일 수도 있습니다. 함수가 실행될 때 Weave가 `call` 객체를 자동으로 전달하므로, 이를 사용해 함수 이름, Call 입력값, 필드 등을 기반으로 이름을 동적으로 생성할 수 있습니다. 이는 각 Call의 이름에 런타임 컨텍스트가 반영되도록 하려는 경우에 유용합니다.

    일반적인 사용 사례 중 하나는 함수 이름에 Timestamp를 덧붙이는 것입니다.

    ```python lines theme={null}
    from datetime import datetime

    @weave.op(call_display_name=lambda call: f"{call.func_name}__{datetime.now()}")
    def func():
        return ...
    ```

    `.attributes`를 사용해 맞춤형 메타데이터를 로깅할 수도 있습니다.

    ```python lines theme={null}
    def custom_attribute_name(call):
        model = call.attributes["model"]
        revision = call.attributes["revision"]
        now = call.attributes["date"]

        return f"{model}__{revision}__{now}"

    @weave.op(call_display_name=custom_attribute_name)
    def func():
        return ...

    with weave.attributes(
        {
            "model": "finetuned-llama-3.1-8b",
            "revision": "v0.1.2",
            "date": "2024-08-01",
        }
    ):
        func()  # 표시 이름은 "finetuned-llama-3.1-8b__v0.1.2__2024-08-01"이 됩니다

        with weave.attributes(
            {
                "model": "finetuned-gpt-4o",
                "revision": "v0.1.3",
                "date": "2024-08-02",
            }
        ):
            func()  # 표시 이름은 "finetuned-gpt-4o__v0.1.3__2024-08-02"이 됩니다
    ```

    4. Op 자체의 표시 이름을 변경합니다. Op와 연결된 Calls는 동일한 표시 이름을 가지므로, Op의 이름을 바꾸는 것이 Op가 생성하는 모든 Call의 이름을 바꾸는 가장 직접적인 방법입니다. Op 자체의 이름을 재정의하면 Call의 표시 이름도 함께 변경됩니다. 다음 두 가지 방법으로 설정할 수 있습니다:

       * Calls를 로깅하기 전에 Op의 `name` 속성을 설정합니다:
         ```python lines theme={null}
         my_function.name = "My Custom Op Name"
         ```

       * Op 데코레이터에서 `name` 옵션을 설정합니다:
         ```python lines theme={null}
         @weave.op(name="My Custom Op Name")
         ```
  </Tab>

  <Tab title="TypeScript">
    Call의 기본 이름을 재정의하려면 `weave.op()`을 호출할 때 `callDisplayName` 옵션을 사용하세요.

    ```typescript twoslash lines {2} theme={null}
    // @noErrors
    const extractDinosOp = weave.op(extractDinos, {
    callDisplayName: (input: string) => `Your New Display Name`
    });
    ```
  </Tab>
</Tabs>

이미 로깅한 후에 Call의 이름을 변경해야 하는 경우에도 실행 후 [Call의 표시 이름을 업데이트](/ko/weave/guides/tracking/update-call)할 수 있습니다.
