はじめに
先週の土日2日間でJISOUハッカソンに参加しました。
JISOUハッカソンのテーマは「AIで日常を魔法に」
作ったもの
プロダクト名は、「THE MOKUMOKU」(いつの間にかタイトルは ずんだもんともくもく会になってる、、、わかりやすいかなとw)
THE MOKUMOKUの概要
THE MOKUMOKUはDiscordで使うツールのようなものです。
プロダクト名の通り、エンジニア界隈ではよく行われるもくもく会を盛り上げるという目的で開発され、Githubでの作業(push)を検知し、みなさんもよくご存知のずんだもん(AI)というキャラクターが作業に対してフィードバックをくれます。
※デモ動画は私情で用意できなかったためご容赦ください
技術構成図 (?)
JISOUで学んだNextjsをapiを作るために使いました。
流れ
どのようにしてずんだもんからのフィードバックを受けられるのか解説します。
- Githubに作業をpushする
- Githubのリポジトリに登録したwebhookが発火してNextjsをデプロイしたurlにPOSTリクエストが飛ぶ
- リクエストからコミットの情報を取得し、差分データを抽出。そこからプロンプトを作成してGemini apiに投げる
- Discordのwebhookに向けてメッセージを送信するリクエストを投げる
- webhookが登録されたDiscordのテキストチャンネルでフィードバックを受け取る
- Discordのボイスチャットに参加させておいた、ずんだもんのボットがテキストチャンネルのメッセージを検知してしゃべる
工夫した点
アイデア面
JISOUでは主にReactの技術を学んでいるので、技術的にできることはそう大差がないかと自分は思っています。それに加え、AIを使うことがこのハッカソンのテーマであり、そのほとんどがGemeni等のAPIを使って開発します。
そこで、プロダクトを魅力的かつ個性的にするためには
- そのプロダクトがもたらす価値
- AIからのレスポンスをどのように魅せるか
が重要になってくると思いました。
AIからのレスポンスをどう魅せるかに僕はフォーカスし、webとしての実装ではなく、Discordの通話に使うツールを開発しました。
技術面
- webhookを取り入れた
- 技術面とは言えないが、ずんだもんBotが喋れる文字数には制限があるのでshortバージョンの文章も生成しておいた
謝辞
ずんだもんに文章をしゃべってもらうためにずんだもんβを使用させてもらいました。開発者の方に感謝申し上げます。
個人的にずんだもんBot使っててワクワクしました(喋らせるの楽しい)、内部的に使われてるVOICEVOXもぜひ!機会があれば触ってみてください。楽しいです。
終わりに
2日間ずっと開発していたのは久しぶりでした。自分の作りたいもの・理想と現実のギャップは少々苦しいものですが、それを埋めていけるのは極上の体験だと思っています。
ちなみにハッカソンで優勝はできなかったです。とても悔しいなぁ、ま楽しかったしいいかなと思います。