こんにちは、向井です。
Copilot Studio で Google Drive 上にあるファイルを回答ソースにしたチャットボットが作成できるか検証してみましたので、検証結果をこちらにメモします。
今回検証した実装方法はざっくり以下のような流れです。
・Power Automate を使用してGoogle Drive 上のファイル情報を取得し、
・AI Builder のOCRでファイルコンテンツをテキスト化し、
・Copilot Studio のカスタムデータソースとして使用する
あくまで検証結果の共有ですので、ご了承ください!
結論
先に結論を書いておくと、今回なんとか、Google Drive 上のファイルを参照して生成AIに回答を作成させることはできましたが、現時点では実運用をするためにはかなり工夫が必要そうだという印象でした。
正直、Google Drive にあるファイルをSharePoint にコピーできるならそれが一番楽だと思います。
今回はPower Platformの範囲内で検証しましたが、Azureと連携すればもう少しうまくいくかもしれません。
検証内容
トピックの構成
Conversational boosting のトピックを編集して以下のようなトピックを作成しました。
フローの呼び出し
「生成型の回答を作成する」の前にPower Automate のフローを呼び出すアクションを追加しています。
このフローからは、ファイルコンテンツ、ファイルパス、ファイル名を取得しています。(いずれも文字列)
※フローの中身は後述します。
それぞれの出力はグローバルに設定しておきます。
こうすることで、後続のアクションの計算式内で変数を呼び出せるようになります。
回答の作成
「生成型の回答を作成する」ではカスタムデータソースを指定できます。
以下のdocsを参考に、フローから取得したファイルコンテンツ、ファイルパス、ファイル名をテーブル型式にして設定しています。
生成型の回答にカスタム データ ソースを使用する
グローバル変数を使用して以下のように書きました。
[{Content: Global.content,
ContentLocation: Global.path,
Title: Global.Title}]
テーブルの列は、ソースとなる文字列、ファイルの場所、ファイルの名前の3つです。
テーブルの行が、それぞれのファイルになるイメージなので、たくさんファイルがある場合は結構大変そうです。。
今回はテストなので、ファイルは一つだけです。
使用したフロー
フローの構成はざっくりと、Google Drive 上のファイルを取得して、AI Builder でファイルのテキスト認識(OCR)をして、必要な情報をCopilot Studio に返すという感じになっています。
テストなので、ファイルはパスで直接指定しましたが、何らかの方法で、ボット側でファイルのパスかIDを取得してフロー側に渡すような構成にすると少し実用的になりそうです。
今回はPDFを指定しています。
AI Builder 以降のアクションは以下のDocsを参考に作成しました。
Power Automate でテキスト認識の事前構築済みモデルを使用する
動作確認
Copilot Studio でテストをするとそれらしき回答が得られました。
回答にかかった時間は1分弱でした。
今回は短いドキュメントだったので、比較的早く回答が得られましたが、長いドキュメントだと、フロー側の処理が終わる前にCopilot Studio がタイムアウトしてしまったり、ソースの文字数が多すぎてエラーになったりする懸念があります。
考察
カスタムデータをソースにする場合のポイント
・テーブル型で指定する
・回答のソースとする部分はテキスト形式にしておく必要がある
回答の作成にフローを使用するポイント
・フローの実行時間が長くなりすぎないように工夫する
・Copilot Studio に返す値が長くなりすぎないように工夫する(特にコンテンツ部分)