はじめに
LINEbotとChatGPTを組み合わせて「副菜提案bot」をつくりました。
QRコード
目的
私は料理担当をすることが多く、「メイン料理は決まっているけど、もう1品欲しいな」と思うことが多々あります。
しかし、アイディアが少なくいつも同じ副菜に偏っていることが多いです。
また、レシピサイトを見て決めるのも「どれがいいかな〜」と時間がもったいなく考えるもの面倒。
買い物の時点から献立が決まっていれば、それを買って調理するだけという流れが理想と思い作りました。
概要
副菜に特化した献立を提案してくれます。
提案された献立はやり直しが可能で、献立が確定すると材料と作り方の概要が書き出すことが可能です。
また、このアプリに関係しない文言は受付ないようにブロックしています。
(似たようなbotで問題があったようです)
やりとり画面
献立をリクエスト
献立が提案されます。入れ替えたいものがあればクイックリプライで選択することができます。
提案された献立をやり直す
材料を書き出す
最終的には献立の材料とレシピの概要を書き出すことができます。
レンジで簡単!豆腐とほうれん草のお浸し
材料:
豆腐 1丁
ほうれん草 1袋
しょうゆ 大さじ1
だし汁(顆粒の場合は水で代用可) 80ml
作り方:
豆腐を一口大に切り、湯を沸かしたボウルに入れてレンジで約2分加熱する。
ほうれん草を塩少々を加えた熱湯で30秒ほど茹で、ざるにあける。
豆腐、ほうれん草を器に盛り、しょうゆ、だし汁を混ぜたものをかける。
サッと作れる!きのこのバター醤油炒め
材料:
しめじ 1袋
えのきだけ 1袋
しょうが 1かけ
バター 20g
醤油 大さじ1
作り方:
しめじ、えのきだけを手で分けて小房にし、しょうがをすりおろしておく。
フライパンを熱し、バターを溶かす。
しめじ、えのきだけ、しょうがを加えて炒める。
全体に火が通ったら、醤油を加えて全体に絡める。
玉ねぎとツナのサラダ
材料:
玉ねぎ 1個
ツナ缶(水煮) 1缶
キュウリ 1/2本
レタス 1/2玉
マヨネーズ 大さじ2
塩コショウ 少々
作り方:
玉ねぎはみじん切りにし、塩少々を加えて揉む。
ツナは缶汁を切っておく。
キュウリは1cm厚さに切り、レタスは食べやすい大きさにちぎる。
玉ねぎ、ツナ、キュウリ、レタスをボウルに入れ、マヨネーズ、塩コショウを加えて混ぜる。
問題点
現在の課題です。
- やり直しを実行しても同じような献立を提案してくる
- 材料とレシピの書き出しを行うと2分程度レスポンス待ちが発生する(まったく返信がない)
- アボカドやズッキーニなどをやたら多用してくる
開発ポイント
LINE botは簡単に作れますが、いくつか注意点があります。
OpenAI APIの料金に注意
GPT3.5のAPI料金は1トークン=$0.002程度と記載があります。
しかし、安価ではありますが注意が必要です。
- 日本語はトークン数が英語より多くなる
- 会話履歴を利用してAPIを利用し続けるとトークンも肥大する
ですので、私が行った対策として
- 献立が確定するまでは材料やレシピを書き出さない
- 献立は3品まで提案として、「料理名だけ書き出して」などの文言をインプットしている
- OpenAIの料金の上限設定を行う
- bot側にも1日にリクエストできる数を制限している
参考記事
https://auto-worker.com/blog/?p=7005#
1日のリクエスト制限を行う
bot側の機能として、1ユーザーに大量に使われないために制限を行うことが必須になると思います。
OpenAIにはそのような制限はないため、bot側に機能の実装が必要になります。
簡易的な対策としてDBにユーザーIDを格納して1日の使用数をカウントしています。
警告
ユーザIDをDBなどに格納する場合は暗号化するなど、取り扱いに注意してください
おわりに
LINE Bot×ChatGPTを利用してbotを作成しました。
まだまだ改善点がありますが、それ以上に様々な可能性があると感じています。
LINEは日本のインフラですので、それを利用して日常生活が楽になるようなサービスが増えるとより良いのではないでしょうか。
個人開発としてモチベーションが続く限りメンテナンスしていきたいと思います。