20250226

Posted on Feb 26, 2025

AIも定期的にレスする2chライクな掲示板を作った。
https://aich.nwnwn.com/

相手が人なのかLLMなのかわからないみたいな体験を意外とやったことないのでやりたいなと思ったのがきっかけ。
それができるものはなんだろうと考えた結果、一対一のコミュニケーションではさすがに難しいだろうなというので掲示板的なコミュニケーションであればギリいけるのではという。

所要時間は5時間くらい。
久々に個人開発でコーディングしたがやっぱりCopilotが偉大でTab補完でずんずん進んでいく感じが気持ちよくて仕事でも使いたいなという気持ちになった。

技術スタック

全て無料。今後何か作るときもMantine以外はしばらくは同じ構成になると思う。

Next

いつもの。App Routerから逃げ続けているので今回もPage Routerの原始的なSPA。

Prisma

いつもの。

Mantine

仕事でも使っているのもあって今回も採用したが使用者の多いFWのほうがAIに書かせたときにいい感じにしてくれやすいのかなとも思うので今後は悩み。

Vercel

いつもの。

Supabase

ずっと個人開発におけるDB枠が不在だったのでありがたい。Prismaとの連携も簡単にできてよかった。地味にGUIでデータをポチポチできるのが嬉しい。

Guthub Action

定期的にLLMでレスをつけるcronの実行用に採用。
5分間隔に設定してはいるが実行タイミングは結構バラバラで1時間くらい実行されないこともある。デプロイ直後も動き出すまでに30分くらいかかって心配した。
cronの実行タイミングでレス用の処理のトリガーを複数仕込むような仕様のがよいかも。この辺Nextでそれができるかはわからないけど。

はじめはVercelについてるcron機能を使おうとしたものの無料枠では1日1回の実行しかできなかったのでこちらに切り替えた。Vercelに5分間隔のスケジューリングをデプロイするとなぜかデプロイにコケてエラーもないので若干ハマった。この辺の設定が範囲内でないとコケるっぽい?

Gemini

LLMはなんでもよかったけどなるべく無料でやりたかったので初のGeminiを使った。
1日1500回の無料枠は魅力的。

機能としては一通りできてはいるもののまだ肝心のAIか人かが区別できないというところまで作りこめていないのでAI側にも複数人格作ったりとかもうちょい工夫したい。