Snowflake Intelligence でチャートをカスタマイズする¶
Snowflake Intelligence はデータからチャートを自動的に生成します。エージェントまたはセマンティックビューに構成を追加することで、これらのチャートをカスタマイズし、色、フォント、チャートタイプなどを制御できます。
概要¶
カスタマイズは2つのレベルで機能します。
エージェントレベル:エージェントにアタッチされたすべてのセマンティックビューのすべてのチャートに適用されます。ブランドの色やフォントなどのグローバルなデフォルトに使用します。
セマンティックビューレベル:その特定のセマンティックビューから生成されたチャートにのみ適用されます。列固有のルールとドメイン固有のチャートタイプ設定に使用します。
各レベルでは、2つのメカニズムが使用可能です。
vega_template:部分的な`Vega-Lite<https://vega.github.io/vega-lite/>`_JSON は、生成されたすべてのチャートに決定論的にマージされる仕様です。常に適用する必要があるすべての機能に使用します。
自由テキストの手順:チャート生成プロンプトに注入された自然言語ガイダンス。LLM はこれらを従うために最善を尽くしますが、保証されていません。
注釈
エージェントとセマンティックビューの両方が vega_template を定義している場合、エージェントテンプレートが最初に適用され、セマンティックビューテンプレートが2番目に適用されます。競合するキーの場合は、セマンティックビューが優先されます。
エージェントレベルのカスタマイズ¶
エージェント構成の instructions.orchestration に <chart_customization> ブロックを追加します。フォントのテーマとグローバルのデフォルトパレットを組み合わせることができます。
次にはエージェントレベルを使用します。
ブランドカラーパレット
デフォルトの視覚テーマ(フォント、バックグラウンド)
クロスドメインのスタイル設定
数値または通貨形式のデフォルト
エージェントレベルでの列固有の色マッピングは避けます。列名はセマンティックビュー間で異なり、見つからない場合は無視されます。
セマンティックビューレベルのカスタマイズ¶
セマンティックビュー YAML の module_custom_instructions.sql_generation フィールドに <chart_customization> ブロックを追加します。両方のフィールドが設定されている場合、このフィールドは従来の custom_instructions フィールドより優先されます。
以下には、セマンティックビューレベルを使用します。
列ごとの色マッピング
ドメイン固有のチャート型ルール
メトリック固有のフォーマット
エージェントレベルのデフォルトの上書き
使用上の注意:テンプレートはすべてのチャートに影響します¶
vega_template は、そのレベルで生成された すべてのチャート にマージされます。質問ごとやチャートごとのフィルタリングはありません。encoding.y 上書きをエージェントレベルに追加すると、棒グラフ、折れ線グラフ、散布図、円グラフなどに適用されます。
テンプレートを追加する前に、次のことを考慮してください。
範囲:エージェントレベルのテンプレートは、すべてのセマンティックビューにわたるすべてのチャートに影響します。ルールが1つのドメインまたはデータセットに固有の場合は、セマンティックビューレベルを優先します。
ワイルドカードエンコーディング:
field``(例:"y": {"axis": {"format": "..."}}``)を省略するテンプレートエンコーディングは、どの列がプロットされているかに関わらず、すべてのグラフのy軸に適用されます。セマンティックビューがわかっている場合、fieldを使用して特定の列に固定します。オーバーライドをマーク:エージェントレベルで
"mark": "line"を設定すると、 LLM が正しく棒グラフや円グラフを選択するようなグラフも含め、すべてのグラフが強制的に折れ線グラフになります。データに関するドメイン知識があるセマンティックビューレベルでのみ、markをオーバーライドします。配列を変換:テンプレートでの
calculate変換(例:_color)はすべてのチャートのtransform配列に注入されます。データに参照列が含まれていない場合、Vega-Liteは計算フィールドに暗黙的にnull値を生成します。
よく分からない場合は、セマンティックビューレベルから開始し、ルールがすべてのチャートで安全であることを確認した後にのみエージェントレベルに昇格します。
デプロイする前にテンプレートを検証するには、代表的なチャート仕様(vega_template が既にマージされているもの)を `Vegaエディター<https://vega.github.io/editor>`_ に貼り付けます。エディターはコンソールにライブ警告とエラーを表示します。有効なテンプレートは警告を生成しません。この方法でキャッチする一般的なもの:無効なプロパティ名、型の不一致、到達不能の calculate 式、およびスケール構成エラー。
フォント¶
フォントの設定は vega_template 内の config ブロックで制御できます。すべてのフォントプロパティはチャートにグローバルに適用され、データに関係なく、生成されたすべてのチャートに影響を与えます。
注釈
互換性を最大限に高めるには、 CSS の汎用フォントファミリーを使用します。Snowflake Intelligence におけるグラフは、2つのコンテキストでレンダリングされます。1つは Snowsight ブラウザー UI(クライアント側、フォントはユーザーの OS および ブラウザーに依存)、もう1つは検証と画像エクスポートのための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 がどの列に基づいて色付けを選択したかに関わらず、常にチャートに統合されます。** この統合はSnowflakeのプライバシー重視の基礎に基づいているため、安心して 駆動型のユースケースを利用できます。これは次のことを意味します。
マッピングは、チャートの色チャネルが実際に
calculate式で参照される同じ列を使用する場合にのみ正しく機能します(例:STATUS)LLM が別の列に色を割り当てた場合、_colorフィールドはデータに存在しますが、色が一致しません。1つのテンプレートにつきターゲットにできる列は1つだけです。
パレットフォールバックで固定された値¶
キー値の色を固定し、残りをパレットから自動割り当てできるようにします。"merge": "extend" を使用して LLM の既存の色使いを保存し、新しいマッピングのみを追加します。
domain にないデータ値は、 scheme から次に利用可能な色が自動的に割り当てられます。割り当て後、 scheme は最終仕様から削除されます。
サポートされているスキーム名:tableau10、tableau20、category10、category20、category20b、category20c、 dark2、 paired、pastel1、 pastel2、 set1、 set2、 set3、 accent。
Snowsightスタイルの無効化¶
デフォルトでは、 Snowflake Intelligence は生成されたグラフの上に |sf-web-interface|UI テーマの調整を適用します。オプトアウトし、 vega_template で指定されたとおりにチャートをレンダリングするには、 usermeta で ui-merge を "none" に設定します。
これは、視覚的な出力をフルコントロールしたい場合に便利です。例えば、カスタムブランドテーマを適用する際に、 Snowsight が色、フォント、または背景を上書きしないようにしたい場合などです。
注釈
ui-merge は、オーケストレーションのバックエンドではなく、Snowsightクライアント側のレンダリングによって解釈されます。マージエンジンによって生成されるチャート仕様には影響しません。ブラウザーでチャートを表示するときに、最終的な仕様の上にSnowsight独自のテーマを適用する方法のみを制御します。
数値と通貨のフォーマット(試験)¶
vega_template を通じて、 `D3形式文字列<https://d3js.org/d3-format>`_ を使用して軸と凡例のラベルをフォーマットできます。これは、すべてのチャートで通貨記号、小数点以下の桁数、または SI 接尾辞を統一するのに役立ちます。
量的な軸(x、 y)には axis.format を、色/サイズの凡例には legend.format を設定します。
注釈
axis.format はチャネルのデータ型が "quantitative" の場合にのみVega-liteによって適用されます。LLM が異なる型を推測する場合(例:"ordinal" が年または ID 列など)、形式文字列は警告なしで無視されます。これは、 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を省略している場合にのみ適用されます。マージ後、実際のデータに存在しないドメインエントリは自動的に削除されます。
例:折れ線グラフを強制する