u1tnkです。子供が「部活の席決めがめちゃくちゃ大変」と言うので、AI席決めというツールを作りました。
ちょうどAstraを試してみたかったので、お試し案件として開発。子供には「ここまでやったのw」と言われたので、ひとまず勝利です💪
席決め、席替えが大変な話
席決めって普通に過ごしてるとめったにしないけどするときはだいぶ苦労しますよね。結婚式とか宴会とか。
ただ並べるだけなら溢れている席替えツールで足りるけど実際は以下みたいに色々と条件がある。
- Cさんは偉いので上座
- 幹事は入口の近く
- 男女の人数は各島で同じぐらい
- 仕事で同じグループは離す
- AさんとBさんは離す
そこで、条件を言葉で伝えたら、AIができるだけ条件に沿って配置してくれるようにしました。
例えば12人の懇親会なら、こんな感じで条件を入れます。Cさんの席は固定して、幹事は入口側に。優先したい条件を上に並べます。
(画面は架空の名簿を使った利用例です。画像はクリックで拡大できます。)
AIで配置して、最後はドラッグで調整
AIの配置はベストエフォートです。条件が多かったり、両立が難しかったりすると、全部が希望どおりになるとは限りません。
なので、配置された席を見ながらサクサクとドラッグで調整できるようにしました。まずAIに考えてもらって、気になるところを自分で直す、という使い方です。
こちらは手で調整した配置例。上座側にCさん、入口側に幹事のBさんを配置して、AさんとBさんは別の島にしています。名前の下に性別やグループ、役割が見えるので、調整するときも確認しやすいです。
UIもそこそこ頑張りました。席次表の印刷にも対応しているので、できあがった配置を紙で持っていけます😎
最近の流行りのCloudflareで
LLMを呼ぶならサーバーが必要だなと思って、最初はRailsで作っていました。
でも、作ってみるとLLMを呼ぶところ以外は全部ブラウザのJavaScriptでできる。そこで、サイトをCloudflare Pagesで配信し、LLMを呼ぶ部分はWorkers上で動くPages Functionsにしました。
開発中はCloudflare Accessで隠しながら動作確認。WAFでは同じIPからのAIリクエストを制限しています。このあたりのCloudflareの機能は当然全部無料枠。めちゃくちゃ便利。
参考: 令和版貧者のサーバ戦略
使ってみてください
子供の困りごとから作り始めたツールですが、せっかくなのである程度万人に使えるツールにしました。 AI使わなくても検索して見つかるそこらへんのツールよりは高機能で軽快に使えるようにしたつもりです。
前回の配置を記憶して違う席にする条件なども可能なので学校用にも使えるはず。
誰か使ってみてください🙏

