Benutzerdefinierte Anweisungen in Cortex Analyst

Mit den benutzerdefinierten Anweisungen haben Sie eine größere Kontrolle über die Erstellung von SQL. Mit Hilfe von natürlicher Sprache können Sie Cortex Analyst genau mitteilen, wie SQL-Abfragen aus Ihrer semantischen YAML-Modelldatei generiert werden sollen. Verwenden Sie zum Beispiel benutzerdefinierte Anweisungen, um Cortex Analyst mitzuteilen, was Sie mit Leistung oder Geschäftsjahr meinen. Auf diese Weise können Sie die Genauigkeit des generierten SQL verbessern, indem Sie eine benutzerdefinierte Logik oder zusätzliche Elemente einbauen.

Für eine detailliertere Kontrolle können Sie auch benutzerdefinierte Anweisungen für einzelne Module in der SQL-Generierungspipeline angeben. Weitere Informationen dazu finden Sie unter Modul benutzerdefinierte Anweisungen.

So funktionieren benutzerdefinierte Anweisungen

Cortex Analyst fügt das Feld custom_instructions in die Datei des semantischen Modells YAML ein. In diesem Feld können Sie definierende Änderungen oder Ergänzungen bei der Erstellung von SQL vornehmen.

Weitere Informationen über die Syntax des semantischen Modells finden Sie unter Cortex Analyst-Spezifikation des semantischen Modells.

Beispiele

Um mögliche Anwendungsfälle für benutzerdefinierte Anweisungen zu erkunden, betrachten Sie die folgenden Beispiele.

Formatieren der Datenausgabe

Stellen Sie sicher, dass alle Zahlen in der Ausgabe auf zwei Dezimalstellen gerundet werden.

Das Feld custom_instructions in der Datei des semantischen Modells YAML

custom_instructions: "Ensure that all numeric columns are rounded to 2 decimal points in the output."
Copy

Generierte SQL-Abfrage

SELECT
  ROUND(column_name, 2) AS column_name,
  ...
FROM
  your_table;
Copy

Prozentsätze anpassen

Multiplizieren Sie Prozent- oder Ratenberechnungen automatisch mit 100, um Konsistenz zu gewährleisten.

Das Feld custom_instructions in der Datei des semantischen Modells YAML

custom_instructions: "For any percentage or rate calculation, multiply the result by 100."
Copy

Generierte SQL-Abfrage

SELECT
  (column_a / column_b) * 100 AS percentage_rate,
  ...
FROM
  your_table;
Copy

Hinzufügen von Standardfiltern

Wenden Sie einen Filter an, wenn der Benutzer keinen angibt (z. B. standardmäßig das letzte Jahr).

Das Feld custom_instructions in der Datei des semantischen Modells YAML

custom_instructions: "If no date filter is provided, apply a filter for the last year."
Copy

Generierte SQL-Abfrage

SELECT
  ...
FROM
  your_table
WHERE
  date_column >= DATEADD(YEAR, -1, CURRENT_DATE);
Copy

Verknüpfung von Spaltenfiltern

Wenden Sie zusätzliche Filter auf verwandte Spalten an, die auf Benutzereingaben basieren.

Das Feld custom_instructions in der Datei des semantischen Modells YAML

custom_instructions: "If a filter is applied on column X, ensure that the same filter is applied to dimension Y."
Copy

Generierte SQL-Abfrage

SELECT
  ...
FROM
  your_table
WHERE
  column_x = 'filter_value' AND
  dimension_y = 'filter_value';
Copy

Modul benutzerdefinierte Anweisungen

Legen Sie den Schlüssel module_custom_instructions auf der obersten Ebene Ihres semantischen Modells fest, um benutzerdefinierte Anweisungen für bestimmte Komponenten in der SQL-Generierungspipeline zu definieren. Dieses Feature ist nützlich für Anwendungsfälle wie den folgenden:

  • Definieren Sie die Logik, die beeinflusst, wie die Fragen der Benutzer interpretiert werden, bevor SQL generiert wird

  • Pflegen Sie separate, besser strukturierte Anweisungen für verschiedene Teile des Analysten-Workflows

  • Umstellung von custom_instructions auf ein modulareres Format, wenn Ihre Nutzung wächst

Derzeit unterstützt module_custom_instructions die folgenden Komponenten:

  • question_categorization: Legen Sie fest, wie Cortex Analyst die Fragen der Benutzer klassifizieren soll (z. B. indem Sie bestimmte Themen blockieren oder die Verhaltensweise der Benutzer steuern).

  • sql_generation: Geben Sie an, wie SQL generiert werden soll (z. B. Datenformatierung und Filterung).

Anweisungen für eine oder beide dieser Komponenten können unter dem Schlüssel module_custom_instructions eingestellt werden.

Wichtig

Migrieren Sie alle vorhandenen custom_instructions in die Komponente sql_generation, wie im folgenden Beispiel gezeigt.

Migrieren vorhandener benutzerdefinierter Anweisungen

Wenn Ihr Modell bereits über ein Feld custom_instructions verfügt, migrieren Sie dessen Inhalt in das Feld sql_generation unter module_custom_instructions.

Vorher:

custom_instructions: "Ensure that all numeric columns are rounded to 2 decimal points."
Copy

Nachher:

module_custom_instructions:
  sql_generation: |
     "Ensure that all numeric columns are rounded to 2 decimal points."
Copy

Blockieren von Fragen zu bestimmten Themen

Sie können die Komponente question_categorization verwenden, um Fragen zu bestimmten Themen zu blockieren. Wenn Sie beispielsweise Fragen über Benutzer blockieren möchten, können Sie die folgenden Anweisungen festlegen. Cortex Analyst lehnt dann Fragen über Benutzer mit einer Nachricht ab, in der es aufgefordert wird, ihren Administrator zu kontaktieren.

module_custom_instructions:
  question_categorization: |
     Reject all questions asking about users. Ask users to contact their admin.
Copy

Sie können auch Anweisungen zur Kategorisierung von Fragen verwenden, um nach fehlenden Details zu fragen. Im folgenden Beispiel fordert Cortex Analyst den Benutzer auf, einen Produkttyp anzugeben, wenn er nach Benutzern fragt und keinen angibt.

module_custom_instructions:
  question_categorization: |
    - If the question asks for users without providing a product_type, consider this question UNCLEAR and ask the user to specify product_type.
Copy

Best Practices

Seien Sie konkret.

Beschreiben Sie die Änderungen klar und deutlich, z. B. „Fügen Sie eine Spalte mit einem festen Wert von 42 hinzu“ oder „Fügen Sie eine Summenberechnung für Spalte X ein“.

Fangen Sie klein an.

Beginnen Sie mit einfachen Änderungen, wie dem Hinzufügen einer statischen Spalte oder von Standardfiltern, bevor Sie zu komplexeren Szenarien übergehen.

Zeigen Sie eine Vorschau der generierten SQL-Abfrage an.

Vergewissern Sie sich, dass die Anweisungen wie vorgesehen angewendet werden und dass die generierte SQL-Abfrage korrekt ist.

Iterieren Sie schrittweise.

Experimentieren Sie mit komplexeren Anwendungsfällen, je vertrauter Sie mit dem Feature werden.