> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-sandboxes-integrations-placement.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 모델로 애플리케이션 버전 추적하기

> 데이터와 코드를 결합한 구조화된 모델로 애플리케이션 버전을 추적하세요.

`Model`은 데이터(설정, 트레이닝된 모델 가중치, 기타 정보 등을 포함할 수 있음)와 모델의 동작 방식을 정의하는 코드가 결합된 것입니다. 코드를 이 API와 호환되도록 구조화하면 애플리케이션을 체계적으로 버전 관리할 수 있으므로, 실험을 더 일관되게 추적할 수 있습니다.

이 가이드에서는 Weave `Model`을 정의하고, 이를 호출해 입력과 출력을 캡처하고, 코드나 매개변수가 변경될 때 자동 버전 관리를 활용하고, 로컬 API 뒤에서 모델을 서빙하고, 필터링할 수 있도록 프로덕션 Call에 태그를 지정하는 방법을 설명합니다. 이 가이드는 Weave로 LLM 기반 애플리케이션을 구축하며, 앱의 반복 버전을 추적하고 비교할 수 있는 재현 가능한 방법을 원하는 개발자를 위한 것입니다.

<Tabs>
  <Tab title="Python">
    Weave에서 모델을 만들려면 다음이 필요합니다.

    * `weave.Model`을 상속하는 클래스
    * 모든 매개변수의 유형 정의
    * `@weave.op()` 데코레이터가 적용된 유형 지정 `predict` 함수

    ```python lines theme={null}
    from weave import Model
    import weave

    class YourModel(Model):
        attribute1: str
        attribute2: int

        @weave.op()
        def predict(self, input_data: str) -> dict:
            # 여기에 모델 로직이 들어갑니다
            prediction = self.attribute1 + ' ' + input_data
            return {'pred': prediction}
    ```

    다음과 같이 평소처럼 모델을 호출할 수 있습니다.

    ```python lines theme={null}
    import weave
    weave.init('intro-example')

    model = YourModel(attribute1='hello', attribute2=5)
    model.predict('world')
    ```

    이렇게 하면 `predict()`를 호출할 때마다 모델 설정이 입력 및 출력과 함께 추적됩니다. 이제 모델이 수행하는 모든 예측을 기록하는 버전 관리된 Weave `Model`이 준비되었으며, 다음 섹션에서는 이를 바탕으로 설명합니다.

    ## 모델 자동 버전 관리

    모델을 정의하는 매개변수나 코드를 변경하면 Weave가 이러한 변경 사항을 로그로 기록하고 버전을 업데이트합니다.
    그러면 모델 버전별 예측을 비교할 수 있습니다. 프롬프트를 반복 개선하거나 다른 LLM을 사용해 보고, 설정별 예측을 비교할 때 활용하세요.

    예를 들어, 여기서는 새 모델을 만듭니다.

    ```python lines theme={null}
    import weave
    weave.init('intro-example')

    model = YourModel(attribute1='howdy', attribute2=10)
    model.predict('world')
    ```

    이렇게 호출하고 나면 UI에서 이 모델의 두 가지 버전을 확인할 수 있으며, 각 버전에는 서로 다른 추적된 Call이 기록됩니다.

    ## 모델 서빙

    모델을 서빙하면 `predict` 함수를 HTTP로 노출할 수 있으므로, 기본 코드를 배포하지 않고도 다른 애플리케이션에서 테스트하거나 팀원과 공유할 때 유용합니다. Weave 모델용 FastAPI 서버를 시작하려면 `[MODEL-REF]`를 모델 레퍼런스로 바꾸고 다음 명령을 실행하세요.

    ```bash theme={null}
    weave serve [MODEL-REF]
    ```

    추가 지침은 [serve](/ko/weave/guides/tools/serve)를 참조하세요.

    ## 프로덕션 Call 추적

    모델을 둘 이상의 환경에서 사용하기 시작하면 프로덕션 트래픽을 개발 또는 evaluation run과 구분해 두는 것이 도움이 됩니다. 그러면 각각을 별도로 분석할 수 있습니다. 프로덕션 Call을 분리하려면 UI 또는 API에서 필터링할 수 있도록 예측에 속성을 추가하세요.

    ```python lines theme={null}
    with weave.attributes({'env': 'production'}):
        model.predict('world')
    ```
  </Tab>

  <Tab title="TypeScript">
    ```text theme={null}
    이 기능은 아직 TypeScript에서 사용할 수 없습니다.
    ```
  </Tab>
</Tabs>
