Anpassen von Diagrammen in Snowflake Intelligence¶
Snowflake Intelligence generiert Diagramme automatisch aus Ihren Daten. Sie können diese Diagramme anpassen, Farben, Schriftarten, Diagrammtypen und mehr steuern, indem Sie die Konfiguration zu Ihrem Agenten oder Ihrer semantischen Ansicht hinzufügen.
Übersicht¶
Die Anpassung funktioniert auf zwei Ebenen:
Agentenebene: Gilt für alle Diagramme in jeder mit dem Agenten verbundenen semantischen Ansicht. Verwenden Sie dies für globale Standardeinstellungen wie Markenfarben und Schriftarten.
Ebene der semantischen Ansicht: Gilt nur für Diagramme, die aus dieser spezifischen semantischen Ansicht generiert wurden. Verwenden Sie dies für spaltenspezifische Regeln und domänenspezifische Einstellungen für Diagrammtypen.
Auf jeder Ebene stehen zwei Mechanismen zur Verfügung:
vega_template: Eine teilweise `Vega-Lite <https://vega.github.io/vega-lite/>`_JSON-Spezifikation, die deterministisch in jedes generierte Diagramm eingefügt wird. Verwenden Sie dies für alles, was immer gelten muss.
Freitextanweisungen: Anleitung in natürlicher Sprache, die in den Prompt für die Diagrammerstellung eingefügt wird. Das LLM bemüht sich , diese einzuhalten, dies ist jedoch nicht garantiert.
Bemerkung
Wenn sowohl der Agent als auch die semantische Ansicht eine vega_template definieren, wird die Agentenvorlage zuerst angewendet und die Vorlage der semantischen Ansicht als nächstes. Bei widersprüchlichen Schlüsseln setzt sich die semantische Ansicht durch.
Anpassung auf Agentenebene¶
Fügen Sie einen <chart_customization>-Block in instructions.orchestration in Ihrer Agentenkonfiguration hinzu. Sie können Schriftthemes und eine globale Standardpalette kombinieren:
Verwenden Sie die Agentenebene für:
Markenfarbenpalette
Visuelles Standardthemes (Schemas, Hintergrund)
Einstellungen für den domänenübergreifenden Stil
Standardwerte für die Formatierung von Zahlen oder Währungen
Vermeiden Sie spaltenspezifische Farbzuordnungen auf Agentenebene. Die Spaltennamen unterscheiden sich zwischen den semantischen Ansichten und werden stillschweigend ignoriert, wenn sie nicht gefunden werden.
Anpassung auf der Ebene der semantischen Ansicht¶
Fügen Sie einen <chart_customization>-Block im Feld module_custom_instructions.sql_generation der YAML-Datei der semantischen Ansicht hinzu. Dieses Feld hat Vorrang vor dem alten Feld custom_instructions, wenn beide festgelegt sind.
Verwenden Sie die Ebene der semantischen Ansicht für:
Farbzuordnungen pro Spalte
Domänenspezifische Regeln für Diagrammtypen
Metrikspezifische Formatierung
Überschreiben der Standardeinstellungen auf Agentenebene
Vorsicht bei der Verwendung: Vorlagen wirken sich auf jedes Diagramm aus¶
vega_template wird in jedes Diagramm eingebunden, das auf dieser Ebene erstellt wurde. Es gibt keine Filterung pro Frage oder pro Diagrammtyp. Wenn Sie encoding.y auf Agentenebene hinzufügen, gilt dies gleichermaßen für Balkendiagramme, Liniendiagramme, Streudiagramme und Kreisdiagramme.
Bevor Sie eine Vorlage hinzufügen, sollten Sie Folgendes beachten:
Bereich: Vorlagen auf Agentenebene wirken sich auf alle Diagramme in allen semantischen Ansichten aus. Nutzen Sie die Ebene der semantischen Ansicht bevorzugt, wenn eine Regel spezifisch für eine Domäne oder ein Datenset ist.
Platzhaltercodierungen: Eine Vorlagencodierung, bei der
field(z. B.``“y“: {„axis“: {„format“: „…“}}``) weggelassen wird, gilt für jedey-Achse eines Diagramms, unabhängig davon, welche Spalte dargestellt wird. Verwenden Siefield, um sie an eine bestimmte Spalte zu heften, wenn die semantische Ansicht bekannt ist.„mark“ überschreiben: Das Festlegen von
"mark": "line"auf Agentenebene dass jedes Diagramm als Liniendiagramm dargestellt wird, auch dort, wo das LLM korrekt ein Balken- oder Kreisdiagramm wählen würde. Überschreiben Siemarknur auf der Ebene der semantischen Ansicht, wo Sie Domänenkenntnisse über die Daten haben.„transform“-Arrays: Eine
calculate-Transformation in der Vorlage (z. B.``_color``) wird in jedestransform-Array eines Diagramms eingefügt. Wenn die Daten die referenzierte Spalte nicht enthalten, erzeugt Vega-Lite stillschweigendnull-Werte für das berechnete Feld.
Wenn Sie unsicher sind, beginnen Sie auf der Ebene der semantischen Ansicht und wechseln Sie erst auf die Ebene des Agenten, nachdem Sie bestätigt haben, dass die Regel für alle Diagramme sicher ist.
Um eine Vorlage vor der Bereitstellung zu validieren, fügen Sie eine repräsentative Diagrammspezifikation (mit bereits eingebundener vega_template) in den Vega-Editor ein. Der Editor zeigt Live-Warnungen und -Fehler in der Konsole an. Eine gültige Vorlage sollte keine Warnungen erzeugen. Häufige Probleme, die auf diese Weise abgefangen werden können: ungültige Eigenschaftsnamen, nicht übereinstimmende Typen, nicht erreichbare calculate-Ausdrücke und Fehler bei der Konfiguration der Skalierung.
Schriftarten¶
Schrifteinstellungen werden über den config-Block in vega_template gesteuert. Alle Schrifteigenschaften werden global auf das Diagramm angewendet und wirken sich auf jedes generierte Diagramm aus, unabhängig von den Daten.
Bemerkung
Verwenden Sie generische CSS-Schriftfamilien für maximale Kompatibilität. Diagramme in Snowflake Intelligence werden in zwei Kontexten gerendert: in der Snowsight-Browser-UI (clientseitig, die Schriftarten hängen vomOS und Browser der Benutzenden ab) und serverseitig in einem Linux Container für die Validierung und Image-Export. Benannte Schriften wie Arial oder``Georgia`` ist möglicherweise nicht im serverseitigen Container installiert. Generische CSS-Familien werden in beiden Kontexten immer korrekt aufgelöst:
Generische Familie |
Wird aufgelöst in |
|---|---|
|
Arial (Windows/macOS) ,DejaVu Sans oder Liberation Sans (Linux) |
|
Times New Roman (Windows/macOS), DejaVu Serif oder Liberation Serif (Linux) |
|
Courier New (Windows/macOS), DejaVu Sans Mono oder Liberation Mono (Linux) |
Wenn Sie eine angepasste Markenschrift benötigen, muss diese im serverseitigen Scripting-Container installiert und über CSS``@font-face`` in Snowsight bereitgestellt werden.
Allgemeine config-Schrifteigenschaften:
Eigenschaft |
Gilt für |
|---|---|
|
Diagrammüberschrift |
|
Achsenmarkierungsbeschriftungen |
|
Achsentitel (z. B. „Umsatz“) |
|
Überschriften von Facetten / Small Multiples |
|
Wertbeschriftungen der Legende |
|
Titel der Legende |
|
Textzeichen (Anmerkungen) |
Sie können neben Schriften auch eine globalen background-Farbe festlegen:
Farben¶
LLM-Anweisungen (weich)¶
Der einfachste Weg, Farbregeln anzuwenden, besteht darin, sie in Freitext zu beschreiben. Das LLM interpretiert diese auf der bestmöglichen Basis.
Verwenden Sie dies für eine schnelle, approximierte Farbzuordnung, wenn keine genauen Hex-Werte erforderlich sind.
Genaue Zuordnung von Werten mit _color¶
Ordnen Sie bestimmte Spaltenwerte zu genauen Hex-Farben mit einer calculate-Transformation zu. Werte, die nicht aufgeführt sind, erhalten eine leere Zeichenfolge, und Vega-Lite gibt diese mit seinen eigenen Standardwerten wieder.
Verwenden Sie dies, wenn Sie für jeden bekannten Wert exakte, garantierten Farben benötigen.
Bemerkung
Die _color-Transformation und der encoding.color-Block werden immer in das Diagramm eingefügt, unabhängig davon, anhand welcher Spalte das LLM die Farbe gewählt hat. Dies bedeutet:
Die Zuordnung funktioniert nur dann korrekt, wenn der Farbkanal des Diagramms tatsächlich dieselbe Spalte verwendet, auf die im
calculateAusdruck (z. B.``STATUS``) verwiesen wird. Wenn das LLM die Farbe einer anderen Spalte zuweist, ist das Feld_colorin den Daten vorhanden, aber die Farben stimmen nicht überein.Pro Vorlage kann nur eine Spalte als Ziel definiert werden.
Angeheftete Werte mit Paletten-Fallback¶
Heften Sie Farben für Schlüsselwerte an und lassen Sie die übrigen automatisch aus einer Farbpalette zuweisen. Verwenden Sie "merge": "extend", um die bestehenden Farboptionen des LLMs beizubehalten, und fügen Sie nur neue Zuordnungen hinzu.
Datenwerten, die nicht in domain enthalten sind, wird automatisch die nächste verfügbare Farbe von scheme zugewiesen. Nach der Zuweisung wird scheme aus der endgültigen Spezifikation entfernt.
Unterstützte Schemanamen: tableau10, tableau20, category10, category20, category20b, category20c, dark2, paired, pastel1, pastel2, set1, set2, set3, accent.
Deaktivieren von Snowsight-Stilen¶
Standardmäßig wendet Snowflake Intelligence zusätzlich zum generierten Diagramm Snowsight UI-Themeanpassungen an. Wenn Sie dieses Verhalten deaktivieren und das Diagramm genau so rendern möchten, wie es in Ihrer vega_template angegeben ist, legen Sie ui-merge auf "none" in usermeta fest:
Dies ist nützlich, wenn Sie die volle Kontrolle über die visuelle Ausgabe wünschen, z. B. wenn Sie ein angepasstes Markentheme anwenden und Sie nicht möchten, dass Snowsight Farben, Schriftarten oder Hintergründe überschreibt.
Bemerkung
ui-merge wird vom clientseitigen Snowsight-Renderer interpretiert, nicht vom Orchestrator-Backend. Dies hat keine Auswirkungen auf die von der Merge-Engine erzeugten Diagrammspezifikationen. Es wird nur gesteuert, wie Snowsight bei der Anzeige des Diagramms im Browser zusätzlich zur endgültigen Spezifikation ein eigenes Theme anwendet.
Zahlen- und Währungsformatierung (experimentell)¶
Achsen- und Legendenbeschriftungen können mit Zeichenfolgen im D3-Format durch vega_template formatiert werden. Dies ist nützlich, um konsistente Währungssymbole, Dezimalstellen oder SI-Suffixe für alle Diagramme durchzusetzen.
Legen Sie axis.format für quantitative Achsen (x, y) und legend.format für Farb-/Größenlegenden fest:
Bemerkung
axis.format wird von Vega-Lite nur angewendet, wenn der Datentyp des Kanals "quantitative" ist. Wenn das LLM einen anderen Typ ableitet (z. B. "ordinal" für ein Jahr oder eine ID-Spalte), wird die Formatzeichenfolge stillschweigend ignoriert. Dies ist eine akzeptierte Beschränkung des vega_template-Ansatzes, da die Zusammenführung ohne Prüfung der abgeleiteten Typen angewendet wird.
Problemumgehung: Erzwingen Sie den Typ explizit in der Vorlage (override-Modus):
Dies garantiert, dass das Format angewendet wird, aber es kann andere typabhängige Renderings beeinflussen (Achsenmarkierungen, Binning).
Gängige D3-Formatzeichenfolgen:
Format |
Ausgabebeispiel |
Verwenden für |
|---|---|---|
|
1.234.567 $ |
Währungsbeträge, keine Dezimalstellen |
|
1.234.567,89 $ |
Währungsbeträge, 2 Dezimalzahlen |
|
1.234.567 |
Große Ganzzahlen mit Tausendertrennzeichen |
|
42,3 % |
Prozentsätze |
|
1,2 M |
Große Zahlen mit SI-Präfix |
|
3.14 |
2 feste Dezimalstellen |
So wenden Sie die Formatierung auf alle quantitativen Kanäle auf Agentenebene an (ohne den spezifischen Spaltennamen zu kennen):
Verwenden Sie "merge": "extend", damit das Format nur zu Kanälen hinzugefügt wird, die das LLM bereits aufgefüllt hat, ohne deren field- oder``type``-Einstellungen zu überschreiben.
Zusammenführungsmodi¶
Steuern Sie, wie vega_template mit dem LLM-generierten Diagramm interagiert, indem Sie "usermeta": {"merge": "<mode>"} innerhalb der Vorlage festlegen.
Modus |
Verhalten |
|---|---|
|
Vorlagenwerte überschreiben das Diagramm. Verwenden Sie diese Option, wenn Sie eine bestimmte Einstellung erzwingen müssen. |
|
Vorhandene Diagrammwerte bleiben erhalten. Neue Schlüssel und zusätzliche Skalierungseinträge werden hinzugefügt. Verwenden Sie diese Option, wenn Sie dem Diagramm etwas hinzufügen möchten, ohne die Auswahl des LLMs zu ersetzen. |
Regeln, die für beide Modi gelten:
Der
data-Block wird nie überschrieben.Codierungsüberschreibungen gelten nur, wenn das
fieldder Vorlage mit demfielddes Diagramms übereinstimmt oder die Vorlagefieldweglässt.Nach der Zusammenführung werden Domäneneinträge, die in den eigentlichen Daten nicht vorhanden sind, automatisch entfernt.
Beispiel: Erzwingen eines Liniendiagramms