1. システムとオフィスの融合
  2. media
  3. Power Platform Power Automate Azure Cognitive Services Open AI
  4. 【Azure OpenAI】TeamsにChatGPTを召喚してAlexaのようなアシスタントにしてみた(Power Automateとの連携)

QESブログ

【Azure OpenAI】TeamsにChatGPTを召喚してAlexaのようなアシスタントにしてみた(Power Automateとの連携)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

皆さん、ChatGPT と楽しくおしゃべりしていますか?
システムソリューション営業本部 大坪です。私たちも内部にOpenAI検証チームを立ち上げ、チャットボット構築や周辺の活用方法について研究を行っています。

今回はChatGPTで高度な会話ができるチャットボットを拡張し、Power Automateと連携して具体的なアクションを頼めるアシスタントを作成しましたのでご紹介します。

※本記事の内容にはAzureサービスにおいて現時点でプレビュー中の機能が含まれます



Teams 上での ChatGPT チャットボット

まずはTeams上にチャットボットを構築します。Microsoftが提供するローコード開発プラットフォーム「Power Platfrom」には「Power Virtual Agent」という、チャットボットを簡単に構築できるサービスがありますのでこれを使ってチャットボットを作成します。これで作成されたチャットボットはAIによるおしゃべり機能(少なくともGPTレベルの高度なもの)は含まれておらず、作成者が設計したフローに基づいて動作する昔ながらのチャットボットという趣きです。Teamsにそのまま公開することもでき、個別にチャットを行ったり、Teamsのチャネルに参加させることもできます。

参考:QESブログ:Power Virtual Agents でチャットボットを作成してみた

今回はチャットボットにChatGPTを使ってお話させたいので、Power Automateから ChatGPT API(弊社環境ではChatGPTをMicrosoftの「Azure」環境内で使用できる「Azure OpenAI」を使用していますので、そのAPI)に接続して文章を生成させるようにします。

ああして、こうして...(今回の本筋ではないので省略します)



できました!!

チャットボットに話しかけた内容がAzure上のChatGPTに送信され、その応答がチャットボットから返信されています。語尾の「~ロボ」口調はプロンプトで指定しています。やったね。



おしゃべりボットからの脱却

 ここからが今回の本題となります。企業においてAIチャットボットの活用を検討する際、チャットボットを作成すること自体は上記のように技術的には可能なものの、その具体的な活用方法や用途の広がりが課題になります。ただの賢いおしゃべりボットというだけでなく、具体的に何かアクションを実行させることはできないのか。

「Power Platform」には「Power Automate」という、アクションの実行や自動化のための製品があります。「Power Virtual Agent」から Power Automateフローを呼び出すことはできるので、AIチャットボットに頼んだ内容をうまく Power Automateフローに連携させることができれば、実質的にAIがアクションを実行することができるはずです。



アクションボット

アクションを覚えこませたチャットボットがこちらです。



ChatGPTとしての本来の機能に加えて、チャット送信機能、タスク管理機能、スケジュール管理機能を持っていると教えてくれています。

具体的に何か頼んでみましょう。明日は休みたいのですが自分からはお願いしづらいので、代わりに上司に丁寧に連絡してくれるよう依頼してみると...

確認を取った上で本当に実行してくれました。結果の200番は実行の成功を意味するコードです。

次はスケジュールの作成を依頼してみます。

いいですね。「来週の朝イチで~」という雑な頼み方にも、慣習や文脈を踏まえて週明け月曜日の9:00~10:00で日時を設定してくれていることがわかります。これは従来のロボットにはできない、ChatGPTの理解力に由来する処理です。これでまるでアレクサのように、自然文で依頼するとアクションを実行してくれるロボットができました。



アクションボットの仕組み ~Power Automateとの連携~

このアクションボットの仕組みですが、ChatGPTの柔軟な賢さを活用した構成になっています。

本来、Power Automateフローに限らずプログラムを実行するには、その引数(プログラムを実行するときの条件や内容を指定するデータ)を形式に沿った形で準備して適切に渡してやる必要があります。従来のロボットがプログラムを実行する際はその指定をユーザー自身に選択させたり、記入させたりすることで用意していましたが、ChatGPTではそのデータフォーマットを予め指定することで、文脈に沿ったデータを一定の精度で用意させることが可能です。これにより、人間が会話の中で依頼した作業を文脈に沿った形で実行させることが可能になりました。

全体の構成としては以下のようになります:

全体構成図



ChatGPT APIではその呼び出しの際に、AIが回答する際の設定を規定する「System Role」、こちらの発言を伝える「User Role」を指定することができます(過去の会話の文脈を伝えるには「User Role」や「Assistant Role」の繰り返しも可能)。このアクションボットでは「System Role」の中でチャットボットが備えるアクションや、それを依頼されたときにまとめるべきデータフォーマットを予め規定しており、ChatGPTはこれに基づいて会話を行います。

ユーザーからアクションの依頼を伴う発言があった際には、その機能が自らに備わっている前提でユーザーと会話し、アクション実行のための適切なデータを添えて返信してくれます。チャットボットの動作を中継する Power Virtual Agent では、そのデータを受け取ったらそのデータを使用して Power Automate フローを実行できるというわけです。



まとめ

今回はChatGPTを使用したチャットボットに、Power Automateを連携させて希望するアクションを実行させる取り組みをご紹介しました。

Power Automateフローは豊富なコネクタで数多くのクラウドサービスのアクションやデータにアクセスすることができるので、この仕組みによってAIチャットボットに自社が使用しているサービスの機能を実行させたり、保管しているデータを使った応答をさせたりすることも可能になります。AIチャットボットの活用の可能性を広げることができると思いませんか。

弊社では「ChatGPT」「Azure OpenAI Service」を使用したチャットボットの構築や活用支援をご提供しています。ご興味あるお客様は是非下記サービス紹介ページやお問合せフォームからお問合せください。

Azure OpenAIはAzureでは「Cognitive Services」の一部に分類されています。
QESでは過去にCognitive関連のブログも投稿しておりますので、ご興味がある方はご覧になってください。

Azure Cognitive Services 関連ブログはこちら

※本記事の内容にはAzureサービスにおいて現時点でプレビュー中の機能が含まれます
※現在「Azure AI Services」の利用は企業ごとに Microsoft への申請・審査が必要です
※このブログで参照されている、Microsoft、Azure、Azure OpenAIその他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

お気軽にお問い合わせください。

ページのトップへ