見出し画像

Azure Cognitive SearchのデータソースにSharePointを追加する方法

こんにちは、アイシーティーリンクの国分です。
今日は今までの投稿と趣向を変えてAI関連の話をしようと思います。

はじめに

弊社では社内のTeamsとAzure OpenAIを使って社内環境でChatGPTを利用できるようにしています。

利用時に出てきたリクエストとして、「SharePointのデータを検索してほしい」というものがありました。そこでAzure OpenAI+Azure Cognitive Searchを使ってSharePointのデータを検索する方法を調査しました。

Azure Cognitive Searchとは

「Azure Cognitive Search」とは、コンピューターの中で、膨大なデータから必要な情報を探し出したり、自然言語での検索を可能にするサービスのことです。たとえば、大学の図書館のシステムで本を探すときや、ショッピングサイトで商品を検索するときに役立ちます。Azure Cognitive Searchは、検索に必要な情報の検証や解析、インデックス作成などを自動化するため、簡単かつ迅速にデータを検索することができます。また、検索されたデータを使って、ビジネスの分析や意思決定にも役立ちます。

Azure Cognitive Search作成時の注意点

Azure Cognitive Searchは非常に高額なSaaSとなっています。
ご利用は計画的に。

Azure Cognitive Search価格

Azure Cognitive SearchのデータソースにSharePointを追加する

注意事項

2023年6月14日時点ではAzure Cognitive SearchのデータソースにSharePointを追加する方法はプレビュー扱いとなっています。今後正式リリースされた場合には、本手順はおそらく不要になります。

参考URL

作業手順

  • エンタープライズアプリケーションを作成
    SharePointにアクセスするためにGraph APIを利用します。エンタープライズアプリケーションにてGraph APIのアクセス許可を行います。

    アプリケーション登録の画面にて以下の設定が必要となります。
    ・シングルテナントを選択すること
    ・リダイレクトURIは設定不要

アプリケーションの登録
  • エンタープライズアプリケーションのアクセス許可
    Files.Read.AllSites.Read.Allのアクセス許可を追加します。

アクセス許可設定
  • 認証設定1
    [認証] タブをクリックします。[パブリック クライアント フローを許可する]を [はい] に設定してから、[保存] を選択します。

認証設定1
  • 認証設定2
    [+ プラットフォームを追加] 、 [モバイル アプリケーションとデスクトップ アプリケーション] の順に選択し、https://login.microsoftonline.com/common/oauth2/nativeclient のチェック ボックスをオンにします。

認証設定2
  • クライアントシークレット設定
    作成したアプリを外部から使用する際の認証のためにクライアントシークレットを設定します。

クライアントシークレット設定
  • データソースの作成
    Azure Cognitive SearchのデータソースとしてSharePointを設定します。Azureポータルからの追加はできないため、APIをキックしてデータソースを作成します。詳細は以下のURLに記載されています。Chromeの拡張機能を利用してAPIをキックしました。

Azureポータルから作成不可
データソース作成API実行画面
  • インデックスの作成
    インデックスの作成についてもAPIをキックして作成を行います。

インデックス作成API実行画面
  • インデクサーの作成
    インデクサー作成については2回APIをキックする必要があります。
    1回目については必ずエラーとなり、エラー文の中にコードが含まれています(下記赤枠部分)。2回目のAPI実行時に1回目のコードを入力することでインデクサーの作成ができます。

インデクサー作成API実行画面(1回目 )

さいごに

Azure Cognitive SearchのデータソースにSharePointを追加する方法を紹介させていただきました。参考になれば幸いです。今後AI関連についての技術は飛躍的に向上すると考えているので、時代においていかれないよう日々精進していきます。


この記事が気に入ったらサポートをしてみませんか?