「Power Apps」でMAGIのアプリを作成する話【Chat GPT】
先日、こんな記事を書いた。
個人的には非常に満足いくMAGIシステムが出来上がった。
が、「Google Colaboratory」を使って動かしているので、
どうしてもその環境が無い人たちに使ってもらうのには無理があった。
そこで、今回はこのシステムを「アプリ化」し、
みんなにMAGIを使ってもらえるようにしたいと考えた。
『Power Platform』でMAGIをつくろう
『Power Platform』なら、マイクロソフトのアカウントを持っていれば誰でも使用できる。しかも無料。
前回やった流れと同じものをPower Platformで再現していこう。
流れはこうだ(前回と同じ)。
①Chat GPTに「こんな性格の人になったつもりで意見出して」ってのを、
②3種類の性格でそれぞれやって、
③またChat GPTにその3つの意見を統合してもらう
まず「Power Apps」で画面をつくる
Power Platformの中で、アプリが作れるのが「Power Apps」。
まずPower Appsを起動し、
画面に以下のアイテムを追加しよう。
・入力テキスト:MAGIに決議してもらいたい内容を入力する。
・ボタン :Power Automateを起動する。
・ラベル :検索結果を表示する。4つ準備。
レイアウトは後からどうとでもなるので、
とりあえずもうこんな感じで。
Power Automateでフローをつくる
Power Automateフローを作成する。
フロー全体のイメージはこんな感じ。
手順:①Power Appsからフローを追加
まずPower Apps側から「フローの追加」をクリックし、
Power Automateのフローを作成する。
すると、デフォルトのトリガーが「PowerApps」になっている。
それは削除し、PowerApps(V2)を選択しよう。
※デフォルトのトリガーだと値を受け取れない。
つまり、ただのボタンになってしまう。
せっかく入力した質問をPower Automate上で使えない。
②データ操作の「作成」を4つ追加
Power Automate内でChat GPTを使うときに必要な4つの情報をインプットしていく。
データ操作の「作成」を4つ追加する。
(1つ目 認証で使うキー情報)
名前:SECRET KEY
入力:(Chat GPTのAPIキーを入力しておく)
(2つ目 AIのモデル名)
名前:MODEL NAME
入力:text-davinci-003
(3つ目 ChatGPTからの回答の振れ幅)
名前:MODEL TEMP
入力:0.3
(4つ目 回答の文字数)
名前:MAX TOKENS
入力:2048
詳細な内容を確認したい方はOpenAIのサイトを参照。
https://platform.openai.com/docs/api-reference/completions/create
③HTTPアクション(Chat GPTを使うフロー)を追加
HTTPアクションを追加しよう。
設定内容は以下の通り
方法:POST
URI:https://api.openai.com/v1/completions
ヘッダー:
「Content-Type」に「application/json」を設定
「Authorization」に「Bearer @{outputs('SECRET_KEY')}」
本文:
{
"model": "@{outputs('MODEL_NAME')}",
"prompt": "prompt": "あなたは技術者。技術者は常に合理的かつ理性的で、探究心が強く、論理的思考と根拠を用いて客観的に物事を捉えて問題を解決する。以下の議題に対し技術者として、理由と共にその可否を述べよ。###@{triggerBody()['text']}###",
"temperature": @{outputs('MODEL_TEMP')},
"max_tokens": @{outputs('MAX_TOKENS')}
}
※太字部分をアレンジすることによって、3つの人格を表現する。
④HTTPをさらに3つコピー
3つのアクションに回答してもらい、
4つ目のアクションには3つの回答をまとめてもらう。
そんなフローを作成。
さっきのHTTPをコピペして、プロンプトだけアレンジする。
(アレンジ例は以下の記事を参照して下さい)
4つ目のプロンプトはこんな感じで、3つの回答を呼んでくるようにする。
"prompt": "以下の3つの意見の折衷案はどこにあると思いますか?意見を一つにまとめてください。1###@{trim(body('HTTP')?['choices'][0]?['text'])}###、2###@{trim(body('HTTP_2')?['choices'][0]?['text'])}###、3###@{trim(body('HTTP_3')?['choices'][0]?['text'])}###",
⑤「PowerAppまたはFlowに応答する」を追加
最後に、Power Appsに結果を返却するためのアクション「PowerAppまたはFlowに応答する」を追加する。
4つの回答を集めてPower Appsに出力してもらう。
以下の内容で設定しよう。
戻り値の名前:result
戻り値:trim(body('HTTP')?['choices'][0]?['text'])
戻り値の名前:result2
戻り値:trim(body('HTTP_2')?['choices'][0]?['text'])
戻り値の名前:result3
戻り値:trim(body('HTTP_3')?['choices'][0]?['text'])
戻り値の名前:result4
戻り値:trim(body('HTTP_4')?['choices'][0]?['text'])
これでPower Automateの設定は完了だ!!!
Power Appsに戻り、あとは表示させるだけ!
①ボタンをクリックした際の動作を設定
ボタンのOnSelectプロパティに以下を入力する。
UpdateContext({localResponse:MAGI.Run(TextInput1.Text)})
※太字は先ほど作成したPower Automateのフローの名前にして下さい
これで、このボタンを押すとTextInput1に入力した質問を引数として先ほど作ったフローが起動してくれる。
②各ラベルのTextプロパティを設定
先ほど作ったフローからの出力が、各ラベルに表示されるように設定していく。
ラベルのTextプロパティに以下を入力する。
メルキオールには、
localResponse.result
バルタザールには
localResponse.result2
カスパーには
localResponse.result3
そして審議結果には
localResponse.result4
を、それぞれ入力しよう。
さぁ、これで「誰でも使えるMAGIアプリ」の完成だ!!!!!
まとめ:動作確認
アプリが完成したので動作確認していこう。
例によって質問文を入力し、「審議開始」ボタンをクリックする。
するとどうだ。
すこし待ち時間があるが、
ちゃんと結果が出た!
無事、完成だ・・・!
このアプリをみんなに配れば使ってもらえるぞ・・・!!
あとは、どなた様か、
レイアウトを、MAGIっぽくしてくださいませんかお願いします。
#手作り感がすごい
以上、ChatGPTとPower Platform(Power AppsとPower Automate)を組み合わせて「MAGIアプリ」を作成してみたお話でした。
最後までご覧いただきありがとうございました。
素敵な一日をお過ごしください💡
★★★サポートいただけると『猫のように懐く』場合がございます★★★