宝塚オタク友達をChatGPTで作る

百合宮桜氏:始めます。百合宮桜といいます。よろしくお願いします。ごきげんよう。今回は「ChatGPTでトモダチ(概念)を作ろう!」というテーマでLTをさせてもらいます。よろしくお願いします。

実は私、RPACommunityのアドベントカレンダーというところで、「友達が少なすぎて寂しいので、Power Virtual Agentsで宝塚オタクの友達を作ってみた」というブログを投稿していました。

(画面を示して)こういう感じに、「Power Virtual Agents」で「タカラジェンヌ」ってつぶやくと、「何組が好き?」と相手をしてくれるわけですね。「花組」と答えると、「明日海りおさん素敵だったよねー」とか、私の最推しを褒めてくれるわけですよ。(そうしたら次に)「どの役が好き?」というふうに言って。

(私が答えた)この“黄泉の帝王”というのは、役名じゃないわけですよ。「トート」っていうのが役名なんですけど、オタクは愛称とかで呼びがちということで。そういうことに対しても対応してくれるbotを作ったわけなんですが、これがおかげさまで大変好評で。

ビューは3桁なのに(noteの機能である)「スキ」は過去最高の14個ももらえたっていう、すごく取れ高のいい記事だったんです(笑)。

これを作った後に、「できれば相手からも話題を提供してほしいよね」と思いまして。そういうところでChatGPTを使ったというのが今回のお話でございます。

ChatGPTはTwitterで非常に話題になっていて、2023年2月あたりから全世界ユーザー1億人を突破したらしいですね。このあたりからかなり話題になっていて、どうやら無料で使えるらしいというのがわかってて。

APIリファレンスとかを読んで、「HTTPアクションで『Power Automate』と連携させられるかな?」と(思った)ところから話が始まっていきます。

「友達作り」の要件

今回の要件としては、botだと私が話しかけないと相手をしてくれないわけですね。なので今回は「Teams」のチームを使って、私が話しかけなくても話題を振ってくれるような感じにしてみました。可能なら、私が応答しなくてもみんなで盛り上がってほしいわけなんですよ。

APIはアカウントを作ると無料分があるんですよね。確か(3ヶ月間有効のクレジットは)5ドル(※現在は18ドル)だったと思います。

私はみんなが楽しそうなのを見るのが好きで、みんなで盛り上がってほしいわけですね。さらに言うと、友だちとはハッピーな話題で盛り上がりたいんですよ。disりはNGです。RPACommunityのイベントとかもそうですが、やはりdisらないで楽しく盛り上がりたい。

できればスケジューリングせずに、不定期に話題を振ってほしい。これ、非常に重要ですね。やはりオタク友だちとは、なんか急に「キャーッ!」と発作的になる時に盛り上がりたいというところがあるんですね。

私を含めて3人いればそこそこ盛り上がるんじゃないかなというふうに思って、話題を振る係と、反応する係と、宝塚オタクという私のポジションの3人で作っていきました。

“盛り上がる会話”を作る

オタクの話はどうでもいいので、今から技術的な話をします。話題を振る係として、最推しの明日海りおさんのアカウントを作ってやってみました。

ChatGPTというのは、基本的には言われたことに対して返答するだけなので、私と2人きりだった場合、ChatGPTはなにも発言してくれないわけですよ。やはり話題を提供する人が必要なので、それで明日海りおさんを作ったという話ですね。

先ほど言ったように、スケジューリングをして話題を投稿するのは、友だちという感じがしないんですよね。(「二人きりだと発言してくれない最推し」というコメントを見て)そうなんですよ。ふたりきりだと発言してくれないの。最推しが(笑)。

でもいいんですよ。やはり最推しっていうのはそうじゃないといけない(笑)。オタクはあくまでもオタク友だちとして会話をしたいので、やはり(舞台の)初日とか千秋楽とか、劇場が盛り上がる日に積極的に発言をしてほしいというところがありますね。あとOGが観劇に来たとか、急に界隈がざわついた時の不定期な盛り上がりも入れ込めたら最強かなと思います。

実は、宝塚にはそれにぴったりなハッシュタグがあるんですよ。「#愛してるよ宝塚歌劇団」というハッシュタグなんですけれど。このハッシュタグは2020年の2月27日くらいの、コロナ禍で、まだ緊急事態宣言は出ていなかったと思うんですが。とにかく未知のウイルスが来てヤバいということで飲食店とかテーマパークとか劇場とか、とにかくありとあらゆる密になっているところが制限されていた時に、なんとかタカラジェンヌたちを励ましたいということで、ファン有志が作成したハッシュタグが「#愛してるよ宝塚歌劇団」です。

このハッシュタグを付けてネガティブな投稿をする人はほとんどいないですね。ポジティブな投稿が集まりやすいハッシュタグ。なので、こちらのハッシュタグを検索して、ツイートをTeamsに投稿するフローを作りました。

(画面を示して)実際のフローがこちらです。シンプルですね。ハッシュタグ愛はものすごい強いですよ。オタクなんで(笑)。

「#愛してるよ宝塚歌劇団」のツイートが投稿されたら、それがTeamsに投稿される。その投稿に対してChatGPTが反応してくれるというところです。(※)

※当イベント後、2023年4月にPower Automate におけるTwitter関連のコネクタは使用できなくなりました。(記事公開時点)

ここでのちょっとした工夫が、フロー自体は自分の百合宮桜のアカウントで作っているんですが、接続を明日海りおさんのアカウントに変えている。だから、明日海りおさんの名前で投稿してくれるというのが一番のポイントです。

そうすると、人さまのツイートを拾ってきてくれます。

反応する係としてChatGPTさん、いよいよ登場です。こちらは仙名彩世ちゃんという、明日海りおさんの4人目のお嫁さんをちゃんと連れてきました。やはり相手役って大事ですからね。

今回は3人でTeams(内)で会話をしたいので、Teamsにメッセージが投稿されたらやはり反応が欲しいわけです。その反応する係が仙名彩世ちゃんですね。

今回はAPIを使いました。Teamsに新しいメッセージが追加された時に、APIキーを変数のほうに入れ込んで、HTTP要求でChatGPTのAPIでPOSTすると、チャネルにメッセージを投稿するという感じです。

勘の良い方はもうわかるかなと思うんですが、このままだと無限ループをしてしまうので、無限ループをしないように、ちょっと工夫をしました。

設定を作っておきました。トリガー条件で仙名彩世ちゃんの投稿じゃない場合、要は明日海りおさんか私の投稿の場合で、トリガー条件を設定しています。ここでこの設定をすることで、無限ループに陥らないで済むわけですね。

そのほかは、APIはリファレンスどおりです。認証キーをAPIキーの変数のほうに入れたので、そちらで認証してもらって、プロンプトに先ほどの明日海りおさんのメッセージを入れ込んでもらうというかたちにしてあります。

そうすることで、ChatGPTが質問を理解して答えをくれるという感じです。なので、ChatGPTのメッセージはtrim関数で先頭のほうをちょっと削っています。

(画面を示して)なにを削っているかというと、未加工出力というところでHTTPのPOSTのものを表示しているんですが、テキストというところですね。ここに「\n\n」という空白の部分があります。ここがちょっと邪魔なので、除いて、「このツイートでは」というところからメッセージとして投稿してもらうことにしています。

(画面を示して)そういう感じで、例えば明日海りおさんがこういう話題を投げてくれた時に、仙名彩世さんが共感力抜群の返事をしてくれるということです。やはりオタクは共感力がすごい大事で、盛り上がっているところを見るのがすごく楽しいので、このTeamsを見ているとすごくニコニコしてハッピーになるので、お勧めです(笑)。

これが一番良いChatGPTの活用法かなと私は思っています。

今後の予定

今後の目標としまして、オタクは概念だけじゃなくて、やはり実体も欲しいなという欲が出てくるんですよ。せっかくTeamsにアバター機能も実装されたことだし、読み上げるものがなにかあれば、今度はパソコン3台でオンライン会議ができないかなと思っています。

やっぱり実体の友だちが欲しいな。ありがとうございました。