【Microsoft×生成AI連載】寺澤です。今回はMicrosoft Copilot StudioでAzure OpenAIに接続して回答を生成してみました。
Microsoft Copilot Studioでは「生成型の回答」があり、Azure OpenAI+Azure AI Searchをデータソースとして設定することが可能です。今回はその実装した方法を紹介します。
これまでの連載
これまでの連載記事一覧はこちらの記事にまとめておりますので、過去の連載を確認されたい方はこちらの記事をご参照ください。
前提
今回はAzure OpenAIとAzure AI Searchの作成、モデルのデプロイ、インデックスの作成は既に完了していることを前提とします。
また2024年8月6日時点での情報になります。
デフォルト環境で実装
PowerPlatformのデフォルト環境で実装する方法を記載します。
AzureポータルでAzure OpenAIのリソースを開き、[概要]から「Azure OpenAI Studioに移動する」を選択します。
Azure OpenAI Studioが開いたら、[チャット]>[データを追加する]から「+データソースの追加」を押します。
検索対象のインデックスを選択肢から入力します。また「必要に応じてインデックスデータのフィールドのマッピング」を行います。入力が完了したら次へを押します。
※「ベクトル検索をこの検索リソースに追加します」はベクトル検索をする設定になりますが、2024年8月7日時点ではCopilot Studioでベクトル検索はサポートされていません。
検索の種類で「キーワード」と「セマンティック」が選択可能です。今回はキーワード検索を行うため、キーワードを選択します。
接続を認証する方法として、システム割り当てマネージド ID または API キーを選択可能です。
- システム割り当てマネージド ID
- 認証は自分の ロールの割り当てに基づいて行われます
- 適切なロールを割り当てている場合はマネージドIDを選択します
- API キー
- システムによって API キーが自動的に設定され、Azure AI 検索、Azure OpenAI、Azure Blob Storage のリソースに接続できるようになります
今回はAPIキーを選択します。次へを押し、認証が終わると検索の準備が完了です。
一度インデックスに登録されている内容を検索し、回答が返ってくることを確認します。
[配置先]を押し「Copilot Studioでの新しいコパイロット(プレビュー)」を選択します。
下記のメッセーが表示され、問題ないことを確認したら「Copilot Studioで続行」を押します。
ベクトル検索を選択している場合、下記のようにサポートされていない旨のメッセージが表示されます。※2024年8月7日時点
Copilotの作成画面が開かれるので、必要な情報を入力し「作成」を押します。
これから先ほどのAzure OpenAI+Azure AI Searchの検索ができるように設定します。[トピック]の「Conversational boosting」を選択します。
[生成型の回答を作成する]の「プロパティ」を選択します。
表示された画面の[クラシック データ]>[独自のデータを利用した Azure OpenAI Service]の「+つながりの追加」を押します。
「Azure OpenAI」という接続が表示されるので選択します。
[独自のデータを利用した Azure OpenAI Service]の「接続のプロパティ」を押します。
[全般]でAzure OpenAIの情報を入力します。「展開」にはチャットGPTモデルの展開名、「APIバージョン」は2023-06-01-previewを入力します。
※APIバージョンは必要に応じて変更してください。「応答が含むトークンの最大数」、「温度」、「トップP」、「停止シーケンス」は回答に影響するパラメータのため、適宜変更してください。
デプロイ名はAzure OpenAI Studioの[デプロイ]で確認ができます。
[モデルデータ]はAzure AI Searchのインデックスの情報を入力します。「+追加」を押して必要な情報を入力します。「+追加」を設定するまではエラーが表示されます。
データソースに関する設定を行います。
- インデックス名
- 検索対象のAzure AI Searchのインデックス名
- 件名、URL、ファイル名、コンテンツデータ、ベクトルデータ
- インデックスの該当の列名
- 埋め込み展開名
- ベクトル化に使用するモデルの展開名
- セマンティック検索の構成
- インデックスのセマンティック構成の名前
- クエリの種類
- simple(キーワード検索)
- semantic(セマンティック検索)
- システムメッセージ
- 返答時の指示
- データ コンテンツの制限応答、厳格度、上位N件のドキュメント
- 検索結果に影響するため適宜変更
セマンティック構成を確認する際は、まず、Azureポータルの[Azure AI Searchのリソース]>[インデックス]で対象のインデックスを選択します。
[セマンティック構成]の名前で確認できます。
入力後、保存を押すと設定完了です。
最後に、インデックスに含まれている情報を質問して、回答が返ってくれば完了です。
参照:
- データを Azure OpenAI に接続して生成型の回答を作成する (プレビュー) - Microsoft Copilot Studio | Microsoft Learn
- Azure OpenAI Service で独自のデータを使用する - Azure OpenAI | Microsoft Learn
デフォルト環境以外で実装
ここまで紹介した「Azure OpenAI StudioからMicrosoft Copilot Studioへデプロイする方法」は、PowerPlatformのデフォルト環境でのみの実装しかできません。
デフォルト環境以外で実装するには、追加した環境でMicrosoft PowerAppsを開き、Azure OpenAIの接続を作成する必要があります。
手順
Microsoft PowerAppsを開き、右上の[環境]から対象の環境を選択します。
[接続]の「+新しい接続」を押します。
Azure OpenAIを検索し表示された「Azure OpenAI(プレビュー)」を選択します。
表示された画面で必要な情報を入力し、作成を押します。
- Azure OpenAI リソース名、Azure OpenAI API キー
- はAzure OpenAIの情報
- Azure Cognitive 検索エンドポイント URL、Azure Cognitive 検索 API キー
- Azure AI Searchの情報
「Azure OpenAI リソース名」はAzureポータルの[Azure OpenAIのリソース]の画面左上で確認可能です。
「Azure OpenAI API キー」は[キーとエンドポイント]のキー1で確認できます。
「Azure Cognitive 検索エンドポイント URL」はAzureポータルの[Azure AI Searchのリソース]の「URL」で確認可能です。
「Azure Cognitive 検索 API キー」は[キー]のプライマリ管理者キーで確認可能です。
Azure OpenAI接続が作成されます。このMicrosoft PowerApps上のAzure OpenAIの接続は「デフォルト環境で実装」の際にAzure OpenAI Studioから「Copilot Studioでの新しいコパイロット(プレビュー)」を押したときに作成されるものと同じものです。
「Copilot Studioでの新しいコパイロット(プレビュー)」を押した際にはデフォルト環境に接続が作成されます。
Microsoft Copilotを開き、[環境]から先ほどAzure OpenAIの接続を作成した環境を選択します。
[作成]から「新しいコパイロット」を選択します。
必要な情報を入力し「作成」を押します。
その後の手順は「デフォルト環境で実装」と同じのため、そちらをご覧ください。
おわりに
今回は、Microsoft Copilot Studioのデフォルト環境と、それ以外の環境の「生成型の回答」でAzure OpenAIをデータソースに設定する方法を紹介しました。
RAGの構成やチャット画面を自動で作成してくれるため、実装は非常に容易です。
一方、2024年8月7日時点ではキーワード検索とセマンティック検索のみのため、ベクトル検索やハイブリッド検索は利用できません。
そのため、もしMicorosoft Copilotでベクトル検索を実装する必要がある場合、ある程度作りこむ必要があり、時間がかかってしまいます。
それらを効率よくするためにも、「生成型の回答」でベクトル検索やハイブリッド検索がサポートされることを期待したいです。