はじめに
最近 claude code が凄いらしいので Claude Pro プラン(月 $20)に入ったのですが、ちょうど知り合いの誕生日が近かったので AI の力を借りて LINE Bot を作ってみました。
結構面白かったので良かったら同じようなアプリを作ってみてください。
作ったもの
にゃん助
知り合いの発言に反応して、色々言ってくる bot です。
私、知り合い、もう1人含めて 3 人の LINE グループがあり、そこににゃん助を招待する形にしました。
会話はこんな感じ
開発環境
- Mac
- Intellij Idea
- claude code
構成
- LINE Messaging API
LINE の Messageing API というものを使っています。
LINE 側に Webhook URL を登録することができ、誰かがチャットで発言すると登録した URL にその内容が送信される、というものです。
- Cloudflare Workers
LINE の Webhook に登録する URL は、Cloudflare Workers に hono アプリをデプロイすることで作成しています。
このあたりは claude code に「LINE の bot を作りたい。hono で作ったアプリを cloudflare workers にデプロイして、発行された URL を LINE の webhook に登録する。実装して。」みたいに言えばほとんど大枠は作ってくれます。
それかこの Qiita の URL を渡して、「この URL を参考に同じ bot 作って」で多分作ってくれます。
エラーが出ても「XXXXXXXXXXっていうエラーが出た。解決して。」で結構解決します。
私の場合、最初 claude code が出してきた packages.json に node への依存があったため workers で動かなかったのですが、エラーメッセージをそのまま claude code に渡したら直してくれました。
仕様
- 特定の人の発言のみに反応する
hono 側で受け取ったリクエストのパラメーターに userId があるので、それで個人を判別しています。
注意点として、userId は公開されていないため、一度チャットのやり取りをして workers にログ出しとかしないと取得できません。
もしくはこうやって取得します
- 発言の一部が特定の言葉とマッチしていたら、用意されているメッセージリストの中からどれか一つをランダムで返す
こんな感じで、マッチ対象のリストと返事のリストを作っています。
[
[
['おやす', '寝', 'ねる', 'ねた'],
['いい夢見ろにゃ', 'zzz', 'もう寝た?', 'え〜朝まで遊ぼうにゃ〜', 'おやすみ🐈']
],
[
['電話', 'tel', 'てる', 'テル', 'TEL', 'でんわ'],
['今手が離せません', '後でこちらからかけなおすにゃ', '何か用か?にゃ?', '勝手にかけろにゃ']
],
]
機械っぽい面白さが出るので、返事は全て自分で作っています。
AI にはしていません。
意外とこれでも会話になるから笑っちゃう。
追加機能
常に反応してくるのがちょっと煩わしいので、特定のワードで起動と停止をコントロールできるようにしました。
起動状態をどこかに保持しておく必要があるので、Cloudflare Workers KV に 保存するようしています。
KV との連携コードも「特定のメッセージで起動と停止ができるようにしたい。起動フラグを KV に持たせる形で実装して。」で claude code が書いてくれました。
デプロイ周りについて
デプロイは npm run deploy
コマンド一発で完了します。
最初は claude code に「deployして」とお願いしていたのですが、途中から自分でコマンドを打った方が完了までの時間が早いことに気づきました。
終わりに
サプライズでにゃん助をグループに追加したので、「誰これ!?」という状態から会話になったりしてかなり笑いました。
claude code 以外(Cloudflare, LINE Messaging API)は無料で利用できるので、ぜひやってみてください。
ちなみににゃん助は非公開なので検索してもでてきません。