はじめに
お手軽な開発として、LINEに食べ物の写真を送ると、カロリー(+PFC)を教えてくれるLINE Botを作りました。
もう20代後半なので、健康的な食事に気をつけていきたい。。。
この記事では、具体的なLambdaのコードは記載していません。
あくまで、LINE Developers設定、Gemini APIキーの取得、Lambda設定のみ解説していることにご注意ください。
成果物
いきなりですが、こんな感じのものが作れました。
健康に気をつけようとしているのに、トンカツ定食を食べている矛盾。。。
数値の妥当性確認のために、松のやさんの「ロースカツ定食」 の数値を確認してみます。
LINE Botはどの数値も高めに出ている気がしますが、ここはAIのモデルを変えるなどすれば改善しそう。
| 松のや | LINE Bot | |
|---|---|---|
| カロリー [kcal] | 821 | 890 |
| たんぱく質(P) [kcal] | 30.1 | 38 |
| 脂質(F) [kcal] | 33.1 | 44 |
| 炭水化物(C) [kcal] | 98.1 | 104 |
工夫した点
- Geminiに投げるプロンプトでフォーマットを指定したことで、毎回ブレなく同じような結果が返ってくる点
- アドバイスでユーザーに寄り添い、次もバランスの良い食事を摂りたくなるようにした点
開発手順
手順としては大きく分けて、下記の3つです。
①LINE公式アカウントの設定、②Gemini APIキーの取得、③AWS Lambdaの設定
以下、順に解説していきます。
1. LINE公式アカウントの設定(参考:公式ドキュメント)
- Bot用のアカウントを作成(https://entry.line.biz/form/entry)
- LINE Developersのページに遷移
- Messaging API設定のタブを開く
- 下にスクロールすると、チャネルアクセストークン(長期)があるので、メモしておく
APIキーは流出しないように管理してください
2. Gemini APIキーの取得
- 下記リンクからGoogle Cloud プロジェクトの作成
プロジェクトを作成する - 遷移先にある「リソースの管理]に移動」という青いボタンを押下して画面遷移
- APIを有効化
- 認証情報を取得
1.左のタブから「認証情報」を選択

1.「認証情報を作成」という青いボタンを押下し、「APIキー」を選択
- 取得できたAPIキーを保存する
APIキーは流出しないように管理してください
3. AWS Lambdaの設定
- リソースの作成
- 今回は「Python3.12」を使用
- その他の設定
- コードのデプロイ
- コードについては、不正アクセス防止のため割愛
- Lambdaの設定で、下記を環境変数に入れる
- LINEのチャネルアクセストークン
- GeminiのAPIキー
- Lambdaのタイムアウト値を伸ばす
- 15秒程度に設定すれば、LINEで画像を送った際に「タイムアウトで結果が返ってこない」ということは起きないはず
- レイヤーの追加
- コードにはrequestsモジュールを使用することになると思うが、Lambdaでは標準で使用できないため、Layerを使って追加する
- 記事執筆時点では、下記のARNを使用(参照元)
arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-p312-requests:19
- Webhookの設定
- 今回は「Python3.12」を使用
以上で、完成!





