API REST d’intégration vectorielle¶
L’API REST Cortex vous donne accès à un point de terminaison pour exécuter des intégrations vectorielles, à l’aide de la fonction AI_EMBED.
Configuration de l’authentification¶
Pour vous authentifier auprès de l’API REST de Cortex , vous pouvez utiliser les méthodes décrites dans Authentification d”Snowflake REST APIs avec Snowflake.
Définissez l’en-tête Authorization pour inclure votre jeton (par exemple, un jeton Web JSON (JWT), un jeton OAuth ou un jeton d’accès programmatique).
Astuce
Envisagez de créer un utilisateur dédié pour les requêtes de l’API REST de Cortex.
Format du point de terminaison¶
Vous pouvez adresser des requêtes au point de terminaison /api/v2/cortex/inference:embed afin de créer des éléments d’intégration pour votre texte. La requête se présente sous la forme suivante :
où account_identifier est le l’identificateur de compte que vous utilisez pour accéder à Snowsight.
Disponibilité du modèle¶
Le tableau suivant présente les modèles de fonction EMBED que vous pouvez solliciter à l’aide de l’API REST.
Modèle
|
AWS US West 2
(Oregon)
|
AWS US East 1
(Virginie du Nord)
|
AWS Europe Central 1
(Francfort)
|
AWS Europe Ouest 1
(Irlande)
|
AWS AP Sud-Est 2
(Sydney)
|
AWS AP Nord-Est 1
(Tokyo)
|
Azure Est US 2
(Virginie)
|
Azure Europe de l’Ouest
(Pays-Bas)
|
|---|---|---|---|---|---|---|---|---|
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
Le tableau suivant indique le nombre de dimensions que chaque modèle peut renvoyer.
Modèle
|
Nombre de
dimensions
|
|---|---|
snowflake-arctic-embed-m-v1.5 |
768 |
snowflake-arctic-embed-m |
768 |
e5-base-v2 |
768 |
snowflake-arctic-embed-l-v2.0 |
1024 |
Référence API¶
POST /api/v2/cortex/inference:embed¶
Crée une insertion pour le texte que vous spécifiez.
En-têtes obligatoires
Authorization: Bearer token.Autorisation pour la demande.
tokenest un jeton Web JSON (JWT), un jeton OAuth ou un jeton d’accès programmatique). Pour plus de détails, voir Authentification d”Snowflake REST APIs avec Snowflake.Content-Type: application/jsonSpécifie que le corps de la requête est en format JSON.
Accept: application/jsonSpécifie que la réponse contient JSON.
En-têtes facultatifs¶
X-Snowflake-Authorization-Token-Type: typeDéfinit le type de jeton d’autorisation.
Si vous omettez l’en-tête
X-Snowflake-Authorization-Token-Type, Snowflake détermine le type de jeton en examinant le jeton.Bien que cet en-tête soit facultatif, vous pouvez choisir de le spécifier. Vous pouvez définir l’en-tête sur l’une des valeurs suivantes :
KEYPAIR_JWT(pour l’authentification par paire de clés)OAUTH(pour OAuth)PROGRAMMATIC_ACCESS_TOKEN(pour les jetons d’accès programmatiques)
Arguments JSON obligatoires¶
Argument |
Type |
Description |
|---|---|---|
|
tableau |
Une liste de chaînes de texte pour lesquelles vous générez des intégrations. La liste peut contenir jusqu’à 1 280 chaînes, chacune pouvant comporter jusqu’à 4 096 caractères. |
|
string |
Le modèle que vous utilisez pour créer les intégrations. |
Codes de statut¶
Le Snowflake Cortex LLM REST API utilise les codes de statut HTTP pour indiquer la réussite ou diverses conditions d’erreur.
- 200
OK La requête a été complétée avec succès. Le corps de la réponse contient la sortie du modèle.
- 400
invalid options object Les arguments facultatifs ont des valeurs non valides.
- 400
unknown model model_name Le modèle spécifié n’existe pas.
- 400
schema validation failed Erreurs liées à une structure incorrecte du schéma de réponse. Corrigez le schéma et réessayez.
- 400
max tokens of count exceeded La requête a dépassé le nombre maximum de jetons pris en charge par le modèle (voir Restrictions du modèle).
- 400
all requests were throttled by remote service La requête a été limitée en raison d’un niveau d’utilisation élevé. Veuillez réessayer plus tard.
- 402
budget exceeded Le budget de consommation du modèle a été dépassé.
- 403
Not Authorized Compte non activé pour REST API, ou le rôle par défaut de l’utilisateur appelant n’a pas le rôle de base de données
snowflake.cortex_user.- 429
too many requests La demande a été rejetée car le quota d’utilisation a été dépassé. Veuillez réessayer votre requête plus tard.
- 503
embed timed out La requête a pris trop de temps.
Exemple de requête CURL¶
L’exemple suivant utilise curl pour effectuer une requête EMBED vers le modèle e5-base-v2. Remplacez token et account_identifier avec les valeurs appropriées dans cette commande.
Sortie¶
Voici la sortie de la requête, avec le contenu du tableau d’intégration tronqué :
Chaque intégration possède un index qui correspond à la chaîne de texte dans une liste de la requête. L’index est basé sur 0, de sorte que la première chaîne de texte de la liste a un index de 0, la deuxième chaîne de texte a un index de 1, et ainsi de suite.
Dans l’exemple précédent, « foo » correspond à l’index 0 et « bar » à l’index 1. L’intégration de « foo » est le premier élément de la liste des intégrations, et l’intégration de « bar » est le deuxième élément de la liste des intégrations.
Exemple de requête Python¶
L’exemple suivant utilise l’API de Python pour effectuer une requête EMBED vers le modèle e5-base-v2. Remplacez token et account_identifier avec les valeurs appropriées dans cette commande.
Sortie¶
Voici la sortie de la requête, avec le contenu du tableau d’intégration tronqué :
Chaque intégration possède un index qui correspond à la chaîne de texte dans une liste de la requête. L’index est basé sur 0, de sorte que la première chaîne de texte de la liste a un index de 0, la deuxième chaîne de texte a un index de 1, et ainsi de suite.
Dans l’exemple précédent, « foo » correspond à l’index 0 et « bar » à l’index 1. L’intégration de « foo » est le premier élément de la liste des intégrations, et l’intégration de « bar » est le deuxième élément de la liste des intégrations.
Quotas d’utilisation¶
Le tableau suivant indique les quotas d’utilisation de la fonction EMBED.
Modèle
|
Jetons traités
par minute (TPM)
|
Requêtes par
Minute (RPM)
|
Sortie maximale (jetons)
|
|---|---|---|---|
snowflake-arctic-embed-m-v1.5 |
400,000 |
200 |
4,096 |
snowflake-arctic-embed-m |
400,000 |
200 |
4,096 |
e5-base-v2 |
400,000 |
200 |
4,096 |
nv-embed-qa-4 |
400,000 |
200 |
4,096 |
multilingual-e5-large |
400,000 |
200 |
4,096 |
voyage-multilingual-2 |
400,000 |
200 |
4,096 |