使用|SharePoint| 查询 Cortex Search 服务¶
备注
Snowflake Connector for SharePoint 受 `Connector 条款<https://www.snowflake.com/legal/snowflake-connector-terms/>`_ 的约束。
您可以使用 Cortex Search 服务构建聊天和搜索应用程序,以便与 SharePoint 中的文档聊天或查询文档。
安装和配置 Snowflake Connector for SharePoint 并开始从 Sharepoint 引入内容后,您就可以查询 Cortex Search 服务。有关使用 Cortex Search 的更多信息,请参阅 查询 Cortex Search 服务。
筛选器响应¶
要将 Cortex Search 服务的响应限制为 SharePoint 中特定用户可以访问的文档,可以在查询 Cortex Search 时指定一个包含用户 ID 或电子邮件地址的筛选器。例如,filter.@contains.user_ids
或 filter.@contains.user_emails
。连接器创建的 Cortex Search 服务名称是 search_service
并位于 Cortex
架构中。
在 SQL 工作表中运行以下 SQL 代码,利用从 SharePoint 站点引入的文件查询 Cortex Search 服务。
替换以下内容:
application_instance_name
:数据库和连接器应用程序实例的名称。user_emailID
:要筛选响应的用户的电子邮件 ID。your_question
:要获取响应的问题。number_of_results
:要在响应中返回的最大结果数。最大值为 1000,默认值为 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
以下是您可以为 columns
输入的值的完整列表:
列名称 |
类型 |
描述 |
---|---|---|
|
字符串 |
Sharepoint 站点文档根目录中文件的完整路径。示例: |
|
字符串 |
在浏览器中显示 Sharepoint 原始文件的 URL。 |
|
字符串 |
项目最近一次修改的日期和时间。 |
|
字符串 |
与 Cortex Search 查询匹配的文档中的一段文本。 |
|
数组 |
可访问文档的 Microsoft 365 用户 IDs ID 的数组。它还包括分配给文档的所有 Microsoft 365 组的用户 IDs。要查找特定用户 ID,请参阅 获取用户 (https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http)。 |
|
数组 |
可访问文档的 Microsoft 365 用户电子邮件 IDs 的数组。它还包括分配给文档的所有 Microsoft 365 组的用户电子邮件 IDs。 |
示例:向 AI 助手查询人力资源 (HR) 信息¶
您可以使用 Cortex Search 查询 AI 助手,为员工聊天提供最新版本的 HR 信息,如入职、行为规范、团队流程和组织政策等。使用响应筛选器,您还可以允许 HR 团队成员查询员工合同,同时遵守 SharePoint 中配置的访问控制。
在 SQL 工作表 中运行以下内容,利用从 SharePoint 引入的文件查询 Cortex Search 服务。选择数据库为应用程序实例名称,架构为 Cortex。
替换以下内容:
application_instance_name
:数据库和连接器应用程序实例的名称。user_emailID
:要筛选响应的用户的电子邮件 ID。
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
在 :ref:` Python 工作表 <label-snowsight_worksheets_create>` 中运行以下代码,利用从 SharePoint 引入的文件查询 Cortex Search 服务。确保将 snowflake.core
包添加到数据库中。
替换以下内容:
application_instance_name
:数据库和连接器应用程序实例的名称。user_emailID
:要筛选响应的用户的电子邮件 ID。
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())
在命令行界面中执行以下代码,利用从 SharePoint 引入的文件查询 Cortex Search 服务。您需要通过密钥对身份验证和 OAuth 来访问 Snowflake REST APIs。有关更多信息,请参阅 Rest API 和 使用 Snowflake 对 Snowflake REST APIs 进行身份验证。
替换以下内容:
application_instance_name
:数据库和连接器应用程序实例的名称。account_url
:您的 Snowflake 账户 URL。有关查找您的账户 URL 的说明,请参阅 查找账户的组织和账户名称。
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
}'
示例响应:
{
"results" : [ {
"web_url" : "https://<domain>.sharepoint.com/sites/<site_name>/<path_to_file>",
"chunk" : "Answer to the question asked."
} ]
}