> ## 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.

> run 데이터를 대화형 시각화로 탐색하는 플레이그라운드

# 실험 결과 보기

export const AriaChatBubbles = ({prompt, response}) => {
  const [isDark, setIsDark] = useState(false);
  const [promptCopied, setPromptCopied] = useState(false);
  useEffect(() => {
    const root = document.documentElement;
    const sync = () => setIsDark(root.classList.contains('dark'));
    sync();
    const obs = new MutationObserver(sync);
    obs.observe(root, {
      attributes: true,
      attributeFilter: ['class']
    });
    return () => obs.disconnect();
  }, []);
  useEffect(() => {
    if (!promptCopied) {
      return undefined;
    }
    const timeout = setTimeout(() => setPromptCopied(false), 2000);
    return () => clearTimeout(timeout);
  }, [promptCopied]);
  const copyText = text => {
    navigator.clipboard.writeText(text).then(() => setPromptCopied(true)).catch(console.error);
  };
  const userBg = isDark ? '#363C44' : '#F8F8F8';
  const userBorder = isDark ? '#4B535C' : '#DFE0E2';
  const textColor = isDark ? '#E8E8E9' : '#2B3038';
  const iconColor = isDark ? '#8F949E' : '#79808A';
  const iconHoverBg = isDark ? 'rgba(255,255,255,0.10)' : 'rgba(0,0,0,0.05)';
  const bubbleText = {
    fontSize: '15px',
    color: textColor,
    overflowWrap: 'anywhere'
  };
  const bubbleBase = {
    maxWidth: '85%'
  };
  const copyIcon = promptCopied ? <svg aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" style={{
    color: '#FCBC32'
  }}>
      <path d="M20 6 9 17l-5-5" />
    </svg> : <svg aria-hidden="true" focusable="false" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect width="14" height="14" x="8" y="8" rx="2" ry="2" />
      <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
    </svg>;
  return <div aria-label="ARIA chat example" className="not-prose flex flex-col gap-3" role="group">
      {}
      <div className="flex w-full justify-end">
        <div className="flex w-fit items-start gap-1 rounded-2xl py-2 pl-3 pr-1.5" style={{
    ...bubbleBase,
    backgroundColor: userBg,
    border: `1px solid ${userBorder}`
  }}>
          <div className="min-w-0 flex-1 hyphens-auto whitespace-pre-wrap" style={bubbleText}>
            {prompt}
          </div>
          <button type="button" className="mt-0.5 shrink-0 rounded-lg p-1.5 cursor-pointer" style={{
    color: iconColor,
    background: 'transparent'
  }} onMouseEnter={e => {
    e.currentTarget.style.backgroundColor = iconHoverBg;
  }} onMouseLeave={e => {
    e.currentTarget.style.backgroundColor = 'transparent';
  }} onClick={() => copyText(prompt)} aria-label="Copy user prompt">
            {copyIcon}
          </button>
        </div>
      </div>
      {}
      <div className="flex w-full justify-start">
        <div className="w-fit rounded-2xl py-2 px-3" style={{
    ...bubbleBase,
    border: '1px solid #CDF4F7'
  }}>
          <div className="hyphens-auto whitespace-pre-wrap" style={bubbleText}>
            {response}
          </div>
        </div>
      </div>
    </div>;
};

W\&B 워크스페이스는 차트 사용자 지정 및 모델 결과 탐색을 위한 개인 샌드박스입니다. W\&B 워크스페이스는 *Tables* 및 *패널 섹션*으로 구성됩니다:

* **Tables**: 프로젝트에 로깅된 모든 run은 프로젝트의 table에 나열됩니다. run을 켜고 끄고, 색상을 변경하고, table을 확장하여 각 run의 notes, 설정 및 summary 메트릭을 확인하세요.
* **패널 섹션**: 하나 이상의 [패널](/ko/products/wandb/app/features/panels)을 포함하는 섹션입니다. 새 패널을 만들고, 정리한 다음 Reports로 내보내 워크스페이스의 스냅샷을 저장하세요.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/workspace_table_and_panels.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=2fc17739b68aacc3fa4e434a987770a5" alt="워크스페이스 table 및 패널" width="1393" height="1015" data-path="products/wandb/_media/workspace_table_and_panels.png" />
</Frame>

<h2 id="workspace-types">
  워크스페이스 유형
</h2>

워크스페이스는 크게 **개인 워크스페이스**와 **저장된 뷰**의 두 가지 범주로 나뉩니다.

* **개인 워크스페이스:** 모델과 Data Visualization을 심층적으로 분석할 수 있는 맞춤형 워크스페이스입니다. 워크스페이스 소유자만 편집하고 변경 사항을 저장할 수 있습니다. 팀원은 다른 사람의 개인 워크스페이스를 볼 수는 있지만 변경할 수는 없습니다.
* **저장된 뷰:** 저장된 뷰는 여러 사람이 함께 사용하는 워크스페이스 스냅샷입니다. 팀원 누구나 저장된 워크스페이스 뷰를 보고, 편집하고, 변경 사항을 저장할 수 있습니다. 저장된 워크스페이스 뷰를 사용해 실험, run 등을 검토하고 논의하세요.

다음 이미지는 Cécile-parker의 팀원들이 만든 여러 개인 워크스페이스를 보여 줍니다. 이 프로젝트에는 저장된 뷰가 없습니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/Menu_No_views.jpg?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=4679611a34665d10aa526ab21d8ba635" alt="저장된 뷰 없음" width="1350" height="1352" data-path="products/wandb/_media/Menu_No_views.jpg" />
</Frame>

<h2 id="saved-workspace-views">
  저장된 워크스페이스 뷰
</h2>

맞춤형 워크스페이스 뷰로 팀 협업을 개선하세요. 차트와 데이터의 선호 설정을 정리하려면 저장된 뷰를 만드세요.

<h3 id="create-a-new-saved-workspace-view">
  저장된 워크스페이스 뷰 만들기
</h3>

1. 개인 워크스페이스 또는 저장된 뷰로 이동하세요.
2. 워크스페이스를 편집하세요.
3. 워크스페이스 오른쪽 위 모서리에 있는 **액션(<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 클릭하세요. **새 뷰로 저장**을 클릭하세요.

ARIA에게 현재 워크스페이스 레이아웃을 새 뷰로 저장하도록 요청할 수도 있습니다:

<AriaChatBubbles prompt="이 워크스페이스를 LR comparison이라는 새 뷰로 저장해 주세요. 그러면 제 팀이 학습률 실험을 검토할 수 있습니다." response="현재 워크스페이스 레이아웃(표시된 run과 패널 배치 포함)을 LR comparison이라는 새 저장된 뷰로 저장하겠습니다." />

새 저장된 뷰는 워크스페이스 내비게이션 메뉴에 표시됩니다.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/Menu_Views.jpg?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=0711f25e7876e80149a01faadb9f4d47" alt="저장된 뷰 메뉴" width="1366" height="1352" data-path="products/wandb/_media/Menu_Views.jpg" />
</Frame>

<h3 id="update-a-saved-workspace-view">
  저장된 워크스페이스 뷰 업데이트
</h3>

변경 사항을 저장하면 저장된 뷰의 이전 상태를 덮어씁니다. 저장하지 않은 변경 사항은 유지되지 않습니다. W\&B에서 저장된 워크스페이스 뷰를 업데이트하려면 다음 단계를 따르세요.

1. 저장된 뷰로 이동하세요.
2. 워크스페이스에서 차트와 데이터를 원하는 대로 변경하세요.
3. **Save** 버튼을 클릭하여 변경 사항을 확정하세요.

<Note>
  워크스페이스 뷰의 업데이트 내용을 저장하면 확인 대화 상자가 나타납니다. 앞으로 이 메시지를 표시하지 않으려면 저장을 확정하기 전에 **Do not show this modal next time** 옵션을 선택하세요.
</Note>

<h3 id="delete-a-saved-workspace-view">
  저장된 워크스페이스 뷰 삭제
</h3>

더 이상 필요하지 않은 저장된 뷰를 제거하세요.

1. 제거하려는 저장된 뷰로 이동하세요.
2. 뷰의 오른쪽 상단에 있는 **menu (<Icon icon="menu" iconType="solid" />)** 버튼을 선택하세요.
3. **뷰 삭제**를 선택하세요.
4. 삭제를 확인하여 워크스페이스 메뉴에서 뷰를 제거하세요.

<h3 id="share-a-workspace-view">
  워크스페이스 뷰 공유
</h3>

맞춤형 워크스페이스를 팀과 공유하려면 워크스페이스 URL을 직접 공유하세요. 워크스페이스 프로젝트에 액세스할 수 있는 모든 사용자는 해당 워크스페이스의 저장된 뷰를 볼 수 있습니다.

<h2 id="workspace-templates">
  워크스페이스 템플릿
</h2>

<Note>
  이 기능은 [Enterprise](https://coreweave.com/forge-pricing) 라이선스가 필요합니다.
</Note>

기존 워크스페이스와 동일한 설정을 사용하여 워크스페이스를 생성하려면 [새 워크스페이스의 기본 설정](#default-workspace-settings) 대신 *워크스페이스 템플릿* 을 사용하세요.

<h3 id="default-workspace-settings">
  기본 워크스페이스 설정
</h3>

W\&B는 워크스페이스에 다음 기본 설정을 사용합니다:

<h4 id="hide-empty-sections-during-search">
  검색 중 빈 섹션 숨기기
</h4>

기본적으로 W\&B는 워크스페이스에 빈 섹션을 표시하지 않습니다. 워크스페이스에 빈 섹션을 표시하려면 이 설정을 변경하세요.

<h4 id="sort-panels-alphabetically">
  패널을 알파벳 순으로 정렬
</h4>

기본적으로 W\&B는 플롯 제목으로 패널을 알파벳 순으로 정렬하지 않습니다. 이 설정을 변경하여 플롯 제목으로 패널을 알파벳 순으로 정렬할 수 있습니다.

<h4 id="section-organization">
  섹션 구성
</h4>

기본적으로 W\&B는 메트릭 이름의 첫 번째 접두사를 기준으로 패널을 섹션별로 구성합니다. 예를 들어 워크스페이스에 `a/b/c/d`와 `a/e/f` 메트릭이 있으면 W\&B는 이 메트릭들을 `a` 섹션으로 묶습니다. 워크스페이스에 `a/b/c/d`와 `e/f/g` 메트릭이 있으면 W\&B는 이 메트릭들을 `a` 섹션과 `e` 섹션으로 나눕니다.

기본 섹션 구성을 변경하여 마지막 접두사를 기준으로 그룹화할 수도 있습니다. 예를 들어 워크스페이스에 `a/b/c/d`와 `a/e/f` 메트릭이 있으면 W\&B는 이 메트릭들을 `d` 섹션과 `f` 섹션으로 나눕니다. 워크스페이스에 `a/b/c/d`와 `e/f/g` 메트릭이 있으면 W\&B는 이 메트릭들을 `d` 섹션과 `g` 섹션으로 나눕니다.

<h4 id="line-plot-settings">
  선형 플롯 설정
</h4>

새 워크스페이스는 기본적으로 선형 플롯에 다음 설정을 사용합니다.

| X축 | 기본값 |
| - | - |
| 값 | Step |
| 로그 스케일 | false |

| Y축 | 기본값 |
| - | - |
| 로그 스케일 | false |

| 스무딩 | 기본값 |
| - | - |
| 유형 | Time weight EMA |
| 가중치 | 0 |
| 스무딩 후 원본 표시 | Off |

| 최대 run 수 | 기본값 |
| - | - |
| 최대 run 수 | 10 |

| 데이터 | 기본값 |
| - | - |
| 포인트 집계 | Full fidelity |

| 그룹화 | 기본값 |
| - | - |
| 차트에서 그룹화 사용 | On |
| 그룹 집계 | 평균 |

| 표시 기본 설정 | 기본값 |
| - | - |
| run 이름에 색상 적용 | On |
| 전체 run 이름 표시 | Off |
| 툴팁에 X 범위 표시 | Off |
| 툴팁 run | Default |
| 차트 간 확대/축소 동기화 | Off |
| 강조 표시된 run만 표시 | Off |

<h3 id="configure-your-workspace-template">
  워크스페이스 템플릿 설정
</h3>

1. 워크스페이스를 열거나 새로 만드세요.
2. 워크스페이스 오른쪽 상단의 **설정** 버튼을 클릭하세요.
3. 패널에서 **워크스페이스 레이아웃**을 선택하세요.
4. 워크스페이스 설정을 원하는 대로 구성하세요.

<h3 id="save-your-workspace-template">
  워크스페이스 템플릿 저장하기
</h3>

1. 워크스페이스 상단에서 **Undo** 및 **Redo** 화살표 아이콘 옆에 있는 **액션 (<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 클릭하세요.
2. **Save 개인 워크스페이스 템플릿**을 클릭하세요.
3. 템플릿 설정을 검토한 다음 **Save**를 클릭하세요.

이제 새 워크스페이스에는 기본 설정 대신 이 설정이 적용됩니다.

<h3 id="view-your-workspace-template">
  워크스페이스 템플릿 보기
</h3>

워크스페이스 템플릿의 현재 설정을 확인하려면 다음 단계를 따르세요.

1. 어느 페이지에서든 오른쪽 상단의 사용자 아이콘을 선택하세요. 드롭다운에서 **사용자 설정**을 선택하세요.
2. **개인 워크스페이스 템플릿** 섹션으로 이동하세요. 워크스페이스 템플릿을 사용 중이면 해당 설정이 표시되고, 그렇지 않으면 이 섹션에 아무 정보도 표시되지 않습니다.

<h3 id="update-your-workspace-template">
  워크스페이스 템플릿 업데이트
</h3>

워크스페이스 템플릿을 업데이트하려면:

1. 워크스페이스를 엽니다.
2. 워크스페이스의 설정을 수정합니다. 예를 들어, 포함할 run의 숫자를 `11`로 설정합니다.
3. 템플릿에 변경 사항을 저장하려면 **Undo** 및 **Redo** 화살표 아이콘 근처의 **액션 (<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 클릭한 다음 **개인 워크스페이스 템플릿 업데이트**를 클릭합니다.
4. 설정을 확인한 다음 **Update**를 클릭합니다. 템플릿이 업데이트되고, 이를 사용하는 모든 워크스페이스에 다시 적용됩니다.

<h3 id="delete-your-workspace-template">
  워크스페이스 템플릿 삭제
</h3>

워크스페이스 템플릿을 삭제하고 기본 설정으로 돌아가려면:

1. 아무 페이지에서나 오른쪽 상단의 사용자 아이콘을 선택하세요. 드롭다운에서 **사용자 설정**을 선택하세요.
2. **개인 워크스페이스 템플릿** 섹션으로 이동하세요. 워크스페이스 템플릿의 설정이 표시됩니다.
3. **설정** 옆의 휴지통 아이콘을 클릭하세요.

<Note>
  Dedicated Cloud 및 Self-Managed의 경우, 워크스페이스 템플릿 삭제는 v0.70 이상에서 지원됩니다. 이전 Server 버전에서는 [기본 설정](#default-workspace-settings)을 대신 사용하도록 워크스페이스 템플릿을 업데이트하세요.
</Note>

<h2 id="programmatically-create-workspaces">
  워크스페이스를 프로그래밍 방식으로 생성하기
</h2>

<Tip>
  엔드투엔드 예시는 [Programmatic Workspaces](https://colab.research.google.com/github/wandb/wandb-workspaces/blob/Update-wandb-workspaces-tuturial/Workspace_tutorial.ipynb) 노트북을 참조하세요.
</Tip>

[`wandb-workspaces`](https://github.com/wandb/wandb-workspaces/tree/main)는 [W\&B](https://forge.coreweave.com/wandb) 워크스페이스와 Reports를 프로그래밍 방식으로 작업하기 위한 Python 라이브러리입니다.

[`wandb-workspaces`](https://github.com/wandb/wandb-workspaces/tree/main)로 워크스페이스를 프로그래밍 방식으로 정의하세요. [`wandb-workspaces`](https://github.com/wandb/wandb-workspaces/tree/main)는 [W\&B](https://forge.coreweave.com/wandb) 워크스페이스와 Reports를 프로그래밍 방식으로 작업하기 위한 Python 라이브러리입니다.

워크스페이스의 속성을 정의할 수 있습니다. 예를 들면:

* 패널 레이아웃, 색상, 섹션 순서를 설정합니다.
* 기본 x-axis, 섹션 순서, 접기 상태와 같은 워크스페이스 설정을 구성합니다.
* 섹션 내에서 패널을 추가하고 사용자 지정하여 워크스페이스 뷰를 구성합니다.
* URL을 사용하여 기존 워크스페이스를 로드하고 수정합니다.
* 기존 워크스페이스에 변경 사항을 저장하거나 새 뷰로 저장합니다.
* 단순한 표현식을 사용하여 run을 프로그래밍 방식으로 필터링, 그룹화, 정렬합니다.
* 색상 및 가시성과 같은 설정으로 run 모양을 사용자 지정합니다.
* 통합 및 재사용을 위해 한 워크스페이스에서 다른 워크스페이스로 뷰를 복사합니다.

<h3 id="install-workspace-api">
  워크스페이스 API 설치
</h3>

`wandb` 외에 `wandb-workspaces`도 설치하세요:

```bash theme={"system"}
pip install wandb wandb-workspaces
```

<h3 id="define-and-save-a-workspace-view-programmatically">
  프로그래밍 방식으로 워크스페이스 뷰 정의 및 저장하기
</h3>

```python theme={"system"}
import wandb_workspaces.workspaces as ws

workspace = ws.Workspace(entity="your-entity", project="your-project", views=[...])
workspace.save()
```

<h3 id="edit-an-existing-view">
  Edit an existing 뷰
</h3>

```python theme={"system"}
existing_workspace = ws.Workspace.from_url("workspace-url")
existing_workspace.views[0] = ws.View(name="my-new-view", sections=[...])
existing_workspace.save()
```

<h3 id="clone-a-saved-workspace-view">
  저장된 워크스페이스 뷰 복제
</h3>

Reports와 Workspaces API를 사용하여 저장된 워크스페이스 뷰를 복제하고 해당 레이아웃과 설정을 새 뷰의 기반으로 사용하세요.

시작하기 전에 다음을 파악하세요:

* 소스 워크스페이스 뷰가 포함된 entity와 프로젝트.
* 워크스페이스 뷰 ID.
  * 뷰 ID를 찾으려면 W\&B에서 저장된 워크스페이스 뷰를 열고 URL에서 nw 쿼리 매개변수의 값을 복사하세요. 예를 들어, `https://wandb.ai/awesome-team/mnist?nw=54ro5zcn9d4`에서 뷰 ID는 `54ro5zcn9d4`입니다.
* 대상 entity와 프로젝트.
* 새 워크스페이스 뷰의 이름.

다음 예시는 저장된 워크스페이스 뷰를 복제합니다:

```python theme={"system"}
import wandb_workspaces.workspaces as ws

# 소스 워크스페이스 뷰 지정
source_entity = "source-entity"
source_project = "source-project"
saved_view = "saved-view-id"
source_url = f"https://wandb.ai/{source_entity}/{source_project}?nw={saved_view}"

# 대상 지정
target_entity = "target-entity"
target_project = "target-project"
target_view_name = "view-name"

# 소스 워크스페이스 뷰 로드
workspace = ws.Workspace.from_url(source_url)

# 대상 설정
workspace.entity = target_entity
workspace.project = target_project
workspace.name = target_view_name

# 워크스페이스를 새 뷰로 저장.
workspace.save_as_new_view()
```
