|SharePoint|로 Cortex Search Service 쿼리하기¶
참고
|SharePoint|에는 `커넥터 약관<https://www.snowflake.com/legal/snowflake-connector-terms/>`_이 적용됩니다.
중요
SharePoint용 Snowflake Connector에 관심을 가져주셔서 감사합니다. 당사에서는 현재 대폭 개선된 환경을 제공할 차세대 솔루션에 집중하고 있습니다. 따라서 이 커넥터를 일반 공급 상태로 전환하는 것은 현재 제품 로드맵에 포함되어 있지 않습니다. 이 커넥터를 미리 보기 기능으로 계속 사용할 수 있지만, 향후 버그 수정 및 개선 사항에 대한 지원은 보장되지 않습니다. 새 솔루션은 :doc:`SharePoint용 Openflow Connector</user-guide/data-integration/openflow/connectors/sharepoint/about>`로 제공되며, 여기에는 더 나은 성능, 사용자 지정 기능, 향상된 배포 옵션이 포함됩니다.
Cortex Search 서비스를 사용하여 SharePoint 에서 채팅하거나 문서를 쿼리할 수 있는 채팅 및 검색 애플리케이션을 구축할 수 있습니다.
|SharePoint|를 설치하고 구성했으며 Sharepoint에서 콘텐츠가 수집되기 시작하면 Cortex Search Service를 쿼리할 수 있습니다. Cortex Search 사용에 대한 자세한 내용은 Cortex Search Service 쿼리하기 섹션을 참조하세요.
응답 필터링하기¶
특정 사용자가 SharePoint 에서 액세스할 수 있는 문서로만 Cortex Search Service의 응답을 제한하려면 Cortex Search를 쿼리할 때 ID 또는 사용자의 이메일 주소가 포함된 필터를 지정할 수 있습니다. 예를 들어, filter.@contains.user_ids 또는 filter.@contains.user_emails. 커넥터가 생성한 Cortex Search Service의 이름은 Cortex 스키마에서 search_service 입니다.
SQL 워크시트에서 다음 SQL 코드를 실행하여 SharePoint 사이트에서 수집한 파일로 Cortex Search Service를 쿼리하십시오.
다음을 바꿉니다.
application_instance_name: 데이터베이스 및 커넥터 애플리케이션 인스턴스의 이름입니다.user_emailID: 응답을 필터링하려는 사용자의 이메일 ID 입니다.your_question: 응답을 받고자 하는 질문입니다.number_of_results: 응답에서 반환할 결과의 최대 개수입니다. 최대값은 1,000이고 기본값은 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 에 입력할 수 있는 전체 값 목록은 다음과 같습니다.
열 이름 |
타입 |
설명 |
|---|---|---|
|
String |
SharePoint 사이트 문서 루트에서 파일에 대한 전체 경로입니다. 예: |
|
String |
브라우저에 원본 SharePoint 파일을 표시하는 URL. |
|
String |
항목이 가장 최근에 수정된 날짜 및 시간입니다. |
|
String |
문서의 텍스트 중 Cortex Search 쿼리와 일치하는 부분입니다. |
|
배열 |
문서에 액세스할 수 있는 Microsoft 365 사용자 IDs 의 배열입니다. 또한 문서에 할당된 모든 Microsoft 365 그룹의IDs사용자도 포함됩니다. 특정 사용자 ID 를 찾으려면, 사용자 가져오기 섹션을 참조하십시오. |
|
배열 |
문서에 액세스할 수 있는 Microsoft 365 사용자 이메일 IDs 의 배열입니다. 또한 문서에 할당된 모든 Microsoft 365 그룹의 사용자 이메일 IDs 도 포함됩니다. |
예: 인적 자원(HR) 정보에 대해 AI 어시스턴트에게 쿼리하기¶
Cortex Search를 사용하여 직원들이 온보딩, 행동 강령, 팀 프로세스 및 조직 정책과 같은 최신 버전의 HR 정보에 대해 채팅할 수 있도록 AI 어시스턴트에게 쿼리할 수 있습니다. 응답 필터를 사용하여 HR 팀원이 SharePoint 에 구성된 액세스 제어를 준수하면서 직원 계약을 쿼리할 수 있도록 허용할 수도 있습니다.
SQL 워크시트 에서 다음을 실행하여 SharePoint 에서 수집한 파일로 Cortex Search Service를 쿼리합니다. 데이터베이스를 애플리케이션 인스턴스 이름으로 선택하고 스키마를 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
Python 워크시트 에서 다음 코드를 실행하여 SharePoint 에서 수집한 파일로 Cortex Search Service를 쿼리합니다. 데이터베이스에 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())
Execute the following code in a command-line interface to query the Cortex Search service with files ingested from your SharePoint. You will need to authentication through key pair authentication and OAuth to access the Snowflake REST APIs. For more information, see REST API and 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."
} ]
}