松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第29回
Microsoft Teamsに投稿されたメッセージを日本語に翻訳する
DeepLコネクタ公開! 多言語自動翻訳の仕組みをノーコードで作ろう
2023年08月21日 08時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。
数多くの言語に対応し、自然で流暢な翻訳文を出力すると評判の自動翻訳サービス「DeepL」。そのAzure Logic Apps/Power Automate用公式コネクタが公開(プレビューリリース)されました。そこで今回は、「Microsoft Translator」コネクタとDeepLコネクタを組み合わせて、多言語のメッセージを自動翻訳する仕組みをノーコードで作成してみましょう。
1. 事前準備
今回はDeepLコネクタを利用し、「Microsoft Teams」に投稿された多言語のメッセージを日本語に自動翻訳するワークフローを作成します。なお、今回の記事ではPower Automateで説明しますが、Logic Apps/Power Automateのどちらでも利用できます。
1-1. Microsoft Teamsのチャネル作成
まずはTeamsに、DeepLの翻訳結果を投稿するためのチャネルを1つ作成しておきます。今回は「DeepL翻訳」というチャネル名にしました。
1-2. DeepL APIの準備
「DeepL」コネクタを使用するには、「DeepL API Free(無料版)」または「DeepL API Pro(有料版)」のサブスクリプションが必要です。今回は、1か月に50万文字まで翻訳できるFreeのAPIを利用します。
DeepL APIページにアクセスします。
「無料で登録する」をクリックして、まずはメールアドレスとパスワードを登録します。
次の画面では、名前、住所、クレジットカード情報※注など指示に従って入力していきます。
※注:無料のFreeプランでも、APIの不正利用を防ぐためにクレジットカード情報の登録が必要となっています。また、カード登録の段階で「カードが拒否されました。 (Error Code: WHWSL5)」というエラーが出る場合があります。これはカード会社のセキュリティチェックにより、第三者による不正使用ではないかの確認のため、DeepL APIでのカード利用が制限されている状態です。このエラーコードが出た場合は、カード会社へ問い合わせをし、一時的な制限解除を依頼してください。
最後に、上図のような「確認」ページが表示されます。利用規約などを確認したうえで「無料で登録する」をクリックすると、DeepL APIが利用できるようになります。
1-3. DeepL 認証キーの確認
DeepL APIページの右上に、先ほど登録したメールアドレスが表示されています(表示されていない場合は「ログイン」してください)。
メールアドレスをクリックすると、プルダウンメニューに「アカウント」の項目が表示されるのでクリックします。
アカウント情報が表示されるページの下方に、DeepL APIの認証キーが表示されています。この認証キーはDeepLコネクタの接続に利用します。注意書きにもあるとおり、他人には公開しない(知られない)ように気をつけてください。
2. ワークフロー全体図
今回作成するワークフローの全体像は上図のとおりです。
Microsoft Teamsの特定チャネル(DeepL翻訳チャネル)に新しいメッセージが投稿された際に、メッセージが日本語以外の言語であればDeepLで自動翻訳を行い、翻訳したメッセージをチャネルに投稿する仕組みです。
2-1. トリガーの設定
まずはMicrosoft Teamsの指定のチャネルに新しいメッセージが投稿されたら、それをトリガーとしてワークフローが起動するように設定します。
検索窓に「Teams」と入力して、「Microsoft Teams」コネクタを選択します。トリガー一覧から「チャネルに新しいメッセージが追加されたとき」をクリックします。
(1)チーム:一覧から該当するチームを選択
(2)チャネル:「1-1. Microsoft Teamsのチャネル作成」で作成したチャネル名を選択
2-2. アクションの設定:Htmlからテキスト
Microsoft Teamsから送信されたメッセージはHTML形式になっているので、次のアクションでテキスト形式に変換します。
検索窓に「HTML」と入力して「Content Conversion」コネクタを選択し、アクション一覧から「Html からテキスト」をクリックします。
「コンテンツ」には、動的なコンテンツから「メッセージ 本文 コンテンツ」を選択します。
2-3. アクションの設定:言語の検出
テキスト形式に変換したメッセージの言語を判定します。これには「Microsoft Translator V2」コネクタの言語コード検出アクションを利用します。
まず検索窓に「翻訳」と入力して、「Microsoft Translator V2」コネクタを選択します。
今回利用するMicrosoft Translator V2コネクタは、「Subscription Key」が空白でも利用可能です。初めて利用するときは「接続名」のみ入力して作成すると、1日あたり5万5000文字、1分あたり100リクエストまで無料で利用できます。
アクション一覧から「言語の検出」をクリックします。「テキスト」には、「Htmlからテキスト」の動的なコンテンツから「本文」を選択します。
2-4. アクションの設定:条件
検出した言語コードを利用して、メッセージが日本語かその他の言語かの判定を行います。
「組み込み」タブをクリックし、「コントロール」コネクタをクリックします。
アクション一覧から「条件」をクリックします。
以下の内容で条件を設定します。
(1)動的なコンテンツ「言語の検出」の「言語コード」を選択
(2)次の値に等しい
(3)「ja」と入力
これにより、メッセージが日本語(言語コード「ja」)であれば「はいの場合」の処理を、他の言語であれば「いいえの場合」の処理が行われます。
2-4-1. 条件:はいの場合
上述のとおり、メッセージが日本語のときは「はいの場合」に設定されたアクションが実行されます。
ただし今回、日本語のメッセージは翻訳しないので、ここでは何もアクションを設定しません。
2-4-2. 条件:いいえの場合
メッセージが日本語以外のときは「いいえの場合」の処理が実行されます。
今回はここに、DeepLコネクタを使ったメッセージの自動翻訳処理を追加します。まず、「いいえの場合」の中の「アクションの追加」をクリックします。
2-4-2-1. アクションの設定:Translate text, use this for general text translation
検索窓に「DeepL」と入力して、「DeepL」コネクタを選択します。続いてアクション一覧から、「Translate text, use this for general text translation(テキストの翻訳:一般的なテキスト翻訳ではこれを使います)」を選択します。
初めて「DeepL」コネクタを利用する場合は、上図のような表示になります。まずはコネクタ経由でDeepL APIに接続するための設定を行います。
(1)接続名:わかりやすい名前を入力(今回は「DeepL-PowerAutomate」としました)
(2)Plan Selection:今回は「DeepL API Free」を選択
(3)API Key:「1-3. DeepL 認証キーの確認」の内容をコピペ
以上の内容を入力したら、「作成」をクリックします。
以下のように必須項目のみ設定します。
(1)Text to be translated:翻訳対象とするテキスト。「Html からテキスト」の動的なコンテンツ「本文」を選択
(2)Target Language:翻訳先の言語。一覧から「JA」(日本語)を選択
この設定により、DeepLが日本語以外のメッセージを日本語に自動翻訳します。
2-4-2-2. アクションの設定:チャネル内のメッセージで応答します
最後に、DeepLで自動翻訳した内容をMicrosoft Teamsの指定チャネルに投稿します。
検索窓に「Teams」と入力して、「Microsoft Teams」コネクタを選択します。アクション一覧から「チャネル内のメッセージで応答します」をクリックします。
(1)投稿者:「Flow bot」を選択
(2)投稿先:「Channel」を選択
(3)Message ID:「チャネルに新しいメッセージが追加されたとき」の動的なコンテンツから「メッセージID」を選択
(4)Team:一覧から該当のチームを選択
(5)Channel:「1-1. Microsoft Teamsのチャネル作成」で作成したチャネル名を選択
(6)Message:自動翻訳した内容とわかるように「[このメッセージはDeepLで翻訳されました]」という文言を入力。その後に「Translate text, use this for general text translation」の動的なコンテンツから「Text」を選択
(7)(6)で動的なコンテンツ「Text」を選択すると、自動的に「Apple to each」が設定されます
以上でワークフローが完成しました。最後は忘れずに、「DeepL-Teams翻訳」などわかりやすい名前をつけてワークフローを保存してください。
3. 実行結果
実際にワークフローを動かしてみましょう。「1-1. Microsoft Teamsのチャネル作成」で作成したチャネルに、まずは日本語のメッセージを投稿してみます。
新規メッセージの投稿によってワークフローは起動しますが、メッセージが日本語の場合は翻訳処理はなされず、返信はありません。
一方で、日本語以外の言語でメッセージを投稿し、しばらく待つと、上図のようにDeepLの翻訳結果が返信されます。
最後に
今回は、Microsoft TranslatorコネクタとDeepLコネクタを組み合わせることで、メッセージを自動翻訳する仕組みを作成しました。
なおMicrosoft Teamsコネクタのトリガーは、メッセージ投稿後に即時実行されるわけではないため、投稿してから翻訳結果が返信されるまで、最大で3分程度かかります。コネクタの特性を理解して利用すると便利な仕組みがノーコードで作成できるので、ぜひ活用してみてください。
参考資料
●DeepLコネクタ(プレビュー)リファレンス
●Microsoft Power Automateで使えるDeepL APIのカスタムコネクタ
この連載の記事
-
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 -
第33回
Team Leaders
Power AutomateのCopilotは日本環境でも使えるか? 試してみました - この連載の一覧へ