Instructions personnalisées dans Cortex Analyst¶
Les instructions personnalisées vous permettent de mieux contrôler la génération de SQL. En utilisant le langage naturel, vous pouvez indiquer à Cortex Analyst exactement comment générer des requêtes SQL à partir de votre fichier de modèle sémantique YAML. Par exemple, utilisez des instructions personnalisées pour indiquer à Cortex Analyst ce que vous entendez par performances ou exercice financier. Vous pouvez ainsi améliorer la précision du SQL généré en y incorporant une logique personnalisée ou des éléments supplémentaires.
Pour un contrôle plus granulaire, vous pouvez également spécifier des instructions personnalisées pour des modules individuels dans le pipeline de génération SQL. Voir Instructions personnalisées pour le module pour plus d’informations.
Fonctionnement des instructions personnalisées¶
Cortex Analyst introduit le champ custom_instructions
dans le fichier du modèle sémantique YAML. Ce champ vous permet d’appliquer des modifications ou des ajouts de définition à la génération SQL.
Pour plus d’informations sur la syntaxe du modèle sémantique, voir Spécification du modèle sémantique Cortex Analyst.
Exemples¶
Pour explorer les cas d’utilisation possibles des instructions personnalisées, examinez les exemples suivants.
Formatage de la sortie des données¶
Veillez à ce que tous les chiffres de la sortie soient arrondis à deux décimales.
Le champ custom_instructions
dans le fichier YAML du modèle sémantique¶
custom_instructions: "Ensure that all numeric columns are rounded to 2 decimal points in the output."
Requête SQL générée¶
SELECT
ROUND(column_name, 2) AS column_name,
...
FROM
your_table;
Ajustement des pourcentages¶
Multipliez automatiquement les calculs de pourcentage ou de taux par 100 pour plus de cohérence.
Le champ custom_instructions
dans le fichier YAML du modèle sémantique¶
custom_instructions: "For any percentage or rate calculation, multiply the result by 100."
Requête SQL générée¶
SELECT
(column_a / column_b) * 100 AS percentage_rate,
...
FROM
your_table;
Ajouter des filtres par défaut¶
Appliquez un filtre si l’utilisateur n’en spécifie pas (par exemple, choisir par défaut la dernière année).
Le champ custom_instructions
dans le fichier YAML du modèle sémantique¶
custom_instructions: "If no date filter is provided, apply a filter for the last year."
Requête SQL générée¶
SELECT
...
FROM
your_table
WHERE
date_column >= DATEADD(YEAR, -1, CURRENT_DATE);
Lier les filtres des colonnes¶
Appliquez des filtres supplémentaires sur les colonnes connexes en fonction des entrées de l’utilisateur.
Le champ custom_instructions
dans le fichier YAML du modèle sémantique¶
custom_instructions: "If a filter is applied on column X, ensure that the same filter is applied to dimension Y."
Requête SQL générée¶
SELECT
...
FROM
your_table
WHERE
column_x = 'filter_value' AND
dimension_y = 'filter_value';
Instructions personnalisées pour le module¶
Fixez la clé module_custom_instructions
au niveau supérieur de votre modèle sémantique afin de définir des instructions personnalisées pour des composants spécifiques du pipeline de génération SQL. Cette fonction est utile dans les cas d’utilisation suivants :
Définir la logique qui influence la façon dont les questions des utilisateurs sont interprétées avant que SQL ne soit généré
Maintenir des instructions distinctes et plus structurées pour les différentes parties du flux de travail de l’analyste
Passer de
custom_instructions
existantes vers un format plus modulaire au fur et à mesure de l’évolution de votre utilisation
Actuellement, module_custom_instructions
prend en charge les composants suivants :
question_categorization
: Définissez la manière dont Cortex Analyst doit classer les questions des utilisateurs (par exemple, en bloquant certains sujets ou en guidant le comportement des utilisateurs).sql_generation
: Indiquez comment le SQL doit être généré (par exemple, formatage et filtrage des données).
Les instructions relatives à l’un ou l’autre de ces éléments, ou aux deux, peuvent être définis sous la clé module_custom_instructions
.
Important
Migrez toutes les custom_instructions
existantes vers le composant sql_generation
, comme indiqué dans l’exemple suivant.
Migration des instructions personnalisées existantes¶
Si votre modèle comporte déjà un champ custom_instructions
, migrez son contenu vers le champ sql_generation
sous module_custom_instructions
.
Avant :
custom_instructions: "Ensure that all numeric columns are rounded to 2 decimal points."
Après :
module_custom_instructions:
sql_generation: |
"Ensure that all numeric columns are rounded to 2 decimal points."
Blocage des questions sur des sujets spécifiques¶
Vous pouvez utiliser le composant question_categorization
pour bloquer les questions portant sur des sujets spécifiques. Par exemple, si vous souhaitez bloquer les questions sur les utilisateurs, vous pouvez définir les instructions suivantes. Cortex Analyst rejette alors les questions sur les utilisateurs avec un message leur indiquant de contacter leur administrateur.
module_custom_instructions:
question_categorization: |
Reject all questions asking about users. Ask users to contact their admin.
Vous pouvez également utiliser les instructions de catégorisation des questions pour demander des détails manquants. Dans l’exemple suivant, Cortex Analyst demande à l’utilisateur de fournir un type de produit s’il pose des questions sur les utilisateurs et n’en spécifie pas.
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.
Meilleures pratiques¶
- Soyez précis.
Décrivez clairement les modifications ; par exemple, « Ajouter une colonne avec une valeur fixe de 42 » ou « Inclure un calcul de somme pour la colonne X ».
- Commencez modestement.
Commencez par des modifications simples, comme l’ajout d’une colonne statique ou de filtres par défaut, avant de passer à des scénarios plus complexes.
- Prévisualisez la requête SQL générée.
Assurez-vous que les instructions s’appliquent comme prévu et que la requête SQL générée est correcte.
- Procédez par itération graduelle.
Expérimentez avec des cas d’utilisation plus complexes à mesure que vous vous familiarisez avec la fonctionnalité.