|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())
명령줄 인터페이스에서 다음 코드를 실행하여 SharePoint 에서 수집한 파일로 Cortex Search Service를 쿼리합니다. 키 페어 인증과 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."
} ]
}