Openflow Connector for SharePoint を設定する¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、Openflow Connector for SharePoint を設定する手順について説明します。
前提条件¶
Openflow Connector for SharePoint を確認してください。
Openflowを設定した ことを確認します。
認証情報を取得する¶
SharePoint 管理者として、以下のアクションを実行します。
Microsoft Graph アプリケーションに以下のMicrosoft Graph権限があることを確認します。
Sites.Selected: 指定したサイトのみにアクセスを制限します。
Files. SelectedOperations .Selected: 指定されたサイトのファイルのみにアクセスを制限します。
GroupMember .Read.All: SharePoint グループ権限の解決に使用します。
User. ReadBasic .All: Microsoft365ユーザーのメールの解決に使用します。
「ユーザーなしでアクセスする」の説明に従って、 SharePoint を構成して、 OAuth 認証を有効にします。コネクタは以下のMicrosoft Graph APIs を使用して SharePoint からデータをフェッチします。
Snowflakeに取り込みたいファイルやフォルダーがあるMicrosoft 365 SharePoint サイトのサイト URL、およびAzureまたはOffice 365アカウント管理者からの認証情報を取得します。
Snowflakeアカウントを設定する¶
Snowflakeアカウント管理者として、以下のタスクを手動で、または下記に含まれるスクリプトを使用して実行します。
新しいロールを作成するか、既存のロールを使用して データベース権限 を付与します。
タイプを SERVICE として、新しいSnowflakeサービスユーザーを作成します。
Snowflakeサービスユーザーに、前の手順で作成したロールを付与します。
ステップ2のSnowflake SERVICE ユーザーを key-pair auth で構成します。
Snowflakeではこの手順を強く推奨します。Openflowがサポートするシークレットマネージャ(AWS、Azure、Hashicorpなど)を構成し、公開キーと秘密キーを秘密ストアに格納します。
注釈
何らかの理由でシークレットマネージャを使用したくない場合は、組織のセキュリティポリシーに従って、キーペア認証に使用する公開キーと秘密キーファイルを保護する責任があります。
シークレットマネージャを構成したら、その認証方法を決定します。AWS 上では、Openflowに関連付けられた EC2 インスタンスロールが推奨されます。こうすることで、他の秘密を永続化する必要がなくなるからです。
Openflowで、右上のハンバーガーメニューから、このシークレットマネージャに関連付けられたParameter Providerを構成します。 Controller Settings » Parameter Provider に移動し、パラメーターの値をフェッチします。
この時点で、すべての認証情報を関連するパラメーターパスで参照することができるため、機密性の高い値をOpenflow内で永続化する必要はありません。
他のSnowflakeユーザーが、コネクタによって取り込まれた生の取り込みドキュメントやとテーブルへのアクセスを必要とする場合は(Snowflakeでのカスタム処理のためなど)、それらのユーザーにステップ1で作成したロールを付与します。
コネクタが使用するウェアハウスを指定します。まずは最小のウェアハウスサイズから始め、複製するテーブルの数や転送するデータ量に応じて異なるサイズを試してみてください。テーブル数が大きい場合は、通常、ウェアハウスのサイズを大きくするよりも、 マルチクラスターウェアハウス を使用した方がスケーリングが向上します。
設定例¶
--The following script assumes you'll need to create all required roles, users, and objects. --However, you may want to reuse some that are already in existence. --Create a Snowflake service user to manage the connector USE ROLE USERADMIN; CREATE USER <openflow_service_user> TYPE=SERVICE COMMENT='Service user for Openflow automation'; --Create a pair of secure keys (public and private). For more information, see --key-pair authentication. Store the private key for the user in a file to supply --to the connector’s configuration. Assign the public key to the Snowflake service user: ALTER USER <openflow_service_user> SET RSA_PUBLIC_KEY = '<pubkey>'; --Create a role to manage the connector and the associated data and --grant it to that user USE ROLE SECURITYADMIN; CREATE ROLE <openflow_connector_admin_role>; GRANT ROLE <openflow_connector_admin_role> TO USER <openflow_service_user>; --The following block is for USE CASE 2 (Cortex connect) ONLY --Create a role for read access to the cortex search service created by this connector. --This role should be granted to any role that will use the service CREATE ROLE <cortex_search_service_read_only_role>; GRANT ROLE <cortex_search_service_read_only_role> TO ROLE <whatever_roles_will_access_search_service>; --Create the database the data will be stored in and grant usage to the roles created USE ROLE ACCOUNTADMIN; --use whatever role you want to own your DB CREATE DATABASE IF NOT EXISTS <destination_database>; GRANT USAGE ON DATABASE <destination_database> TO ROLE <openflow_connector_admin_role>; --Create the schema the data will be stored in and grant the necessary privileges --on that schema to the connector admin role: USE DATABASE <destination_database>; CREATE SCHEMA IF NOT EXISTS <destination_schema>; GRANT USAGE ON SCHEMA <destination_schema> TO ROLE <openflow_connector_admin_role>; GRANT CREATE TABLE, CREATE DYNAMIC TABLE, CREATE STAGE, CREATE SEQUENCE, CREATE CORTEX SEARCH SERVICE ON SCHEMA <destination_schema> TO ROLE <openflow_connector_admin_role>; --The following block is for CASE 2 (Cortex connect) ONLY --Grant the Cortex read-only role access to the database and schema GRANT USAGE ON DATABASE <destination_database> TO ROLE <cortex_search_service_read_only_role>; GRANT USAGE ON SCHEMA <destination_schema> TO ROLE <cortex_search_service_read_only_role>; --Create the warehouse this connector will use if it doesn't already exist. Grant the --appropriate privileges to the connector admin role. Adjust the size according to your needs. CREATE WAREHOUSE <openflow_warehouse> WITH WAREHOUSE_SIZE = 'MEDIUM' AUTO_SUSPEND = 300 AUTO_RESUME = TRUE; GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO ROLE <openflow_connector_admin_role>;Copy
ユースケース1: ファイル取り込みのみにコネクタを使用¶
コネクタを使用して、次を行います。
取り込んだファイルにカスタム処理を実行する
Sharepointのファイルと権限を取り込み、最新の状態に保つ
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
プロセスグループパラメーターを入力する
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Sharepoint取り込みパラメーター、 Sharepoint宛先パラメーター、 Sharepointソースパラメーター の説明に従って、必要なパラメーター値を入力します。
Sharepointソースパラメーター¶
パラメーター |
説明 |
---|---|
SharePoint サイト URL |
URL または SharePoint コネクタがコンテンツを取り込むサイト |
SharePoint クライアント ID |
Microsoft Entraクライアント ID。クライアント ID とMicrosoft Entraでの探し方については、 アプリケーション ID (クライアント ID) をご参照ください。 |
SharePoint クライアントシークレット |
Microsoft Entraクライアントシークレット。Microsoft Entraにおけるクライアントシークレットとその探し方については、 証明書およびシークレット をご参照ください。 |
SharePoint テナント ID |
Microsoft Entraテナント ID。テナント ID とMicrosoft Entraでの探し方については、 Microsoft 365テナント ID を検索する をご参照ください。 |
Sharepointアプリケーション秘密キー |
PEM 形式で生成されたアプリケーション秘密キー。キーは暗号化されていない必要があります。 |
Sharepointサイトドメイン |
同期されたSharepointサイトのドメイン名。 |
Sharepointアプリケーション証明書 |
PEM 形式で生成されたアプリケーション証明書。 |
Sharepoint宛先パラメーター¶
パラメーター |
説明 |
---|---|
宛先データベース |
データが永続化されるデータベース。既にSnowflakeに存在している必要があります |
宛先スキーマ |
データが永続化されるスキーマ。既にSnowflakeに存在している必要があります |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS 上でフローを実行している場合は SNOWFLAKE_SESSION_TOKEN、 秘密キーを使ったアクセスを設定したい場合は KEY_PAIR |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのどちらかが定義されている必要があります。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Sharepoint取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Sharepointサイトグループ有効化 |
サイトグループ機能を有効にするかどうかを指定します。 |
SharePoint ソースフォルダー |
このフォルダーとそのすべてのサブフォルダーからサポートされているファイルがSnowflakeに取り込まれます。フォルダーパスは共有ドキュメントライブラリからの相対パスです。 |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。変換可能な形式については、 形式オプション をご参照ください。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視してイベントログに警告メッセージを記録し、他のファイルの処理を続行します。 |
Sharepointドキュメントライブラリ名 |
ファイルを取り込む SharePoint サイト内のライブラリ。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
フローを実行します。
プロセスグループを開始します。フローでは、Snowflake内部に必要なオブジェクトをすべて作成します。
インポートしたプロセスグループを右クリックし、 開始 を選択します。
ユースケース2: コネクタ定義を使用してファイルを取り込み、Cortexで処理を実行する¶
事前定義されたフロー定義を使用して、次を行います。
組織の SharePoint サイト内に、公開ドキュメント用の AI アシスタントを作成します。
AI アシスタントが、組織の SharePoint サイトで指定されたアクセス制御を順守できるようにします。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
取り込んだデータを格納するコネクタ用に、Snowflakeでデータベースとスキーマを作成します。最初のステップで作成したロールに必要な データベース権限 を付与します。ロールのプレースホルダーを実際の値で置き換え、以下の SQL コマンドを使用します。
CREATE DATABASE DESTINATION_DB; CREATE SCHEMA DESTINATION_DB.DESTINATION_SCHEMA; GRANT USAGE ON DATABASE DESTINATION_DB TO ROLE <CONNECTOR_ROLE>; GRANT USAGE ON SCHEMA DESTINATION_DB.DESTINATION_SCHEMA TO ROLE <CONNECTOR_ROLE>; GRANT CREATE TABLE ON SCHEMA DESTINATION_DB.DESTINATION_SCHEMA TO ROLE <CONNECTOR_ROLE>;
Copy
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
プロセスグループパラメーターを入力する
インポートしたプロセスグループを右クリックし、 Parameters を選択します。
Sharepoint Cortex Connectソースパラメーター、 Sharepoint Cortex Connect宛先パラメーター、 Sharepoint Cortex Connect取り込みパラメーター の説明に従って、必要なパラメーター値を入力します。
Sharepoint Cortex Connectソースパラメーター¶
パラメーター |
説明 |
---|---|
SharePoint サイト URL |
URL または SharePoint コネクタがコンテンツを取り込むサイト |
SharePoint クライアント ID |
Microsoft Entraクライアント ID。クライアント ID とMicrosoft Entraでの探し方については、 アプリケーション ID (クライアント ID) をご参照ください。 |
SharePoint クライアントシークレット |
Microsoft Entraクライアントシークレット。Microsoft Entraにおけるクライアントシークレットとその探し方については、 証明書およびシークレット をご参照ください。 |
SharePoint テナント ID |
Microsoft Entraテナント ID。テナント ID とMicrosoft Entraでの探し方については、 Microsoft 365テナント ID を検索する をご参照ください。 |
Sharepointアプリケーション秘密キー |
PEM 形式で生成されたアプリケーション秘密キー。キーは暗号化されていない必要があります。 |
Sharepointサイトドメイン |
同期されたSharepointサイトのドメイン名。 |
Sharepointアプリケーション証明書 |
PEM 形式で生成されたアプリケーション証明書。 |
Sharepoint Cortex Connect宛先パラメーター¶
パラメーター |
説明 |
---|---|
宛先データベース |
データが永続化されるデータベース。既にSnowflakeに存在している必要があります |
宛先スキーマ |
データが永続化されるスキーマ。既にSnowflakeに存在している必要があります |
Snowflakeアカウント識別子 |
データが永続化されるSnowflakeアカウント名(形式: [organization-name]- [account-name])。 |
Snowflake認証ストラテジー |
Snowflakeへの認証のストラテジー。可能な値: SPCS 上でフローを実行している場合は SNOWFLAKE_SESSION_TOKEN、 秘密キーを使ったアクセスを設定したい場合は KEY_PAIR |
Snowflake秘密キー |
認証に使用される RSA 秘密キー。RSA キーは、 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持つ必要があります。Snowflake秘密キーファイルまたはSnowflake秘密キーのどちらかが定義されている必要があります。 |
Snowflake秘密キーファイル |
Snowflakeへの認証に使用される RSA 秘密キーを含むファイル。 PKCS8 標準に従って書式設定され、標準的な PEM ヘッダーとフッターを持ちます。ヘッダー行は |
Snowflake秘密キーパスワード |
Snowflake秘密キーファイルに関連付けられたパスワード |
Snowflakeロール |
クエリ実行時に使用されるSnowflakeロール |
Snowflakeのユーザー名 |
Snowflakeインスタンスへの接続に使用するユーザー名 |
Snowflakeウェアハウス |
クエリの実行に使用されるSnowflakeウェアハウス |
Sharepoint Cortex Connect取り込みパラメーター¶
パラメーター |
説明 |
---|---|
Sharepointサイトグループ有効化 |
サイトグループ機能を有効にするかどうかを指定します。 |
SharePoint ソースフォルダー |
このフォルダーとそのすべてのサブフォルダーからサポートされているファイルがSnowflakeに取り込まれます。フォルダーパスは共有ドキュメントライブラリからの相対パスです。 |
取り込むファイルの拡張子 |
取り込むファイルの拡張子を指定するコンマ区切りリスト。コネクタは、可能であれば最初にファイルを PDF 形式に変換しようとします。それにもかかわらず、元のファイル拡張子に対して拡張子チェックが実行されます。変換可能な形式については、 形式オプション をご参照ください。指定されたファイル拡張子の一部がCortex Parse Documentでサポートされていない場合、コネクタはそれらのファイルを無視してイベントログに警告メッセージを記録し、他のファイルの処理を続行します。 |
Sharepointドキュメントライブラリ名 |
ファイルを取り込む SharePoint サイト内のライブラリ。 |
Snowflakeファイルのハッシュテーブル名 |
コンテンツが変更されたかどうかを判断するためにファイルのハッシュを格納するテーブルの名前。このパラメーターは通常、変更すべきではありません。 |
OCR モード |
Cortex PARSE_DOCUMENT 関数でファイルを解析するときに使用する OCR モード。値は |
Snowflake Cortex Search Serviceユーザーロール |
Cortex Search serviceの使用権限を割り当てられたロールの識別子。 |
プレーンを右クリックし、 Enable all Controller Services を選択します。
インポートしたプロセスグループを右クリックし、 Start を選択します。コネクタがデータの取り込みを開始します。
ユースケース3: コネクタ定義をカスタマイズする¶
コネクタ定義をカスタマイズして、次を実行します。
Document AI で、取り込んだファイルを処理します。
取り込んだファイルにカスタム処理を実行します。
コネクタを設定する¶
データエンジニアとして、以下のタスクを実行してコネクタを構成します。
コネクタをインストールする¶
Openflowの概要ページに移動します。 Featured connectors セクションで、 View more connectors を選択します。
Openflowのコネクタページでコネクタを探し、 Add to runtime を選択します。
Select runtime ダイアログで、 Available runtimes ドロップダウンリストからランタイムを選択します。
Add を選択します。
注釈
コネクタをインストールする前に、コネクタが取り込んだデータを格納するためのデータベースとスキーマをSnowflakeで作成したことを確認します。
Snowflakeアカウント認証情報でデプロイメントを認証し、Snowflakeアカウントへのランタイムアプリケーションのアクセスを許可するよう求められたられたら、 Allow を選択します。コネクタのインストールプロセスは数分で完了します。
Snowflakeアカウント認証情報でランタイムを認証します。
コネクタプロセスグループが追加されたOpenflowキャンバスが表示されます。
コネクタを構成する¶
コネクタ定義をカスタマイズします。
以下のプロセスグループを削除します。
Check If Duplicate Content
Snowflake StageとParse PDF
Snowflake Cortexを更新する
(オプション)Microsoft365グループを処理する
Process SharePoint Metadata
プロセスグループの出力にカスタム処理を添付します。各フローファイルは、1つの SharePoint ファイルの変更を表します。
プロセスグループのパラメーターを入力します。ユーズケース1の場合と同じ手順に従ってください。コネクタ定義を変更した後、すべてのパラメーターが必要になるとは限らないことに注意してください。
フローを実行します。
プロセスグループを開始します。フローでは、Snowflake内部に必要なオブジェクトをすべて作成します。
インポートしたプロセスグループを右クリックし、 開始 を選択します。
Sharepointサイトグループの有効化¶
サイトグループ用Microsoft Graphアプリケーション¶
認証情報を取得する で指定したステップに加えて、以下を実行します。
Sites.Selected SharePoint 権限を追加します。
注釈
Microsoft Graphと SharePoint の両方の権限に
Sites.Selected
が表示されているはずです。キーペアを生成 します。あるいは、以下のコマンドを実行して、
openssl
で自己署名証明書を作成することもできます。openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Copy注釈
上記のコマンドでは、生成された秘密キーは暗号化されません。暗号化キーを生成したい場合は、
-nodes
引数を削除します。Microsoft Graphアプリケーションに証明書 を添付します。
Cortex Search serviceをクエリする¶
Cortex Search サービスを利用して、チャットや検索アプリケーションを構築し、 SharePoint のドキュメントとチャットしたり、クエリしたりすることができます。
コネクタをインストールして構成し、Sharepointからコンテンツの取り込みを開始すると、Cortex Searchサービスをクエリできます。Cortex Searchの使用に関する詳細については、 Cortex Search Serviceをクエリする をご参照ください。
応答をフィルターする
Cortex Searchサービスからの応答を特定のユーザーが SharePoint でアクセスできるドキュメントに制限するには、Cortex Searchのクエリ時に、そのユーザーのユーザー ID またはメールアドレスを含むフィルターを指定することができます。例えば、 filter.@contains.user_ids
または filter.@contains.user_emails
のようにします。コネクタによって作成されるCortex Searchサービスの名前は、スキーマ Cortex
の search_service
です。
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
に入力できる値の完全なリストを以下に示します。
列名 |
型 |
説明 |
---|---|---|
|
String |
Sharepointサイトドキュメントルートからのファイルへのフルパス。例: |
|
String |
オリジナルのSharepointファイルをブラウザーで表示する URL。 |
|
String |
項目の最新変更日時。 |
|
String |
Cortex Searchのクエリにマッチしたドキュメントのテキスト。 |
|
配列 |
ドキュメントにアクセスできる Microsoft 365ユーザー IDs の配列。ドキュメントに割り当てられているすべてのMicrosoft 365グループのユーザー IDs も含まれます。特定のユーザー ID を探すには、 ユーザーを取得する をご参照ください。 |
|
配列 |
ドキュメントにアクセスできるMicrosoft 365ユーザーのメール IDs の配列。ドキュメントに割り当てられているすべてのMicrosoft 365グループのユーザーメール IDs も含まれます。 |
例: AI アシスタントに人事(HR)情報をクエリする
Cortex Searchを使用して、オンボーディング、行動規範、チームプロセス、組織ポリシーなど、 HR の最新バージョンの情報とチャットする従業員向けの AI アシスタントをクエリできます。応答フィルターを使用すると、 SharePoint で構成したアクセス制御を順守しながら、 HR チームメンバーに従業員契約のクエリを許可することもできます。
SharePoint から取り込んだファイルでCortex Searchサービスをクエリするために、 SQL ワークシート で以下を実行します。データベースをアプリケーションインスタンス名として、スキーマを 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サービスをクエリします。データベースに 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サービスをクエリします。Snowflake REST APIs にアクセスするには、キーペア認証と OAuth による認証が必要です。詳細については、 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."
} ]
}