松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第11回
画像を送信すると含まれる文字をAI Builderが書き起こして返信してくれるボット
ノーコード+AI BuilderでLINEボットを作ってみよう《ワークフロー作成編》
2022年02月22日 08時00分更新
1-2-4. アクションの作成:「AI Builder」コネクタ
AI Builderを利用してLINEから送信された画像を解析します。
検索窓に「AI Builder」と入力し、一覧に表示される「AI Builder」コネクタをクリックします。
アクション一覧の中から「画像やPDFドキュメントのテキストを認識する」をクリックします。
初めてAI Builderコネクタを利用する場合、サインインを求められます。AI Builderが利用可能なアカウントでサインインしてください。
AI Builderの画像認識対象とする「画像」には、HTTPコネクタの動的なコンテンツから「本文」を選択します。
1-2-5. アクションの作成:「Apply to each」アクションの入れ子
「画像やPDFドキュメントのテキストを認識する」コネクタの結果を取り出します。「アクションの追加」をクリックして、「Apply to each」アクションを追加します。前のApply to eachコネクタの枠内に、もう1つApply to eachコネクタの枠ができる(入れ子になる)形となります。
先ほどの「1-2-2. アクションの作成:「Apply to each」コネクタ」と同様に、検索窓に「コントロール」と入力し、一覧に表示される「コントロール」をクリックします。
アクション一覧の中から「Apply to each」をクリックします。なお、同じワークフロー内で2つ目の「Apply to each」アクションになるので、自動で「Apply to each2」という名前になります。
「以前の手順から出力を選択」には、「画像やPDFドキュメントのテキストを認識する」の動的なコンテンツの中から「results」をクリックします。
次のコネクタもApply to each2内に作成するので、Apply to each2の枠内にある「アクションの追加」をクリックします。
ここにもう1つ、「Apply to each」アクションを追加します。先ほどと同様に「コントロール」コネクタを検索し、そこから「Apply to each」アクションを選択すると、「Apply to each3」という名前でアクションが追加されます(枠はさらに入れ子状になります)。
Apply to each3の「以前の手順から出力を選択」には、「画像やPDFドキュメントのテキストを認識する」の動的なコンテンツの中から「lines」をクリックします。
1-2-6. アクションの作成:「変数」コネクタ
「画像やPDFドキュメントのテキストを認識する」アクションによって、画像に写っているテキストが抽出されました。その結果を、先に初期化しておいた変数「Extracted text」に格納します。
その処理は「Apply to each3」の中で行うので、Apply to each3の枠内にある「アクションの追加」をクリックします。
変数へのテキストの格納には「変数」コネクタを使います。検索窓に「変数」と入力し、一覧に表示される「変数」コネクタをクリックします。
「Extracted text」変数は文字列型の変数として初期化してあります。ここではアクション一覧の中から「文字列変数に追加」をクリックします。
「文字列変数に追加」アクションは、以下の内容で設定します。
- 名前:「1-2-1. アクションの作成:「変数」コネクタ」で作成した変数名を選択(今回は「Extracted text」)
- 値:「画像やPDFドキュメントのテキストを認識する」コネクタの動的なコンテンツ「テキスト」を選択
1-2-7. アクションの作成:「HTTP」コネクタ
画像からテキストを抽出できたので、最後にその結果をLINEにリプライする処理を追加します。
「1-2-2. アクションの作成:「Apply to each」コネクタ」で作成した、1つめのApply to eachの枠内にある「アクションの追加」をクリックします。上でも確認しましたが、合計3つのApply to eachが入れ子になっているので、アクションを追加する場所を間違えないようにしてください。
検索窓に「HTTP」と入力し、「HTTP」コネクタを選択し、アクション一覧から「HTTP」をクリックします。
このアクションには以下の設定を入力します。
- 方法:「POST」を選択
- URI:「 https://api.line.me/v2/bot/message/reply 」を入力
- ヘッダー:左側に「Authorization」を入力。その右側は「Bearer(半角スペース)」に続けて、「0. LINEチャネルアクセストークンの発行」で表示されたチャネルアクセストークンのテキストをコピー&ペースト
- 本文:以下のJSONをコピー&ペーストします。
{
"messages": [
{
"text": "@{variables('Extracted text')}",
"type": "text"
}
],
"replyToken": @{items('Apply_to_each')?['replyToken']}
}
2. ワークフローの保存
以上でワークフローの作成は完了です。最後にワークフローを保存します。
- 「無題」になっている部分をクリックしワークフローの名前を変更(今回は「LINEボット」)
- 「保存」をクリック
3. LINE側のWebhook設定を変更
ワークフローを保存すると、「1-1. トリガーの作成」の段階では空欄になっていた「HTTP要求の受信時」コネクタの「HTTP POSTのURL」が設定されます。このURLをコピーして、LINE側にコピー&ペーストします。
Power Automateのデザイナー画面で上記のURLをコピーしたら、LINE Developersのページに戻ります。
タブメニューの「Messaging API設定」をクリックします。
下にスクロールすると「Webhook設定」があるので、以下のように設定します。
- Webhook URL:Power Automateのトリガーから「HTTP POSTのURL」をペーストします。
- Webhookの利用:図のように「オン」にします。
LINEのWebhook設定が完了したら、実際にLINEのトークルームから写真を送信してみてください。
最後に
LINE Developersの設定やワークフロー内の「Apply to each」コネクタの入れ子など慣れるまではわかりにくいところもあると思いますが、1行もコードを書かずにAI機能を含んだLINEボットを作成することができました。ぜひ色々と試してみてください。
この連載の記事
-
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 -
第33回
Team Leaders
Power AutomateのCopilotは日本環境でも使えるか? 試してみました -
第32回
TECH
Power Automateに大きな変化!「モダンデザイナー」を使ってみよう -
第31回
TECH
ChatGPTのPower Automateプラグインで、ChatGPT側からフローを実行する -
第30回
TECH
AIがメールで届いた請求書の内容を自動抽出する仕組みを作ってみよう -
第29回
TECH
DeepLコネクタ公開! 多言語自動翻訳の仕組みをノーコードで作ろう -
第28回
TECH
ChatGPTをMicrosoft Teamsから使う仕組みをノーコードで作ろう -
第27回
TECH
WordのテンプレートとPower Automateで定型文のPDFファイルを自動作成しよう -
第26回
TECH
「文字列検索」コネクタを使って、受信メールから顧客リストを自動作成する - この連載の一覧へ