Snowflake Intelligence 에서 차트 사용자 지정¶
Snowflake Intelligence 는 데이터에서 자동으로 차트를 생성합니다. 에이전트 또는 의미 체계 뷰에 구성을 추가하여 색상, 글꼴, 차트 유형 등을 제어해 이러한 차트를 사용자 지정할 수 있습니다.
개요¶
사용자 지정은 다음 두 가지 수준에서 작동합니다.
에이전트 수준: 에이전트에 첨부된 모든 의미 체계 뷰의 모든 차트에 적용됩니다. 브랜드 색상 및 글꼴과 같은 전역 기본값에 사용합니다.
의미 체계 뷰 수준: 해당 특정 의미 체계 뷰에서 생성된 차트에만 적용됩니다. 열별 규칙 및 도메인별 차트 유형 기본 설정에 사용합니다.
각 수준에서 다음 두 가지 메커니즘을 사용할 수 있습니다.
vega_template: 생성된 모든 차트에 결정적으로 병합되는 부분적인 Vega-Lite JSON 사양. 항상 적용해야 하는 모든 항목에 사용합니다.
자유 텍스트 지침: 차트 생성 프롬프트에 삽입된 자연어 안내. LLM은 이를 따르기 위해 최선을 다하지만, 보장되지는 않습니다.
참고
에이전트 뷰와 의미 체계 뷰 모두 vega_template 을 정의하는 경우 에이전트 템플릿이 먼저 적용되고 의미 체계 뷰 템플릿이 두 번째로 적용됩니다. 충돌하는 키에서는 의미 체계 뷰가 우선합니다.
에이전트 수준 사용자 지정¶
에이전트 구성의 instructions.orchestration 내부에 <chart_customization> 블록을 추가합니다. 글꼴 테마와 전역 기본 팔레트를 결합할 수 있습니다.
다음에 대해 에이전트 수준을 사용합니다.
브랜드 색상 팔레트
기본 시각적 테마(글꼴, 배경)
도메인 간 스타일 기본 설정
숫자 또는 통화 형식 기본값
에이전트 수준에서는 열별 색상 매핑을 피하세요. 열 이름은 의미 체계 뷰마다 다르며 해당 이름을 찾을 수 없는 경우 자동으로 무시됩니다.
의미 체계 뷰 수준 사용자 지정¶
의미 체계 뷰 YAML의 module_custom_instructions.sql_generation 필드 내부에 <chart_customization> 블록을 추가합니다. 이 필드는 둘 다 설정된 경우 레거시 custom_instructions 필드보다 우선합니다.
다음에 대해 의미 체계 뷰 수준을 사용합니다.
열별 색상 매핑
도메인별 차트 유형 규칙
메트릭별 형식 지정
에이전트 수준 기본값 재정의하기
주의해서 사용: 템플릿은 모든 차트에 영향을 줌¶
vega_template 은 해당 수준에서 생성된 모든 차트 에 병합됩니다. 질문별 또는 차트 유형별 필터링이 없습니다. 에이전트 수준에서 encoding.y 재정의를 추가하는 경우, 막대 차트, 꺾은선형 차트, 산점도, 원형 차트에 모두 적용됩니다.
템플릿을 추가하기 전에 다음 사항을 고려하세요.
범위: 에이전트 수준 템플릿은 모든 의미 체계 뷰의 모든 차트에 영향을 줍니다. 규칙이 한 도메인 또는 데이터 세트에만 적용되는 경우 의미 체계 뷰 수준을 사용합니다.
와일드카드 인코딩:
field를 생략한 템플릿 인코딩(예:"y": {"axis": {"format": "..."}})은 구성된 열에 관계없이 모든 차트의y에 적용됩니다. 의미 체계 뷰가 알려진 경우field를 사용하여 특정 열에 고정합니다.마크 재정의: 에이전트 수준에서는
"mark": "line"을 설정하면 LLM이 막대 또는 원형 차트를 올바르게 선택하는 경우를 포함하여 모든 차트가 선으로 강제 적용됩니다. 데이터에 대한 도메인 지식이 있는 의미 체계 뷰 수준에서만mark를 재정의합니다.배열 변환: 템플릿의
calculate변환(예:_color)은 모든 차트의transform배열에 삽입됩니다. 데이터에 참조된 열이 포함되지 않은 경우 Vega-Lite는 계산된 필드에 대해null값을 자동으로 생성합니다.
확실하지 않은 경우 의미 체계 뷰 수준에서 시작하여 규칙이 모든 차트에 안전한지 확인한 후에만 에이전트 수준으로 승격합니다.
템플릿을 배포하기 전에 유효성을 검사하려면 대표적인 차트 사양(vega_template 에 이미 병합됨)을 Vega 편집기 에 붙여넣습니다. 편집기는 콘솔에 실시간 경고와 오류를 표시합니다. 유효한 템플릿은 경고를 생성하지 않아야 합니다. 이러한 방식으로 유효하지 않은 속성 이름, 유형 불일치, 연결할 수 없는 calculate 식, 소수 자릿수 구성 오류 등의 일반적인 사항을 포착해야 합니다.
글꼴¶
글꼴 설정은 vega_template 의 config 블록을 통해 제어됩니다. 모든 글꼴 속성은 차트에 전역적으로 적용되며 데이터에 관계없이 생성된 모든 차트에 영향을 줍니다.
참고
호환성을 극대화하기 위해 CSS 일반 글꼴 패밀리를 사용합니다. Snowflake Intelligence 의 차트는 Snowsight 브라우저 UI(클라이언트 측, 글꼴은 사용자의 OS 및 브라우저에 따라 다름), 유효성 검사 및 이미지 내보내기를 위한 Linux 컨테이너의 서버 측의 두 가지 컨텍스트로 렌더링됩니다. Arial 또는 Georgia 와 같은 명명된 글꼴은 서버 측 컨테이너에 설치되지 않았을 수 있습니다. CSS 일반 패밀리는 다음 두 컨텍스트 모두에서 항상 올바르게 해석됩니다.
일반 패밀리 |
다음으로 해석됨 |
|---|---|
|
Arial(Windows/macOS), DejaVu Sans 또는 Liberation Sans(Linux) |
|
Times New Roman(Windows/macOS), DejaVu Serif 또는 Liberation Serif(Linux) |
|
Courier New(Windows/macOS), DejaVu Sans Mono 또는 Liberation Mono(Linux) |
사용자 지정 브랜드 글꼴이 필요한 경우 서버 측 렌더링 컨테이너에 설치해야 하고 Snowsight 에서 CSS @font-face 를 통해 제공해야 합니다.
일반적인 config 글꼴 속성:
속성 |
적용되는 경우 |
|---|---|
|
차트 제목 |
|
축 눈금 레이블 |
|
축 제목(예: “수익”) |
|
패싯/소규모 다중 헤더 |
|
범례 값 레이블 |
|
범례 제목 |
|
텍스트 마크(주석) |
글꼴과 함께 전역 background 색상을 설정할 수도 있습니다.
색상¶
LLM 지침(소프트)¶
색상 규칙을 적용하는 가장 간단한 방법은 자유 텍스트로 설명하는 것입니다. LLM은 최선의 방식으로 이를 해석합니다.
정확한 16진수 값이 필요하지 않은 경우 빠르고 대략적인 색상 안내를 위해 이를 사용합니다.
_color를 사용한 정확한 값 매핑¶
calculate 변환을 사용하여 특정 열 값을 정확한 16진수 색상에 매핑합니다. 목록에 없는 값은 빈 문자열을 수신하고 Vega-Lite는 해당 값을 자체 기본값으로 렌더링합니다.
알려진 모든 값에 대해 정확하고 보장된 색상이 필요한 경우 이 옵션을 사용합니다.
참고
_color 변환 및 encoding.color 블록은 LLM이 어떤 열을 기준으로 색상을 지정했는지에 관계없이 항상 차트에 병합됩니다. 이는 다음을 의미합니다.
매핑은 차트의 색상 채널이 실제로
calculate식에서 참조되는 동일한 열을 사용하는 경우에만 올바르게 작동합니다(예:STATUS). LLM이 다른 열에 색상을 할당한 경우_color필드는 데이터에 존재하지만 색상이 일치하지 않습니다.템플릿당 하나의 열만 대상으로 지정할 수 있습니다.
팔레트 대체가 있는 고정된 값¶
키 값의 색상을 고정하고 나머지는 팔레트에서 자동으로 할당합니다. "merge": "extend" 를 사용하여 LLM의 기존 색상 선택 사항을 유지하고 새 매핑만 추가합니다.
domain 에 없는 데이터 값은 scheme 에서 다음으로 사용 가능한 색상이 자동으로 할당됩니다. 할당되면 scheme 가 최종 사양에서 제거되었습니다.
지원되는 스키마 이름은 tableau10, tableau20, category10, category20, category20b, category20c, dark2, paired, pastel1, pastel2, set1, set2, set3, accent 입니다.
Snowsight 스타일 비활성화하기¶
기본적으로, Snowflake Intelligence 는 생성된 차트 위에 Snowsight UI 테마 조정을 적용합니다. 차트를 옵트아웃하고 vega_template 에 지정된 대로 정확하게 렌더링하려면 usermeta 에서 ui-merge 를 "none" 으로 설정합니다.
이는 시각적 출력을 완벽하게 제어하려는 경우 유용합니다(예: 사용자 지정 브랜드 테마를 적용하고 Snowsight 가 색상, 글꼴 또는 배경을 재정의하지 않도록 하려는 경우).
참고
ui-merge 는 오케스트레이터 백엔드가 아닌 Snowsight 클라이언트 측 렌더러에 의해 해석됩니다. 병합 엔진에서 생성된 차트 사양에는 영향을 주지 않습니다. 브라우저에 차트를 표시할 때 Snowsight가 최종 사양 외에 자체 테마를 적용하는 방법만 제어합니다.
숫자 및 통화 형식 지정(실험용)¶
축 및 범례 레이블은 vega_template 을 통해 D3 형식 문자열 을 사용하여 형식을 지정할 수 있습니다. 이는 모든 차트에서 일관된 통화 기호, 소수점 이하 자릿수 또는 SI 접미사를 적용하는 경우 유용합니다.
정량적 축(x, y)의 경우 axis.format 을 설정하고 색상/크기 범례의 경우 legend.format 을 설정합니다.
참고
axis.format 은 채널의 데이터 타입이 "quantitative" 인 경우에만 Vega-Lite에 의해 적용됩니다. LLM이 다른 유형(예: 연도 또는 ID 열의 경우 "ordinal")을 추론하는 경우 형식 문자열은 자동으로 무시됩니다. 이는 추론된 유형을 검사하지 않고 병합이 적용되므로 vega_template 접근 방식의 허용된 제한 사항입니다.
해결 방법: 템플릿에서 유형을 명시적으로 강제 적용합니다(override 모드).
이를 통해 형식이 적용되지만 다른 유형 종속 렌더링(축 눈금, 비닝)에 영향을 줄 수 있습니다.
일반적인 D3 형식 문자열:
형식 |
출력 예제 |
다음에 대해 사용 |
|---|---|---|
|
$1,234,567 |
달러 금액(소수점 제외) |
|
$1,234,567.89 |
달러 금액(소수점 이하 2자리) |
|
1,234,567 |
천 단위 구분 기호가 있는 큰 정수 |
|
42.3% |
백분율 |
|
1.2M |
SI 접두사가 포함된 큰 숫자 |
|
3.14 |
소수점 이하 자릿수 2개 고정 |
(특정 열 이름을 모르는 상태로) 에이전트 수준에서 모든 정량적 채널에 형식을 적용하려면 다음을 실행합니다.
"merge": "extend" 를 사용하면 LLM이 이미 채워진 채널에만 형식이 추가되며, field 또는 type 설정은 덮어쓰지 않습니다.
병합 모드¶
템플릿 내부에 "usermeta": {"merge": "<mode>"} 를 설정하여 vega_template 이 LLM에서 생성된 차트와 상호작용하는 방식을 제어합니다.
모드 |
동작 |
|---|---|
|
템플릿 값이 차트를 덮어씁니다. 특정 설정을 적용해야 하는 경우 사용합니다. |
|
기존 차트 값이 유지됩니다. 새 키와 추가 소수 자릿수 항목이 추가되었습니다. LLM이 선택한 항목을 바꾸지 않고 차트에 추가하려는 경우 사용합니다. |
두 모드에 모두 적용되는 규칙:
data블록은 덮어쓰지 않습니다.인코딩 재정의는 템플릿의
field가 차트의field와 일치하거나 템플릿에field가 생략된 경우에만 적용됩니다.병합 후 실제 데이터에 없는 도메인 항목은 자동으로 제거됩니다.
예제: 꺾은선형 차트 강제 적용