- 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> ] )
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
oucategory 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']);
{
"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;
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'
}
);
{
"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'})
{
"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'})
{
"label": "fitness"
}
Limitations¶
Les fonctions de Snowflake Cortex ne prennent pas en charge les tables dynamiques.