Power Appsで始めるChatGPTアプリ構築

MicrosoftのPower AppsとPower Automateというローコードツールを使って、以下の記事を参考にしながらChatGPTとチャットできるサンプルアプリを作成しました。今回は、アプリ概要と作成を通じて得た知見を紹介します。

NOTE
厳密には「ChatGPT」ではなく「GPT-3.5Turbo」を利用しますが、今回はわかりやすさを重視し「ChatGPT」と表現します。

Azure版のChatGPTとは?

なにかと話題のChatGPTは、2022年11月にOpenAI社より公開されましたが、実はMicrosoftのAzure環境でも利用できます。Microsoft社とOpenAI社は2019年にパートナーシップを結んでおり、AIを用いた機能をMicrosoftサービスに展開しています。2023年1月には、Azure上でChatGPT環境を構築できる「Azure OpenAI Service」の提供が開始されました。

2つを区別する意味で、OpenAI社が公開した前者は「OpenAI版ChatGPT」、Azure OpenAI Serviceで動作する後者は「Azure版ChatGPT」などと呼ばれています。両者ができることに大きな違いはありませんが、Azure版ChatGPTは企業専用のChatGPT環境を持てる点で異ります。よりセキュアな環境でChatGPTが利用できるので、多くの開発現場ではAzure版ChatGPTを利用することが推奨されています。今回のアプリ作成でもAzure版ChatGPTを利用しています。

オールMicrosoftでChatGPTアプリを作成

ChatGPTとのチャットや、チャットの支援を目的としたアプリを作成しました。作成するにはChatGPTの他に、利用者が操作するUI部分、入力内容を処理しChatGPTへ伝達するロジック部分が必要です。今回の開発では以下のとおり、すべてMicrosoftのクラウドサービスで実装しました。

サービス 今回の用途
Power Apps 利用者向けのUI
Power Automate ChatGPTへ伝達するロジック
Azure OpenAI Service AIチャットボット

ChatGPT

OpenAI社が公開しているAIチャットボットです。膨大な情報学習をもとに、複雑な言語表現を理解したり、過去の会話内容を記憶して回答したり、内容に応じて否定や拒否をするなどが可能です。従来のサービスと比較して、より自然なやり取りが可能なAIチャットボットとして注目を浴びています。

Power Apps

Microsoftが提供するビジネスアプリ構築用のサービスです。Microsoftが展開するローコードなアプリケーション開発やデータ分析のプラットフォーム「Power Platform」を構成する要素の1つです。詳細は以下の記事を参照してください。

Power Automate

Microsoftが提供する業務プロセスを自動化するサービスです。Power Appsと同じく「Power Platform」を構成する要素の1つです。利用例は以下の記事を参照してください。

以上のようにMicrosoftサービスだけで構成することで、Microsoftアカウントを通じて簡単に社内共有できます。

アプリはシンプルだが社内試用できるレベル

作成したアプリの機能を紹介します。

1.チャット

Power Appsで用意したチャット形式の画面上で、ChatGPTとチャット(質問の送信、回答の受信)できる機能です。入力した値がPower Automateに連携され、Azure OpenAI ServiceのAPIをコールする仕組みです。

2.プロンプトを再利用したチャット

過去のプロンプト(質問テキスト)を再利用してチャットする機能です。自分が質問しようと思っている内容に似ていたり、回答が的確だったプロンプトを再利用することで、効率よくチャットを開始できます。プロンプトはSharePointのリストに保存されます。

NOTE
プロンプトとは、AIに対して質問や指示をだすこと、またはその質問文やフォーマットを指します。単純な質問でも一定水準の回答は得られますが、条件を詳細に伝えることでより的確な回答を得ることができます。最適化されたプロンプトは、ナレッジ化して共有することで組織全体の効率向上にもつながります。

3.チャット履歴(独自機能)

ChatGPTとのチャット内容を記録して蓄積する機能です。一覧から選択し、過去のチャット内容を参照できます。履歴が多くなったときに備えて、アカウントやキーワードによる絞り込みも可能です。チャット履歴もSharePointのリストに保存されます。チャット履歴機能は今回、独自に実装しました。

Power Appsアプリ作成で得られた気づき

今回のアプリ作成を通じて得られた気づきを紹介します。

Azure OpenAI ServiceのAPIは簡単に使える

アプリ作成を通して、APIの仕組みを理解できました。似た仕組みの実装は今回よりも効率よく行えそうです。当初は複雑そうな印象を抱いていましたが、いざ使ってみると他のAPIと大差はありません。会話内容もJSON形のため取り扱いやすい仕組みになっています。ただし、コールしてからの応答間が長くなることが高頻度で発生するため、ロジック構築の際に課題となりました。

NOTE
Power AutomateからAPIをコールするには、プレミアムコネクタが必要です。

チャット履歴は有効

「あったら便利かも」という思いつきで追加した機能ですが、利用してみると想定以上に活用できるイメージが湧いてきました。今後は以下のような機能拡張を考えています。

今後の拡張例

  • プロンプトの参考情報
  • 業務ナレッジの蓄積
  • 履歴参照による回答内容の揺らぎ防止やトークン節約
  • 特定分野に特化したChatGPTのデータソース化

NOTE
Azure OpenAI ServiceではChatGPTとのやり取りにトークンを消費し、消費量に応じて従量課金が発生します。

Power AppsとPower Automateのナレッジ

Power AppsによるUI作成では、ギャラリーを用いてレイアウトを構成しました。ギャラリーの種類によってさまざまな制約はあるものの、使いこなすとレスポンシブなレイアウトが簡単に作れます。

Power Automateでのロジック作成においては、応答間による処理失敗を回避できるよう、アクションの再試行ポリシーで調整しました。複数のサービスを連携するシステムを構築する場合、課題には多角的に検討することが解決の近道になります。

感じるChatGPTの可能性

このアプリ作成で、初めてChatGPTを使いました。これまでのチャットボットと明確に差を感じたのは、自然な会話が違和感なく成立することです。同僚へ接するように話しかけても的確に回答を提示してくれます。また、答えの無い質問をしても具体例や選択肢を提示してくれるなど、目的達成をアシストする能力の高さに感心しました。

今後もさまざまなMicrosoftサービスに、AIを用いた機能が展開されていく予定です。弊社では、引き続きMicrosoftサービスおよびChatGPT(特にAzure OpenAI Service)の最新情報キャッチアップに取り組み、お客様から相談があった際に最適な提案ができるよう、努めてまいります。

関連情報

以下より、テンダMSTechメールマガジンに登録いただきますと、MSTechサイトの更新情報等を定期にお届けします。
https://form.k3r.jp/tenda_msales/tenda_ml2

Microsoft365(利活用技術) | MSTech | 株式会社テンダ
Dynamics 365(Avanade Flexible Support) | MSTech | 株式会社テンダ