> ## 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 프롬프트와 응답을 반복적으로 개선하는 과정을 간소화합니다

<Tip>
  한시적으로 Serverless Inference가 무료 티어에 포함됩니다. Serverless Inference를 사용하면 API와 Weave 플레이그라운드에서 주요 오픈 소스 파운데이션 모델에 액세스할 수 있습니다.

  * [개발자 문서](/ko/products/wandb/weave/guides/integrations/inference)
  * [제품 페이지](https://wandb.ai/site/inference)
</Tip>

LLM 프롬프트와 응답을 평가하기는 쉽지 않습니다. Weave 플레이그라운드는 LLM 프롬프트와 응답을 반복적으로 개선하는 과정을 간소화하여 다양한 모델과 프롬프트를 손쉽게 실험할 수 있게 해 줍니다. 프롬프트 편집, 메시지 재시도, 모델 비교 등의 기능을 활용해 LLM 애플리케이션을 테스트하고 개선할 수 있습니다. 플레이그라운드는 LLM 프롬프트를 애플리케이션에 통합하기 전에 테스트하고 비교하며 다듬으려는 개발자와 프롬프트 엔지니어를 위한 도구입니다. OpenAI, Anthropic, Google 등 여러 공급자의 모델은 물론 [맞춤형 런타임](#custom-runtimes)도 지원합니다.

* **빠른 액세스:** Weave 사이드바 메뉴에서 **Playground**를 열어 새 세션을 시작하거나, Call 페이지에서 열어 기존 프로젝트를 테스트하세요.
* **메시지 제어:** 채팅 안에서 메시지를 바로 편집, 재시도, 삭제할 수 있습니다.
* **유연한 메시징:** 새 메시지를 사용자 입력이나 시스템 입력으로 추가하여 LLM에 보낼 수 있습니다.
* **사용자 지정 가능한 설정:** 원하는 LLM 공급자를 설정하고 모델 설정을 조정할 수 있습니다.
* **다중 LLM 지원:** 팀 수준에서 API 키를 관리하며 여러 모델을 전환해 사용할 수 있습니다.
* **모델 비교:** 모델별로 프롬프트에 어떻게 응답하는지 비교할 수 있습니다.
* **맞춤형 런타임:** 맞춤형 모델용 OpenAI 호환 API 엔드포인트를 테스트할 수 있습니다.
* **저장된 모델:** 워크플로에서 재사용할 모델 프리셋을 만들고 설정할 수 있습니다.

플레이그라운드로 LLM 상호 작용을 최적화하고, 프롬프트 엔지니어링과 LLM 애플리케이션 개발 과정을 효율화해 보세요. 다음 섹션에서는 플레이그라운드를 설정하고 사용하는 방법을 설명합니다.

* [공급자 자격 증명 및 정보 추가](#add-provider-credentials-and-information)
* [플레이그라운드 액세스](#access-the-playground)
* [LLM 선택](#select-an-llm)
* [플레이그라운드 설정 사용자 지정](#customize-playground-settings)
* [메시지 제어](#message-controls)
* [LLM 비교](#compare-llms)
* [맞춤형 런타임](#custom-runtimes)
* [저장된 모델](#saved-models)

<h2 id="add-provider-credentials-and-information">
  공급자 자격 증명 및 정보 추가
</h2>

Playground를 사용하려면 먼저 공급자 자격 증명을 추가해야 합니다. 그래야 Playground가 사용자를 대신해 각 모델 공급자에 보내는 요청을 인증할 수 있습니다. Playground는 여러 공급자의 모델을 지원합니다. 사용 가능한 모델을 사용하려면 W\&B 설정의 팀 시크릿에 해당 공급자의 정보를 추가해야 합니다.

* Amazon Bedrock:
  * `AWS_ACCESS_KEY_ID`
  * `AWS_SECRET_ACCESS_KEY`
  * `AWS_REGION_NAME`
* Anthropic: `ANTHROPIC_API_KEY`
* Azure:
  * `AZURE_API_KEY`
  * `AZURE_API_BASE`
  * `AZURE_API_VERSION`
* Deepseek: `DEEPSEEK_API_KEY`
* Google: `GEMINI_API_KEY`
* Groq: `GROQ_API_KEY`
* Mistral: `MISTRAL_API_KEY`
* OpenAI: `OPENAI_API_KEY`
* X.AI: `XAI_API_KEY`

<h2 id="access-the-playground">
  Playground 액세스
</h2>

Playground에는 두 가지 방법으로 액세스할 수 있습니다.

1. *기본 system 프롬프트가 설정된 새 Playground 페이지 열기*: Weave 프로젝트의 사이드바에서 **Playground**를 선택하세요. Playground가 같은 탭에서 열립니다.
2. *특정 call의 Playground 열기*:
   1. 사이드바에서 **Traces** 탭을 선택하세요. 트레이스 목록이 표시됩니다.
   2. 트레이스 목록에서 확인할 call의 이름을 클릭하세요. 해당 call의 세부 정보 페이지가 열립니다.
   3. **Open chat in Playground**를 클릭하세요. Playground가 새 탭에서 열립니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/open_chat_in_playground.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=d2cf25b85a250baa787e341c5360dcdb" alt="Open in Playground 버튼 스크린샷" width="2468" height="1732" data-path="products/wandb/weave/_media/open_chat_in_playground.png" />
</Frame>

<h2 id="select-an-llm">
  LLM 선택
</h2>

프롬프트 헤더(Playground 기본 패널 상단)의 **Select a model** 드롭다운에서 LLM을 전환할 수 있습니다. 사용 가능한 공급자는 다음과 같습니다.

* Amazon Bedrock
* Anthropic
* Azure
* Deepseek
* Google
* Groq
* Mistral
* OpenAI
* X.AI

사용 가능한 모델은 팀에 설정된 공급자에 따라 달라집니다.

<h2 id="customize-playground-settings">
  Playground 설정 사용자 지정
</h2>

선택한 모델의 매개변수를 조정하고, 모델이 호출할 함수를 추가할 수 있습니다. 다음 섹션에서는 Playground 설정을 사용자 지정하는 방법을 설명합니다.

<h3 id="adjust-llm-parameters">
  LLM 매개변수 조정
</h3>

선택한 모델의 매개변수 값을 다양하게 바꿔 가며 실험해 볼 수 있습니다. Playground에서 매개변수를 조정하려면 다음 단계를 따르세요.

1. 프롬프트 헤더(기본 패널 상단)에서 **Chat settings (<Icon icon="sliders-horizontal" iconType="regular" />)** 버튼을 클릭하여 **Chat settings** 패널을 여세요.
2. **Chat settings** 패널에서 필요에 따라 매개변수를 조정하세요. Weave 호출 추적을 켜거나 끌 수 있으며, [함수를 추가](#add-a-function)할 수도 있습니다.
3. 변경 사항은 자동으로 적용됩니다. 패널을 닫으려면 **Chat settings**를 다시 클릭하거나 오른쪽 상단의 **x**를 클릭하세요. **Chat settings** 버튼에 마우스를 올리면 변경한 설정을 확인할 수 있습니다.

<Note>
  페이지를 벗어나면 설정이 사라집니다. 설정을 유지하려면 [모델을 저장](#save-a-model)하세요. 변경한 설정을 취소하고 처음부터 다시 시작하려면 페이지를 새로 고치세요.
</Note>

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/playground_settings.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=43416618be53a6a994d2a28088231269" alt="Select a model 드롭다운과 오른쪽의 Chat settings 패널이 열려 있는 Weave 플레이그라운드." width="3334" height="1852" data-path="products/wandb/weave/_media/playground_settings.png" />
</Frame>

Playground에서 시행 횟수를 설정하면 동일한 입력에 대해 여러 출력을 생성할 수 있습니다. 기본값은 `1`입니다. 시행 횟수를 조정하려면 **Chat settings** 패널을 열고 **Number of trials** 값을 변경하세요.

<h3 id="add-a-function">
  함수 추가
</h3>

사용자로부터 받은 입력을 바탕으로 여러 모델이 함수를 어떻게 사용하는지 테스트할 수 있습니다. 플레이그라운드에서 테스트할 함수를 추가하려면 **Chat settings** 패널에서 **+ Add function**을 클릭하세요. 화면의 안내에 따라 함수를 정의한 다음 변경 사항을 저장하세요.

<h2 id="message-controls">
  메시지 컨트롤
</h2>

플레이그라운드 채팅 인터페이스는 프롬프트 정의 영역, 메시지 패널, 메시지 작성기의 세 영역으로 구성됩니다. 이어지는 섹션에서 각 영역을 설명합니다.

<h3 id="prompt-definition-area">
  Prompt definition area
</h3>

**Prompt definition area**에서는 상호작용 전반에 걸쳐 모델의 동작 방식을 결정하는 지침을 정의할 수 있습니다.

이 영역에서는 메시지를 주고받기 전에 일관되게 적용되는 컨텍스트를 제공할 수 있습니다. 여기에는 역할 정의, 어조 및 스타일 지침, 동작 제약 조건, 출력 요구 사항이 포함됩니다. 여기서 변경한 내용은 다시 수정하기 전까지 이후의 모든 상호작용에 적용됩니다.

이 영역은 다음 항목으로 구성됩니다.

* **Prompt selector**: 저장된 기존 프롬프트를 선택하거나 새 프롬프트를 만듭니다.
* **Message role selector**: 정의할 메시지의 역할(**System**, **Assistant** 또는 **User** 역할)을 지정합니다.
* **Prompt text**: 모델의 응답 방식을 결정하는 지침 텍스트를 입력합니다.
* **Add message** 버튼: 실행 전에 프롬프트 컨텍스트에 메시지를 더 추가할 수 있습니다.

이러한 메시지는 모델에 함께 전송되며, 다음과 같은 용도로 활용할 수 있습니다.

* 시스템 수준의 보조 지침을 추가합니다.
* 응답을 원하는 방향으로 유도하는 assistant 메시지 예시를 제공합니다(예: few-shot 프롬프팅).
* 특정 시나리오를 테스트할 수 있도록 사용자 메시지를 미리 정의합니다.

<h3 id="messages-panel">
  Messages panel
</h3>

**Messages panel**에는 실행 중에 생성된 대화가 표시됩니다.

여기에는 다음 항목이 포함됩니다.

* 프롬프트 설정에 포함된 사전 정의 메시지
* Message composer에서 보낸 메시지
* 모델이 반환한 응답

패널에서 메시지를 **Copy**, **Delete**, **Edit**, **Retry**할 수도 있습니다.

<h3 id="message-composer-input-field">
  Message composer (입력 필드)
</h3>

**Message composer**를 사용하여 모델에 새 메시지를 보내세요.

Message composer에서는 메시지 역할을 선택하고 메시지를 제출해 실행할 수 있습니다. 대부분의 상호작용은 **User** 메시지로 작성합니다. 지시문 변경 사항을 테스트할 때는 **System** 또는 **Assistant** 메시지를 추가할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/playground_chat_input.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=4883e49f5049eb91b8b2058169861eec" alt="상단에는 프롬프트 정의 영역, 가운데에는 메시지 이력, 하단에는 새 메시지를 보내는 Message composer가 표시된 Weave 플레이그라운드." width="2684" height="1688" data-path="products/wandb/weave/_media/playground_chat_input.png" />
</Frame>

<h2 id="view-message-history">
  메시지 이력 보기
</h2>

메시지 이력을 보려면 Playground 오른쪽 툴바에서 **History (<Icon icon="clock" iconType="light" />)** 버튼을 클릭하세요. 현재 프로젝트에서 보낸 모든 메시지가 표시된 History 패널이 열립니다.

이력에서 항목을 선택하면 해당 항목이 비교용 채팅 패널에 추가로 로드됩니다.

<h2 id="compare-llms">
  LLM 비교
</h2>

Playground에서는 여러 LLM을 나란히 비교하면서 각 모델이 동일한 프롬프트에 어떻게 응답하는지 평가할 수 있습니다. 비교하려면 Playground 오른쪽 툴바에서 **Add Chat (<Icon icon="plus" iconType="solid" />)** 버튼을 클릭하세요. 기존 채팅 옆에 두 번째 채팅이 열립니다. 두 번째 채팅에서도 모델 선택, 설정 조정, 함수 추가 등 기존 채팅과 동일한 기능을 모두 사용할 수 있습니다.

<h2 id="custom-runtimes">
  맞춤형 런타임
</h2>

Playground는 기본 제공 공급자 외에도 맞춤형 런타임을 지원합니다. 맞춤형 런타임은 프로젝트에 등록하여 사용하는 OpenAI 호환 API 엔드포인트로, 이전에는 *사용자 정의 프로바이더*라고 불렸습니다. 팀에서 서빙하는 에이전트 프로토타입, 로컬 모델, 지원되는 공급자 모델의 이전 버전 등을 테스트할 때 맞춤형 런타임을 사용하세요.

UI 또는 Python SDK로 맞춤형 런타임을 등록하는 방법은 [맞춤형 런타임](/ko/products/wandb/weave/guides/tools/custom-runtimes)을 참조하세요. 맞춤형 런타임을 등록한 후에는 **Select a model** 드롭다운에서 해당 모델을 선택하고 표준 Playground 기능으로 테스트할 수 있습니다.

<h3 id="use-a-local-model-as-a-custom-runtime">
  로컬 모델을 맞춤형 런타임으로 사용하기
</h3>

로컬에서 실행 중인 모델을 Playground에서 테스트하려면 ngrok과 Ollama로 CORS 제한을 피할 수 있는 임시 공개 URL을 만드세요. 이렇게 하면 Playground가 브라우저 보안 정책을 위반하지 않고도 사용자 컴퓨터에서 실행 중인 모델에 연결할 수 있습니다.

다음과 같이 설정하세요.

1. 사용 중인 운영 체제에 맞는 [ngrok을 설치](https://ngrok.com/docs/getting-started/#step-1-install)하세요.

2. Ollama 모델을 시작하세요. `[MODEL]`을 실행할 Ollama 모델 이름으로 바꾸세요.

   ```bash theme={"system"}
   ollama run [MODEL]
   ```

3. 별도의 터미널에서 필요한 CORS 헤더를 포함하여 ngrok 터널을 만드세요.

   ```bash theme={"system"}
   ngrok http 11434 --response-header-add "Access-Control-Allow-Origin: *" --host-header rewrite
   ```

4. ngrok이 시작되면 `https://xxxx-xxxx.ngrok-free.app`과 같은 공개 URL이 표시됩니다. [맞춤형 런타임을 등록](/ko/products/wandb/weave/guides/tools/custom-runtimes#register-a-custom-runtime-in-the-ui)할 때 이 URL을 **Base URL**로 사용하세요.

다음 다이어그램은 로컬 환경, ngrok 프록시, W\&B 클라우드 서비스 간의 데이터 흐름을 보여 줍니다.

```mermaid theme={"system"}
flowchart LR
    %% Style definitions
    classDef clientMachine fill:#FFD95CCC,stroke:#454B52,stroke-width:2px
    classDef proxy fill:#00CDDBCC,stroke:#454B52,stroke-width:2px
    classDef wandbCloud fill:#DE72FFCC,stroke:#454B52,stroke-width:2px
    classDef publicCloud fill:#FFCBADCC,stroke:#454B52,stroke-width:2px

    %% Subgraphs
    subgraph 클라이언트_머신
        browser[브라우저]
        llm_local[로컬 LLM 제공업체]
    end

    subgraph 프록시
        ngrok[Ngrok 프록시]
    end

    subgraph W&B_클라우드
        trace_server[트레이스 서버]
    end

    subgraph 퍼블릭_클라우드
        llm_cloud[퍼블릭 LLM 제공업체]
    end

    %% Apply styles to subgraphs
    class Client_Machine clientMachine
    class Proxy proxy
    class WandB_Cloud wandbCloud
    class Public_Cloud publicCloud

    %% Current Data Flow
    browser -->|채팅 요청 전송| trace_server
    trace_server -->|퍼블릭 LLM 사용| llm_cloud
    trace_server -->|로컬 LLM 사용| ngrok
    ngrok -->|전달| llm_local
    llm_cloud -->|응답 반환| trace_server
    llm_local -->|응답 반환| ngrok
    ngrok -->|전달| trace_server
    trace_server -->|응답 반환| browser

    %% Future Possible Connection
    browser -.->|향후: 로컬 LLM 직접 호출| llm_local

    %% Link styles
    linkStyle default stroke:#454B52,stroke-width:2px
    linkStyle 8 stroke:#454B52,stroke-width:2px,stroke-dasharray:5
```

<h2 id="saved-models">
  저장된 모델
</h2>

저장된 모델을 사용하면 공급자, 모델, 매개변수, 함수 훅을 재사용 가능한 프리셋으로 저장해 둘 수 있습니다. 다음 섹션에서는 모델을 저장, 사용, 업데이트하는 방법을 설명합니다.

<h3 id="save-a-model">
  모델 저장
</h3>

워크플로에서 재사용할 수 있는 모델 프리셋을 만들고 설정할 수 있습니다. 모델을 저장해 두면 원하는 설정, 매개변수, 함수 훅이 적용된 상태로 빠르게 불러올 수 있습니다.

1. 프롬프트 헤더(메인 패널 상단)의 **Select a model** 드롭다운에서 공급자와 모델을 선택하세요.
2. 프롬프트 헤더에서 **Chat settings (<Icon icon="sliders-horizontal" iconType="regular" />)** 버튼을 클릭하여 **Chat settings** 패널을 여세요.
3. **Chat settings** 패널에서 다음 작업을 수행하세요.
   * **Model Name** (필수): 저장할 모델의 이름을 입력하세요.
   * 필요에 따라 매개변수를 조정하세요. Weave call tracking을 켜거나 끌 수 있으며, [함수를 추가](#add-a-function)할 수도 있습니다.
4. **Publish model**을 클릭하세요. 모델이 저장되며, **Select a model** 드롭다운의 **Saved Models**에서 액세스할 수 있습니다. 이후 저장된 모델을 [사용](#use-a-saved-model)하거나 [업데이트](#update-a-saved-model)할 수 있습니다.

<h3 id="use-a-saved-model">
  저장된 모델 사용하기
</h3>

이전에 [저장한 모델](#save-a-model)로 전환하면 여러 실험이나 세션에서 일관성을 유지할 수 있으며, 중단했던 지점부터 작업을 이어갈 수 있습니다.

1. 프롬프트 헤더의 **Select a model** 드롭다운에서 **Saved Models**를 선택하세요.
2. 저장된 모델 목록에서 불러올 모델을 선택하세요. 모델이 로드되면 플레이그라운드에서 바로 사용할 수 있습니다.

<h3 id="update-a-saved-model">
  저장된 모델 업데이트
</h3>

기존 [저장된 모델](#save-a-model)을 편집하여 매개변수를 세밀하게 조정하거나 설정을 최신 상태로 갱신할 수 있습니다. 이를 통해 사용 사례의 변화에 맞춰 저장된 모델도 함께 발전시킬 수 있습니다.

1. 프롬프트 헤더의 **Select a model** 드롭다운에서 **Saved Models**를 선택하세요.
2. 저장된 모델 목록에서 업데이트할 모델을 선택하세요.
3. 프롬프트 헤더에서 **Chat settings (<Icon icon="sliders-horizontal" iconType="regular" />)** 버튼을 클릭하여 **Chat settings** 패널을 여세요.
4. **Chat settings** 패널에서 필요에 따라 매개변수를 조정하세요. Weave 호출 추적을 켜거나 끌 수 있으며, [함수를 추가](#add-a-function)할 수도 있습니다.
5. **Update model**을 클릭하세요. 모델이 업데이트되며, **Select a model** 드롭다운의 **Saved Models**에서 액세스할 수 있습니다. 저장된 모델의 버전은 자동으로 올라갑니다.
