記事タイトルの通り、身近なプチ歴史を教えてくれるLINE Bot 「rekky(レッキー)」を開発しました!
以下のQRコードかURLリンクから友達登録することができます。
rekkyの紹介
毎朝8時に、身近なもののプチ歴史について共有してくれます。
例えば、シャワーの歴史を知っていますか?僕は知らなかったのですが、rekkyが教えてくれました。
毎朝8時の、学校に行く時間、あるいは通勤途中、仕事を始める前の準備時間かもしれないそんな時、ちょっとした歴史を覗いてみることで、世界が少しだけ違って見えるかもしれません。
友達登録はこちらから↓
rekkyの裏側
ここからはrekkyリリースまでの裏側のおはなし。このrekkyの開発時間は大体6時間くらいでした。今話題のAIを色々と駆使したら、結構サクッとできたので、ありがたい時代です。
例えば、rekkyの恐竜アイコンはmidjourneyの画像生成AIを利用しています。
恐竜というコンセプトは元々持っていたので、実際にどのようなキャラクターにしようかという所を、こんな感じで色々と生成してもらいました!
何回か生成してもらったら…あ、可愛い感じのrekkyがいますね。このrekkyをスクショして利用してます。ただこれだと小さくて画質が結構悪い・・・。
そこでvectorizer.aiというAIサービスを利用して、画質の精度を高めてます。これをするとrekkyが見違えるレベルで変身します👏
そんな感じでアイコンは出来上がりです。
開発部分については、開発のプロセスをChatGPT(GPT-4)による全面サポートを受けながら実行しました。LINE Botは作るのが初めてでしたが、集中したら2時間くらいで動くものが出来上がりました🙌
LINE Botの裏側で動いているプチ歴史を作り出す部分については、大きく二つの用途でChatGPT APIを利用しています。
処理の流れはこんな感じ
ランダムな単語を生成する上で、出力形式が句点区切りで安定的に出力してもらえるように、少し試行錯誤しました。他にもカタカナ用語ばっかりで全く身近に感じられないものばかり出力されるなど。
歴史についても、より内容がまた面白くて、かつスッと頭に入ってくる体裁は何なのかについて試行錯誤しました。そしてこれまた内容の安定性についても少しだけ試行錯誤しています。
試行錯誤したこと
ChatGPTをはじめとした大規模言語モデルを機能として扱う上で、一番大変になってくるのはやはり安定性をどう高めるかではないでしょうか?🤔
ここについて、今回見つけた方法を紹介しますね!
ランダムに単語を生成してもらいたい
これを実現するにあたって、最終的にはリスト形式で単語を扱いたかったです。なので、区切り文字を指定して単語を並べてもらうように工夫しました。
さらに「単語を10個生成して」とすることで、`len(words)==10`という形で適切にバリデーションをすることもできます。出力結果がうまくいかなかったら、リトライするという手法をとっています。以下がプロンプトです。
面白い歴史の解説をしてもらいたい
ここがこのLINE Botの1番の肝の部分。体験としてとても重要になってきます。考慮した観点は大きく二つです。
その歴史が面白い内容か
歴史の解説がスッと頭に入ってくるか
1に関しては、gpt-3.5-turboでは限界がありました。そこでgpt-4に面白いと思えるように歴史を解説してと指示を出すと、引き込まれる文章を生成してくれました。
ただ文章量としても長いので、少し小難しい感じだと中々頭に入ってこないんですね。そこで口調をカジュアルな感じにしたり、ストーリー調に少し仕立てて説明してもらうことで、とても分かりやすい解説になってきました。
あとは例示を与えてあげれば、安定性のある面白い歴史解説を作ってくれます
おわりに
というわけで、AIを活用したら思いついたアイデアがすぐ実装できてとても楽しいですね!
12月くらいからChatGPTは利用していますが、個人的に「歴史について面白く解説してもらう」利用の仕方は、かなり満足度高いなということに気づきました。
1日1回、それも毎朝8時にプチ歴史が届くので、生活に溶け込むちょうど良い距離感だと思います。ぜひrettyと友達になってください!