DataverseにAI系の関数が実装され、キャンバスアプリからそれらを呼び出せるようになったので、使い方をメモ。
AI関数
AI関数はDataverseに実装された関数で、AIを使用した機能を呼び出すことができる。
- AIClassify:カテゴライズ
- AIExtract:エンティティの抽出 *開発中
- AIReply:返信の下書きを生成
- AISentiment:感情分析
- AISummarize:テキスト要約
- AITranslate :翻訳
各関数の説明と使用方法
それでは実際に各関数の使用例をご紹介。
事前準備:Environmentテーブルの追加
AI関数を呼び出す際は「Environment」テーブルを使用するので、事前準備としてアプリにこのテーブルを追加。
[データの追加]から[Environment]で検索して出てきたテーブルを追加すれば準備完了。


AIClassify
AIClassifyはテキストをカテゴリに分類する関数で、引数は以下の3つ。
- Categories : 分類するカテゴリの配列
- Text : 分類するテキスト
- AllowMultipleCategories : 複数のカテゴリ選択を許可するか *まだ使えない可能性あり
引数としてTextとCategoriesを渡して呼び出すと、


画像のように該当するカテゴリーの文字列を[Classification]列に入れて返してくれる。


※2024/3/22時点で「AllowMultipleCategories」はまだ実装が完了していない可能性あり。
trueに設定して「猫」「ねこ」両方にカテゴライズされそうなテキストを渡しても、先頭のカテゴリだけを返してくる。

trueに設定して「猫」「ねこ」両方にカテゴライズされそうなテキストを渡しても、先頭のカテゴリだけを返してくる。

AIReply
AIReplyは提供したメッセージに対する返信を作成してくれる関数。
引数は[Text]のみでこんな感じで呼び出してあげれば、


[PreparedResponse]列に返答の下書きを入れて返してくれる。


AISentiment
AISentimentは感情分析をしてくれる関数で、渡したテキストに対し「肯定(Positive)」「否定(Negative)」「中立(Neutral)」を返してくれる。
引数は[Text]のみで、こんな感じでポジティブな文章を送ってあげれば


[AnalyzedSentiment]列に分析結果(今回はPositive)を入れて返してくれる。


否定的な文章を入れればNegativeを、


中立的な文章を入れればNeutralを返してくれる。


AITranslate
AITranslateは翻訳を行ってくれるAI関数で、引数は以下の通り。
- Text:翻訳するテキスト
- TargetLanguage:翻訳する言語
対象のテキストと翻訳先の言語コードを指定すると


[TranslatedText]列に翻訳した文章を入れて返してくれる。


※TargetLanguageに入れる文字列はこちらを参照。
![]()

言語のサポート - Translator - Azure AI services
Azure AI 翻訳では、Neural Machine Translation (NMT) を利用したテキスト対テキストの翻訳で、以下の言語をサポートしています。
2024/3/22時点でAITranslateは日本リージョン未対応の可能性あり
日本リージョンに作成した環境でAITranslateを使用したところ、こんなエラーが発生。


環境生成時にUSリージョンを選択したところエラーは発生しなかったので、ひょっとしたら日本の環境ではまだ非対応かもしれない。
AISummarize
AISummarizeは送ったテキストを要約してくれる関数。
要約といっても単純に文章を要約するだけではないようで、こんな感じで文章を送ると、


画像のように、渡したテキスト自体の説明も含めて返してくれるよう。


引数[source]の使い道は不明
AISummarizeには引数として[source]も渡すことができるようだけど、この引数に入れた値がどう使われるかは現在のところ不明。


AIExtract
AIExtract関数は渡したテキストに含まれるエンティティ(人名、電話番号とか)を抽出してくれる関数。
※ここでのエンティティはCopilot Studioでのエンティティと同義のよう
![]()

エンティティの作成と使用 (ビデオを含む) - Microsoft Copilot Studio
エンティティを使用して、カスタム リスト、情報タイプのマッピング、プロアクティブなスロット入力を許可することにより、ボットの会話を合理化できます。
AIExtractだけは公式に「現在開発中」としっかり書かれているので、動作はまだ不安定なようで、こんな感じでわかりやすく人名を入れて送ってみても、


残念ながら何も返してくれなかった。


使い方が悪いだけかもしれないけど、開発が完了するのに期待。
コメント