2026.10.22

食事の写真を送るだけでAIが記録する!Discordで作る自分専用の食事記録Bot

ごはん、さばの味噌煮、みそ汁、漬物の定食の写真と、食事の写真を送るだけでAIが記録するBotの記事見出し。Botの推定結果を示す画像ではない
  • 食事の記録アプリを入れたのに、品目を探して入力するのが面倒で3日で止まった
  • 写真だけ撮っておいて、カロリーはあとでだれかに数えてほしい
  • ふだん使っているDiscordで、記録まで済ませたい

食事の記録は、Discordのチャンネルに料理の写真を送るだけで、AIがカロリーと栄養を推定して残す自分専用のBotで続けやすくなります。

記録アプリで手間がかかるのは、料理を検索して量を選ぶ入力の部分です。写真を送るだけなら、食べる前にスマホで1枚撮れば記録が終わります。

ただ、AIの推定には誤差があり、無料のAPIに送った写真の扱いにも決まりがあります。知らずに使うと、数字を信じすぎたり、送るべきでない写真を送ったりしがちです。

この記事では、写真から記録までの仕組み、用意するもの、AIにBotを作ってもらうときの伝え方をまとめました。AIのAPIの無料枠で気をつけることと、24時間動かす方法も扱います。

Botができれば、ごはんの写真を送るたびに、その食事のカロリーとたんぱく質・脂質・炭水化物が返ってきます。

管理人spaのアイコン
spaこの記事を書いた人

AIと一緒に、寝る前の薬の通知や食事の記録など、自分の生活のためのDiscord Botを作って動かしています。

写真を送るだけで記録できる仕組み

Botは、決めたチャンネルに写真が投稿されたら、その写真をAIに渡して推定させ、結果を保存してから返信します。

順番起きること
1自分が料理の写真をチャンネルに投稿する
2Botが投稿を受け取り、写真をGemini APIに送る
3Geminiが料理名、カロリー、たんぱく質・脂質・炭水化物を推定する
4Botが結果をデータベースに保存し、チャンネルに返信する

写真に「ごはんは半分」のような一言を添えると、AIはその情報も合わせて推定します。

spa

僕のBotは、食事の写真を投稿すると推定結果を返信して、元の写真の投稿は自動で消すようにしています。

始める前に用意するもの

用意するのは、DiscordのBot、GeminiのAPIキー、Botを動かし続けるマシンの3つです。

用意するものどこで作るか
DiscordのBotとトークンDiscord Developer Portal
GeminiのAPIキーGoogle AI Studio
動かすマシン24時間つけておけるPCか、借りたVPS(インターネット上で借りるサーバー)

DiscordのBotを作って招待する

Discord Developer Portalで新しいアプリケーションを作り、「Bot」の画面でトークンを発行します。写真の付いたふつうの投稿を読むために必要なのが、同じ画面の「Message Content Intent」です。これをオンにしてください。

招待用のURLは、「OAuth2」の「URL Generator」で作ります。スコープはbotとapplications.commandsを選び、権限は次の4つを付けます。

  • メッセージを送信
  • 埋め込みリンク
  • ファイルを添付
  • メッセージの管理(元の投稿を自動で消す場合だけ)

メッセージの管理は、他の人の投稿も消せる強い権限です。家族や友達のいるサーバーに入れるなら、Botが読み書きするチャンネルだけに権限を絞ってください。

GeminiのAPIキーを作る

Google AI StudioでAPIキーを作ります。APIキーは、Botが写真をGeminiに送るときの鍵です。

トークンとAPIキーはコードに書かない

DiscordのトークンやGeminiのAPIキーを知られると、他人があなたのBotやAPIの利用枠を使えます。.envのような別のファイルに置き、GitHubには上げないでください。

AIにBotを作ってもらうときの伝え方

Botのプログラムは、AIに作ってもらえます。うまく作ってもらうコツは、何をするBotかを、動く順番どおりに伝えることです。

AIに渡す依頼には、少なくとも次の内容を入れます。

  • 決めた1つのチャンネルに投稿された写真と文章だけを読む
  • 写真と添えた文章をGemini APIに送り、料理名、カロリー、たんぱく質・脂質・炭水化物を返してもらう
  • 結果を、投稿した人と日時と一緒にデータベース(SQLiteなど)に保存する
  • 推定結果をチャンネルに返信し、間違えたときに消せる削除ボタンを付ける
  • 元の投稿を残すか、記録したら消すか
  • トークンとAPIキーは.envから読む
  • Dockerで動かし、データベースのファイルはプログラムとは別のフォルダに置く

最初から全部の機能を頼まず、写真を送ったら推定結果が返ってくるところまでを1回目の依頼にします。動いたのを確かめてから、保存、集計、削除ボタンの順に足していくと、どこで動かなくなったかがわかります。

spa

僕のBotも、運動の目標やカフェインの管理は、動き始めてから少しずつ足していきました。

推定の数字との付き合い方

AIが写真から出すカロリーと栄養は、見た目からの推定です。量や味付け、見えない油までは写真からわかりません。

推定値は医療上の助言ではない

Botが出すカロリーと栄養は、記録を助けるための推定値です。持病がある人、妊娠中の人、18歳未満の人が食事の量を変えるときは、医師に相談してください。

体重を減らす目標をAIに作らせる使い方は、医師や管理栄養士に相談してから始めます。AIが極端に少ない食事を提案しても、そのまま守らないでください。

Gemini APIの無料枠で気をつけること

Gemini APIには無料枠があり、Flash系の一部のモデルは無料で使えます。無料枠でもAPIキーは必要で、使えるモデルと1日に送れる回数には上限があります。

大きく違うのは、送った内容の扱いです。

項目無料枠有料枠
料金かからない使った量に応じてかかる
送った内容の製品の改善への利用使われる使われない

無料枠では、送った写真や文章が、Googleの製品の改善に使われます。規約には、人のレビュー担当者が入力と出力を読む場合があることと、無料枠に個人的な情報を送らないことが書かれています。

無料枠で試すのは、料理だけが写った写真にとどめましょう。人の顔、手紙や書類、住所のわかるものが写った写真は送らないでください。

体重や体調などの個人的な情報もAIに送る作りにするなら、有料枠に切り替えてから使います。条件は、Gemini APIの料金のページと利用規約に書かれています。

24時間動かす場所を選ぶ

Botは、動かしているマシンが止まると写真を受け取れません。昼ごはんの写真を外から送るなら、自宅のPCを閉じていても動いているマシンに置く必要があります。

置き場所向いている人気をつけること
自宅のPC24時間つけておけるPCがある外出中にPCが止まると記録できない
VPSいつでも写真を送りたい毎月の料金がかかる

僕のBotは、Dockerでコンテナのメモリの上限を256MiBにして動かしています。VPSを借りるなら、Ubuntuを選べてroot権限があるものが条件です。

どこに置く場合も、データベースのファイルはBotのプログラムとは別のフォルダに保存します。Botを作り直しても、これまでの記録が消えません。

毎晩決まった時刻に届く通知も、同じマシンで動かせます。作り方は、薬の飲み忘れをDiscordの通知で減らす方法にまとめました。

よくある質問

Q写真ではなく文章だけでも記録できますか?
A

できるように作れます。写真のない投稿は、店名や料理名の文章をGeminiに渡して推定させるよう、AIへの依頼に入れておきます。

Q家族と同じサーバーで使えますか?
A

使えます。投稿した人ごとに記録を分けて保存するよう、AIへの依頼に入れておきます。チャンネルに送った写真は家族全員に見え、家族の写真も同じようにGeminiに送られることを、先に話しておいてください。

まとめ:写真を送るだけの記録なら続けやすい

食事の写真を送るだけで記録できるBotは、次の順で作れます。

  • Discord Developer PortalでBotを作り、Message Content Intentをオンにする
  • Google AI StudioでGeminiのAPIキーを作る
  • 写真を推定して返信するところまでを、最初にAIに作ってもらう
  • 無料枠では料理だけの写真を送り、個人的な情報を送るなら有料枠にする
  • 24時間動くマシンに置き、データベースは別のフォルダに保存する

記録の手間が写真1枚になれば、食べたものを振り返る材料が毎日たまっていきます。