CatĂ©gories :

Fonctions de chaĂźne et fonctions binaires (Large Language Model)

CLASSIFY_TEXT (SNOWFLAKE.CORTEX)¶

Note

AI_CLASSIFY est la derniĂšre version de cette fonction. Vous pouvez utiliser AI_CLASSIFY pour la classification Ă  plusieurs Ă©tiquettes et d’images. Vous pouvez continuer Ă  utiliser CLASSIFY_TEXT (SNOWFLAKE.CORTEX).

Classe le texte libre dans des catégories que vous fournissez.

Syntaxe¶

SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories>, [ <options> ] )
Copy

Arguments¶

Obligatoire :

input

ChaĂźne Ă  classer. La chaĂźne d’entrĂ©e est sensible Ă  la casse. Vous pouvez obtenir des rĂ©sultats diffĂ©rents pour la mĂȘme chaĂźne qui utilise une majuscule diffĂ©rente.

list_of_categories

Tableau qui reprĂ©sente les catĂ©gories. Doit contenir au moins deux et au plus 100 catĂ©gories uniques. Les catĂ©gories sont sensibles Ă  la casse. Si ces exigences ne sont pas satisfaites, la fonction renvoie une erreur. Pour une liste complĂšte des erreurs, voir Conditions d’erreur.

Les catĂ©gories peuvent ĂȘtre de simples chaĂźnes ou des objets SQL ; toutes les catĂ©gories doivent ĂȘtre du mĂȘme type. En utilisant des objets, vous pouvez fournir une description et des exemples de chaque catĂ©gorie, en fournissant un contexte qui peut aider Ă  amĂ©liorer la prĂ©cision de la classification. Il n’est pas exigĂ© de fournir des descriptions ou des exemples pour chaque catĂ©gorie ; vous ĂȘtes libre de fournir une description, des exemples, les deux ou aucun des deux pour chaque catĂ©gorie.

  • label : Le nom de la catĂ©gorie. Cette clĂ© est obligatoire.

  • description : Une description de la catĂ©gorie. Les descriptions ne doivent pas dĂ©passer 25 mots (1 Ă  2 phrases). Cette clĂ© est facultative.

  • examples : Un tableau d’exemples reprĂ©sentatifs de la catĂ©gorie. En rĂšgle gĂ©nĂ©rale, il ne faut pas plus de cinq exemples, mais il y a une limite de 20 exemples par catĂ©gorie. Le nombre d’exemples ne doit pas nĂ©cessairement ĂȘtre le mĂȘme pour chaque catĂ©gorie. Cette clĂ© est facultative.

Note

Les descriptions et les exemples comptent comme des jetons d’entrĂ©e, ce qui augmente le coĂ»t de l’opĂ©ration de classification. Pour en savoir plus, voir ConsidĂ©rations relatives aux clients.

Facultatif :

options

Un objet qui contient une configuration facultative (sous forme de paires clĂ©/valeur) pour l’opĂ©ration de classification. Actuellement, la seule clĂ© disponible est la suivante :

  • task_description : Une chaĂźne contenant une brĂšve explication de la tĂąche de classification de texte. Les descriptions de tĂąches ne doivent pas dĂ©passer 50 mots (3 Ă  4 phrases).

Renvoie¶

Une valeur OBJECT (VARIANT). Le champ label de l’objet est une chaĂźne spĂ©cifiant la catĂ©gorie Ă  laquelle appartient le prompt d’entrĂ©e.

Si des arguments non valides sont fournis, une erreur est renvoyĂ©e. Pour plus de dĂ©tails sur les erreurs, voir Conditions d’erreur.

Exigences en matiĂšre de contrĂŽle d’accĂšs¶

Les utilisateurs doivent utiliser un rĂŽle auquel le rĂŽle de base de donnĂ©es SNOWFLAKE.CORTEX_USER a Ă©tĂ© accordĂ©. Voir PrivilĂšges requis pour plus d’informations sur ce privilĂšge.

Notes sur l’utilisation¶

Pour des performances optimales, suivez ces directives :

  • Utilisez du texte en anglais simple pour la saisie et les catĂ©gories.

  • Limitez la quantitĂ© de texte qui n’est pas de l’anglais simple dans le texte d’entrĂ©e. Par exemple, essayez de limiter le contenu tel que les extraits de code ou les journaux dans la saisie de texte.

  • Le texte ne doit pas contenir de code ou de formats qui ne sont pas open source (langages spĂ©cifiques Ă  l’entreprise, formats propriĂ©taires, etc.). La fonction ne renverra pas d’erreur, mais les rĂ©sultats peuvent ne pas ĂȘtre ceux que vous attendez.

  • N’utilisez pas d’abrĂ©viations, de caractĂšres spĂ©ciaux ou de jargon dans les Ă©tiquettes de catĂ©gorie.

  • Les catĂ©gories doivent ĂȘtre descriptives. Par exemple, utiliser une catĂ©gorie telle que Xa4s3 ou category 1 ne produira pas de bons rĂ©sultats.

  • Les catĂ©gories doivent s’exclure mutuellement.

  • L’ajout d’une description claire de la tĂąche peut amĂ©liorer la prĂ©cision lorsque la relation entre le texte d’entrĂ©e et les catĂ©gories est ambiguĂ« ou nuancĂ©e.

  • L’ajout de descriptions d’étiquettes peut amĂ©liorer la prĂ©cision dans les cas oĂč les descriptions sont ambiguĂ«s ou lorsqu’une logique spĂ©cifique doit ĂȘtre suivie lors de la sĂ©lection d’une Ă©tiquette particuliĂšre. Lorsque vous rĂ©digez des descriptions, mettez l’accent sur les aspects clĂ©s qui distinguent une Ă©tiquette particuliĂšre des autres.

  • Chaque Ă©tiquette, description et exemple compte comme jeton d’entrĂ©e pour chaque enregistrement traitĂ© par un appel Ă  la fonction CLASSIFY_TEXT. Les coĂ»ts sont encourus en consĂ©quence.

  • Des exemples peuvent aider Ă  amĂ©liorer la prĂ©cision.

Exemples¶

Utilisation des arguments requis¶

Ces exemples illustrent la maniùre d’utiliser la fonction CLASSIFY_TEXT avec uniquement les arguments requis.

L’exemple suivant classe l’invite dans l’une des deux catĂ©gories, travel ou cooking :

SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
Copy
{
  "label": "travel"
}

L’exemple suivant crĂ©e une table, text_classification_table, qui contient une colonne pour le texte et une colonne pour les catĂ©gories possibles pour ce texte. La fonction CLASSIFY_TEXT est appelĂ©e sur chaque ligne de la table pour classer la chaĂźne dans la colonne de texte.

CREATE OR REPLACE TEMPORARY TABLE text_classification_table AS
SELECT 'France' AS input, ['North America', 'Europe', 'Asia'] AS classes
UNION ALL
SELECT 'Singapore', ['North America', 'Europe', 'Asia']
UNION ALL
SELECT 'one day I will see the world', ['travel', 'cooking', 'dancing']
UNION ALL
SELECT 'my lobster bisque is second to none', ['travel', 'cooking', 'dancing'];

SELECT input,
       classes,
       SNOWFLAKE.CORTEX.CLASSIFY_TEXT(input, classes)['label'] as classification
FROM text_classification_table;
Copy

Utilisation des arguments facultatifs¶

Ces exemples illustrent l’utilisation de la fonction CLASSIFY_TEXT avec des descriptions de catĂ©gories et des exemples et/ou une description de la tĂąche.

L’exemple suivant classe l’invite dans l’une des trois catĂ©gories (voyage, cuisine ou remise en forme), en ne fournissant qu’une description de la tĂąche :

SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
  'When I am not at work, I love creating recipes using every day ingredients',
  ['travel', 'cooking', 'fitness'],
  {
    'task_description': 'Return a classification of the Hobby identified in the text'
  }
);
Copy
{
  "label": "cooking"
}

L’exemple suivant classe l’invite dans l’une des catĂ©gories suivantes (voyage, cuisine ou remise en forme), en utilisant toutes les options.

SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
  'I love running every morning before the world wakes up',
  [{
    'label': 'travel',
    'description': 'Hobbies related to going from one place to another',
    'examples': ['I like flying to Europe', 'Every summer we go to Italy' , 'I love traveling to learn new cultures']
  },{
    'label': 'cooking',
    'description': 'Hobbies related to preparing food',
    'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
    },{
    'label': 'fitness',
    'description': 'Hobbies related to being active and healthy',
    'examples': ['I cannot live without my Strava app', 'Running is life' , 'I go to the Gym every day']
    }],
  {'task_description': 'Return a classification of the Hobby identified in the text'})
Copy
{
  "label": "fitness"
}

L’exemple suivant classe l’invite dans l’une des trois catĂ©gories (voyage, cuisine ou remise en forme), en utilisant toutes les options. Cependant, la description ou les exemples sont omis pour certaines catĂ©gories, et le nombre d’exemples varie.

SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
  'I love running every morning before the world wakes up',
  [{
    'label': 'travel',
    'description': 'Hobbies related to going from one place to another',
    'examples': ['I like flying to Europe']
  },{
    'label': 'cooking',
    'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
    },{
    'label': 'fitness',
    'description': 'Hobbies related to being active and healthy'
    }],
  {'task_description': 'Return a classification of the Hobby identified in the text'})
Copy
{
  "label": "fitness"
}

Limitations¶

Les fonctions de Snowflake Cortex ne prennent pas en charge les tables dynamiques.