AI Builder でテキストからキーワードを抽出する


# はじめに

Copilot Studio でデータベースから情報を検索して回答を返答するような AI エージェントを作成する際、利用者が入力した質問をキーワードにしたい場合があると思います。

この際、AI Builder が使って実現する方法を紹介します。

# [テキストからキー フレーズを抽出する] アクションを利用する

例えば、以下のように、Copilot から質問文を受け取り、[テキストからキーフレーズを抽出する] アクションで質問からキーワードを抽出することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e6fedde3-c6c8-4630-9124-c55397ab84f8.png)

※記事執筆時点で、Power Automate の新しいデザイナーで上手く Copilot のアイコンが表示されないため、以降、クラシックデザイナーに変更します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/277a7e43-c36f-4844-b0c8-70c6c8b5287d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e821c60d-9199-40b1-8a04-7703871aec3c.png)

実行すると以下のようになります。「パソコンの電源が入らない場合はどうすればいいですか？」という質問から、「パソコン」と「電源」というキーワードが抽出されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/963e92cb-95be-4727-a2ef-602efc94fa25.png)

AI Builder のアクションの結果は配列形式のため、一度、「phrase」列だけ取り出して、最終的に以下のようにスペースで区切った一つの文字列にしてあげます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0763e62f-8e28-4bc9-a99d-6ee9cffed1a3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/c9fef1cf-78da-4c93-aa80-99d3781ccde9.png)

そして、その結果を検索キーワードとして利用します。以下は、Dataverse のテーブルを検索する例です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f7350c35-a756-4403-9332-4602673a49ac.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/200cc285-8093-4385-bf24-9cf77a690bc9.png)

しかし、質問次第では上手く検索キーワードを抽出できない場合もあります。以下の場合、Power Automate for desktop の情報を上手く抽出できていないようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/efb30992-60ab-4fe7-b330-3e3549f38d5e.png)

※タイミングにもよるかもしれません。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/68a9c367-5482-4527-b166-013c0713bbb1.png)

想定される質問でテストを重ねた結果、こちらの方法では上手く検索キーワードを抽出できなさそうな場合は、もう一つのアプローチを検討ください。

# プロンプトを利用する

## プロンプトの作成

まず、テキストからキーワードを抽出するプロンプトを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/6d27495d-dd5c-4ee4-936d-f1fec3e83097.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/7174e09c-013c-4fe0-acdd-baa1ff061091.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/1896c27f-4c17-442a-9c22-338066527281.png)

出力を JSON 形式にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/11c3f944-532f-4ad4-941f-073b22a9d762.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b126ad1c-80b8-4e7b-bb3a-75c550f2a704.png)


```
[
  {
    "phrase": "キーワード1"
  },
  {
    "phrase": "キーワード2"
  },
  {
    "phrase": "キーワード3"
  }
]
```
テストしてみます。いい感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f1e36c6c-3e01-4cd6-b80d-db8d9b07d2ee.png)

プロンプトを保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/4847f83a-45b8-4272-a703-487ff048bbbd.png)

## Power Automate からプロンプトを利用する

以下のようにして、Power Automate からプロンプトを利用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/389c8a65-80e5-445b-b3e4-54b27f971d85.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/13412952-9138-456b-8eaf-a5e7cb065e04.png)

一つ目のやつと同じような感じにするのであれば、プロンプトの出力結果を以下のようにして一旦配列変数に格納し、[結合] アクションを実行し、さいしゅうてきにスペースで区切った一つの文字列にしてあげます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/2f432d63-3a96-4fc8-a16d-90ccd330b6c8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/0cc0fbd3-a6aa-471e-8dc7-4c68493a9fb7.png)

※なお、[Apply to each] アクションを避けたい場合は、以下のように、選択アクションと結合アクションを使います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/e2b6f9d6-4187-4867-83ab-bbd60b768e58.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/6b815d6a-13be-4903-ba2a-8b503d43a79a.png)

# まとめ

今回は、AI Builder を使って、質問から検索キーワードを抽出するアプローチについて整理しました。
Copilot Studio でデータベースから情報を検索して回答を返答するような AI エージェントを作成する際など、質問から情報を検索するようなものを Power Platform で作成する際の参考になれば幸いです。