
Microsoft社が提供する、Azure AI 翻訳サービスとローコード開発ツール「Power Platform」のアプリ機能(Power Apps)を使用した、ドキュメント翻訳アプリの作成例を紹介します。
これにより、アプリからアップロードしたファイル(pdfやwordなど)のAIによる翻訳結果ファイルを取得できるようになります。
- 操作環境:
- OS:Windows 11
- Webブラウザー:Edge
- 使用プラン:
- Power Apps:Microsoft 365 Business Premium(試用版)
- Azure:従量課金制
- Azure AI 翻訳:F0(フリー)
アプリ実装:フロー呼出し
作成画面の翻訳ボタンを選択し、左上のリストから[OnSelect]プロパティを選択し、以下のように設定します。
UpdateContext({ message:"ドキュメント翻訳が完了するまでお待ちください。" });
UpdateContext({ localResponse:'PowerAppV2-ドキュメント翻訳'.Run(
User().Email,
drpLanguage.SelectedText.Value,
{file:{
contentBytes:First(fileInput.Attachments).Value,
name:First(fileInput.Attachments).Name
}}
)
});
UpdateContext({ message:localResponse.'res-message'});

作成画面を表示した状態で上メニューの[挿入>ディスプレイ>HTMLテキスト]を選択します。
[リンクが表示されたら、クリックして・・・]の下に配置します。
左上のリストから[HintText]プロパティを選択し、以下のように設定します。
If(message="ドキュメント翻訳が完了しました。",
"<A href=https://xxxxxx.sharepoint.com/sites/xxxxxx/Lists/Listx/Attachments/" & localResponse.'res-id' & "/" &
EncodeUrl(
LookUp([@ドキュメント翻訳], ID=Value(localResponse.'res-id')).file_name) &
"?web=1>" & LookUp([@ドキュメント翻訳], ID=Value(localResponse.'res-id')).file_name & "</A>",
""
)

なお、図表13-2の[HintText]プロパティに記述したSharePointリストのURLは、Webブラウザーで一覧画面にアクセスしたときに確認できます。

アプリが完成しました。

アプリの従量課金有効化
アプリの一覧画面で、アプリの三点マークを選択し、[設定]を選択します。
[従量課金制請求]をオンにし、[保存]を選択します。

こちらは参考です。
アプリから呼び出しているフローにおいて、HTTPやBLOB関連のプレミアムコネクタを使用しています。フローの一覧画面上、従量課金で使用できる旨のメッセージが表示されます。

Azure 課金状況確認
Azureポータル画面の使用中のサブスクリプションにおいて、左メニューの[コスト管理>コスト分析]を選択すると、課金状況を確認できます。

左メニューの[コスト管理>予算]を選択し、[追加]を選択すると、設定した予算に応じてアラートを出す設定を行うことができます。

予算設定時の画面です。
この例では、毎月1,000円を予算とし、80%を超えたら管理者にアラートメールを送付するようにしています。

Azure コンテナーの状態確認
Azureポータル画面のストレージアカウント内のコンテナーにおいて、今回のアプリ使用時に格納した翻訳前後のドキュメントを確認できます。

それぞれのコンテナーにファイルが一覧表示され、個々のファイルを選択すればダウンロードもできます。

おわりに
AIドキュメント翻訳はいくつかクラウドサービスがありますが、アカウント単位の年払いで高額だったり、翻訳ドキュメント数のプラン上限を超えて使用できなかったりする場合があります。
使用頻度の予測が難しく少しずつ使ってみたいときに、今回のようなアプリを試しに導入するのも良いでしょう。とは言え従量課金ですので、ユーザーに安易に試用されて高額請求されることのないよう、注意が必要です。
また、今回使用したAzure AI 翻訳のドキュメント翻訳機能は、PDFやPowerPoint等のレイアウトがやや複雑なファイルでも、あまりレイアウトが崩れることなく翻訳をかけることができます(とある有名どころのクラウドサービスよりも崩れが少ない印象)。
しかし、文字やオブジェクトの重なりがある等、あまりレイアウトが複雑になると崩れは避けられないため、完璧は求めずに使用できると良いでしょう。
当ブログ内の連載記事