Cortex Analyst REST API¶
Utilisez cette API pour répondre aux questions sur vos données avec des requêtes en langage naturel.
Envoyer un message¶
POST /api/v2/cortex/analyst/message
Génère une requête SQL pour la question donnée en utilisant le modèle sémantique fourni dans la demande. Vous pouvez avoir des conversations à plusieurs tours où vous pouvez poser des questions de suivi qui s’appuient sur les requêtes précédentes. Pour plus d’informations, voir Conversation à plusieurs tours en Cortex Analyst.
La demande comprend une question de l’utilisateur et la réponse comprend la question de l’utilisateur et la réponse de l’analyste. Chaque message d’une réponse peut avoir plusieurs blocs de contenu de types différents. Trois valeurs actuellement prises en charge pour le champ type
de l’objet de contenu sont : text
, suggestions
, et sql
.
En-têtes de requête¶
En-tête |
Description |
---|---|
|
(Obligatoire) Jeton d’autorisation. Pour plus d’informations, voir Authentification auprès du serveur. |
|
(Obligatoire) application/json |
Corps de la requête¶
Le corps de la requête contient le rôle du locuteur qui doit être user
, la question de l’utilisateur et un chemin vers le fichier YAML du modèle sémantique. La question de l’utilisateur est contenue dans un objet content
qui a deux champs, type
et text
. text
est également la seule valeur autorisée du champ type
.
Champ |
Description |
---|---|
|
(Obligatoire) Le rôle de l’entité qui crée le message. Actuellement, seulement Type : string:enum Exemple : |
|
(Obligatoire) L’objet de contenu qui fait partie d’un message. Type : objet
|
|
(Obligatoire) Le type de contenu. Actuellement, seulement Type : string:enum Exemple : |
|
(Obligatoire) La question de l’utilisateur. Type : chaîne Exemple : |
|
Chemin vers le fichier YAML du modèle sémantique. Doit être une URL de zone de préparation entièrement qualifiée, y compris la base de données et le schéma. Vous pouvez plutôt fournir le modèle sémantique YAML complet dans le champ Type : chaîne Exemple : |
|
Une chaîne contenant l’intégralité du modèle sémantique YAML. Vous pouvez plutôt transmettre le modèle sémantique YAML en tant que fichier en zone de préparation en fournissant son URL dans le champ Type : chaîne |
Important
Vous devez fournir soit semantic_model_file
ou semantic_model
dans le corps de la requête.
Exemple¶
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "which company had the most revenue?"
}
]
}
],
"semantic_model_file": "@my_stage/my_semantic_model.yaml"
}
Réponse¶
Cette opération peut renvoyer les codes de réponse énumérés ci-dessous. La réponse a toujours la structure suivante. Actuellement, trois types de contenu sont pris en charge pour la réponse, text
, suggestion
, et sql
. Les types de contenu suggestion
et sql
sont mutuellement exclusifs de sorte que si la réponse contient un type de contenu sql
, elle ne contiendra pas de type de contenu suggestion
. Le type de contenu suggestion
n’est inclus dans une réponse que si la question de l’utilisateur était ambiguë et Cortex Analyst ne pouvait pas retourner une instruction SQL pour cette requête.
Pour garantir la compatibilité ascendante, assurez-vous que votre implémentation prend en compte le type de contenu et gère les types.
Code |
Description |
---|---|
200 |
L’instruction a été exécutée avec succès. Le corps de la réponse contient un objet message qui contient les champs suivants :
{
"request_id": "75d343ee-699c-483f-83a1-e314609fb563",
"message": {
"role": "analyst",
"content": [
{
"type": "text",
"text": "We interpreted your question as ..."
},
{
"type": "sql",
"statement": "SELECT * FROM table",
"confidence": {
"verified_query_used": {
"name": "My verified query",
"question": "What was the total revenue?",
"sql": "SELECT * FROM table2",
"verified_at": 1714497970,
"verified_by": "Jane Doe"
}
}
}
]
},
"warnings": [
{
"message": "Table table1 has (30) columns, which exceeds the recommended maximum of 10"
},
{
"message": "Table table2 has (40) columns, which exceeds the recommended maximum of 10"
}
]
}
|
Envoyer le feedback¶
POST /api/v2/cortex/analyst/feedback
Fournit un retour d’information qualitatif à l’utilisateur final. Sur l”Snowsight, le retour d’information est indiqué à l’adresse Semantic Model Admins sous Monitoring.
En-têtes de requête¶
En-tête |
Description |
---|---|
|
(Obligatoire) Jeton d’autorisation. Pour plus d’informations, voir Authentification auprès du serveur. |
|
(Obligatoire) application/json |
Corps de la requête¶
Champ |
Description |
---|---|
|
(Obligatoire) L’identifiant de la requête que vous avez faite pour envoyer un message. Renvoyé dans le champ Type : chaîne Exemple : |
|
(Obligatoire) Indique si le retour d’information est positif ou négatif. Type : booléen Exemple :
|
|
(Facultatif) Le message de retour de l’utilisateur. Exemple : |
Réponse¶
Corps de réponse vide avec le code de statut 200.
Exigences en matière de contrôle d’accès¶
Pour obtenir des informations sur les privilèges requis, voir Exigences en matière de contrôle d’accès.
Pour plus d’informations sur l’authentification à l’API, voir Authentification d”Snowflake REST APIs avec Snowflake.