Requête auprès du Cortex Search Service avec Snowflake Connector for SharePoint¶
Note
Le Snowflake Connector for SharePoint est soumis aux `Conditions du connecteur<https://www.snowflake.com/legal/snowflake-connector-terms/>`_.
Important
Merci de votre intérêt pour le Snowflake Connector pour SharePoint. Nous nous concentrons maintenant sur une solution de nouvelle génération qui offrira une expérience considérablement améliorée. Par conséquent, le déplacement de ce connecteur vers l’état de mise à disposition générale ne figure actuellement pas dans la feuille de route de notre produit. Vous pouvez continuer à utiliser ce connecteur en tant que fonction de prévisualisation, mais notez que la prise en charge des futures corrections de bogues et améliorations n’est pas garantie. La nouvelle solution est disponible en tant que Connecteur Openflow pour SharePoint et comprend de meilleures performances, une meilleure personnalisation et des options de déploiement améliorées.
Vous pouvez utiliser le service Cortex Search pour créer des applications de chat et de recherche permettant de dialoguer avec vos documents ou d’effectuer des requêtes dans SharePoint.
Une fois que vous avez installé et configuré le Snowflake Connector for SharePoint et qu’il commence à ingérer du contenu depuis Sharepoint, vous pouvez interroger le service Cortex Search. Pour plus d’informations sur l’utilisation de Cortex Search, voir Interroger un Cortex Search Service.
Filtrer les réponses¶
Pour limiter les réponses du service Cortex Search aux documents auxquels un utilisateur spécifique a accès dans SharePoint, vous pouvez spécifier un filtre contenant l’ID ou l’adresse électronique de l’utilisateur lorsque vous effectuez une requête dans Cortex Search. Par exemple, filter.@contains.user_ids
ou filter.@contains.user_emails
. Le nom du service Cortex Search créé par le connecteur est search_service
dans le schéma Cortex
.
Exécutez le code SQL suivant dans une feuille de calcul SQL pour interroger le service Cortex Search avec des fichiers ingérés depuis votre site SharePoint.
Remplacez les éléments suivants :
application_instance_name
: Nom de votre base de données et de votre instance d’application connecteur.user_emailID
: ID d’email de l’utilisateur pour lequel vous souhaitez filtrer les réponses.your_question
: La question pour laquelle vous souhaitez obtenir des réponses.number_of_results
: Nombre maximal de résultats à renvoyer dans la réponse. La valeur maximale est de 1000 et la valeur par défaut est de 10.
SELECT PARSE_JSON(
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<application_instance_name>.cortex.search_service',
'{
"query": "<your_question>",
"columns": ["chunk", "web_url"],
"filter": {"@contains": {"user_emails": "<user_emailID>"} },
"limit": <number_of_results>
}'
)
)['results'] AS results
Voici la liste complète des valeurs que vous pouvez saisir pour columns
:
Nom de la colonne |
Type |
Description |
---|---|---|
|
Chaîne |
Un chemin complet vers le fichier à partir de la racine des documents du site Sharepoint. Exemple : |
|
Chaîne |
Une URL qui affiche un fichier Sharepoint original dans un navigateur. |
|
Chaîne |
Date et heure de la dernière modification de l’élément. |
|
Chaîne |
Un morceau de texte du document qui correspond à la requête de Cortex Search. |
|
Tableau |
Un tableau des IDs des utilisateurs de Microsoft 365 qui ont accès à la documentation. Il inclut également les IDs utilisateurs de tous les groupes Microsoft 365 qui sont affectés au document. Pour trouver un ID d’utilisateur spécifique, voir `Obtenir un <https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http>d’utilisateur`_. |
|
Tableau |
Un tableau d’IDs de courriels d’utilisateurs Microsoft 365 qui ont accès à la documentation. Il inclut également les IDs de courriels utilisateurs de tous les groupes Microsoft 365 qui sont affectés au document. |
Exemple : Interroger un assistant AI pour les informations relatives aux ressources humaines (HR)¶
Vous pouvez utiliser Cortex Search pour interroger un assistant AI à l’intention des employés afin d’obtenir les dernières versions des informations HR, telles que l’onboarding, le code de conduite, les processus d’équipe et les politiques de l’organisation. En utilisant des filtres de réponse, vous pouvez également permettre aux membres de l’équipe HR d’effectuer des requêtes sur les contrats des employés tout en respectant les contrôles d’accès configurés dans SharePoint.
Exécutez la commande suivante dans une feuille de calcul SQL pour interroger le service Cortex Search avec des fichiers provenant de SharePoint. Sélectionnez la base de données comme nom d’instance de votre application et le schéma comme Cortex.
Remplacez les éléments suivants :
application_instance_name
: Nom de votre base de données et de votre instance d’application connecteur.user_emailID
: ID d’email de l’utilisateur pour lequel vous souhaitez filtrer les réponses.
SELECT PARSE_JSON(
SNOWFLAKE.CORTEX.SEARCH_PREVIEW(
'<application_instance_name>.cortex.search_service',
'{
"query": "What is my vacation carry over policy?",
"columns": ["chunk", "web_url"],
"filter": {"@contains": {"user_emails": "<user_emailID>"} },
"limit": 1
}'
)
)['results'] AS results
Exécutez le code suivant dans une feuille de calcul Python <label-snowsight_worksheets_create> pour interroger le service Cortex Search avec des fichiers provenant de SharePoint. Veillez à ajouter le paquet snowflake.core
à votre base de données.
Remplacez les éléments suivants :
application_instance_name
: Nom de votre base de données et de votre instance d’application connecteur.user_emailID
: ID d’email de l’utilisateur pour lequel vous souhaitez filtrer les réponses.
import snowflake.snowpark as snowpark
from snowflake.snowpark import Session
from snowflake.core import Root
def main(session: snowpark.Session):
root = Root(session)
# fetch service
my_service = (root
.databases["<application_instance_name>"]
.schemas["cortex"]
.cortex_search_services["search_service"]
)
# query service
resp = my_service.search(
query="What is my vacation carry over policy?",
columns = ["chunk", "web_url"],
filter = {"@contains": {"user_emails": "<user_emailID>"} },
limit=1
)
return (resp.to_json())
Exécutez le code suivant dans une interface de ligne de commande pour interroger le service Cortex Search avec les fichiers ingérés depuis votre site SharePoint. Vous devrez vous authentifier à l’aide d’une paire de clés et de OAuth pour accéder aux APIs REST de Snowflake. Pour plus d’informations, voir REST API et Authentification d”Snowflake REST APIs avec Snowflake.
Remplacez les éléments suivants :
application_instance_name
: Nom de votre base de données et de votre instance d’application connecteur.account_url
: Votre URL de compte Snowflake . Pour obtenir des instructions sur la façon de trouver l’URL de votre compte, voir Recherche de l’organisation et du nom de compte pour un compte.
curl --location "https://<account_url>/api/v2/databases/<application_instance_name>/schemas/cortex/cortex-search-services/search_service" \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer <CORTEX_SEARCH_JWT>" \
--data '{
"query": "What is my vacation carry over policy?",
"columns": ["chunk", "web_url"],
"limit": 1
}'
Exemple de réponse :
{
"results" : [ {
"web_url" : "https://<domain>.sharepoint.com/sites/<site_name>/<path_to_file>",
"chunk" : "Answer to the question asked."
} ]
}