メインコンテンツへスキップ

冷蔵庫の余り物からレシピを自動生成するAIアプリを個人開発した話【Gemini API × ゼロコスト運用】

··2075 文字·5 分
毎日の料理で解決したい「今日の献立、何にしよう?」という悩み。 そして、いつの間にか期限が切れてしまう「もったいない」食品ロスの課題。 Gemini AIを活用して、これらを一気に解決するWebアプリを開発しました。

実際、冷蔵庫を開けて「キャベツが半玉、卵が2個、少しの肉……これで何ができる?」とスマホを眺めた経験は、多くの人にあると思います。この「日常の小さな困りごと」を、AIの力で即座にレシピに変えるアプリが、今回開発した 「Leftover Recipe AI」 です。


🍳 Leftover Recipe AI の概要
#

Leftover Recipe AI は、手元にある食材と希望の条件(時間、辛さ、難易度など)を入力するだけで、AIが最適なレシピを提案してくれるWebアプリです。

デスクトップ版のメインレイアウト
直感的で分かりやすいメイン画面

主な特徴
#

  • 柔軟な条件指定: 「15分で作れる」「子供向けに辛くない」などの細かな要望に対応。
  • 視覚的な提案: Unsplash APIと連携し、完成イメージ画像を自動表示。
  • 完全無料・ログイン不要: ユーザー自身のGemini APIキーを使用する設計により、プライバシーを保護しつつ運用コストをゼロに。

🛠 技術的な深掘り:プロンプトエンジニアリングの工夫
#

AIから実用的なレシピを引き出すためには、プロンプト(指示文)の設計が極めて重要です。本アプリでは、以下の工夫を行っています。

1. 構造化データ(JSON)の強制
#

AIの回答をそのままアプリの画面に表示させるため、特定のJSONフォーマットで出力するように制約をかけています。

システム指示の例:
あなたはプロの料理研究家です。与えられた食材と条件からレシピを1つ提案してください。
回答は必ず以下のJSONフォーマットのみで出力してください。余計な解説は一切不要です。
{
  "recipeName": "料理名",
  "cookingTime": "分",
  "difficulty": "初級/中級/上級",
  "ingredients": ["食材1", "食材2"],
  "steps": ["手順1", "手順2"]
}

2. 存在しない食材の制限
#

AIは時として「冷蔵庫に無いスパイス」を勝手に追加してしまいがちです。プロンプトに 「指定された食材を使い切ることを優先し、調味料以外の追加食材は最小限にすること」 という一文を加えることで、この問題を解決しました。


🚀 ゼロコスト・プライバシー重視の設計思想
#

個人開発において最大の懸念は「API利用料」と「サーバー維持費」です。これを回避するため、本アプリは 「完全クライアントサイド完結型」 で設計しました。

APIキーの設定画面
設定ボタンから簡単にAPIキーを登録・管理できます。データはLocalStorageに保存され、サーバーには送信されません。

コンポーネント実装方法メリット
フロントエンドVite + Vanilla JS高速なビルドと軽量な動作。
AI (LLM)Gemini API (クライアントサイド)ユーザーのブラウザから直接APIを叩くため、サーバー代が不要。
データ保存LocalStorageお気に入りや設定をブラウザに保存。ログイン機能の実装が不要。
画像検索Unsplash APIレシピ名から自動でイメージを取得。高品質で無料。

この設計により、開発者である私はホスティング費用(GitHub Pages等)のみで、数千人規模のユーザーが利用してもコストが全くかからない仕組みを実現しました。


👨‍💻 開発で直面した課題と解決策
#

AIの応答が遅い、またはフォーマットが崩れる
#

Gemini 1.5 Flash を採用することで、高速な応答を実現しました。また、万が一JSONフォーマットが壊れて返ってきた場合に備え、正規表現を用いたフォールバック処理をGo(本アプリの場合はJS)側に実装しています。

画像のミスマッチ
#

料理名で画像検索すると、たまに意図しない画像が出ることがあります。これを防ぐため、検索クエリに food, recipe というキーワードを自動で付加し、精度の向上を図りました。


🌱 社会的意義:食品ロス削減への貢献(SDGs)
#

このアプリの根底にあるのは 「もったいない」を減らしたい という想いです。 日本では年間数百万トンの食品ロスが発生しており、その約半分は家庭から出ています。「余り物で何が作れるか分からないから捨てる」という選択肢を、「AIに聞いて料理する」というワクワクする体験に変えることが、このアプリの真の目標です。


🔮 将来の展望:マルチモーダル連携
#

現在はテキスト入力がメインですが、将来的には 「冷蔵庫の中身を写真に撮るだけで、AIが自動で食材を認識してレシピを提案する」 機能を検討しています。Gemini 1.5 の強力な画像認識能力を活用すれば、入力の手間すら省ける、より直感的なキッチンツールへと進化できるはずです。


🔗 アプリを体験する
#

Leftover Recipe AI を使ってみる

※無料で取得できる Gemini APIキーを設定するだけで、すぐにお使いいただけます。

さいごに
#

個人開発は、自分の「不便」を形にする最高の手段です。このアプリが、あなたの毎日の料理を少しでも楽しく、そして地球に優しいものにする手助けになれば幸いです。

感想やフィードバックは、開発の大きな励みになります!


著者
ゆーふー
Web開発、インフラ、AI技術に興味があるエンジニアです。日々の学びを記録しています。

関連記事

👤 運営者プロフィール

運営者プロフィール画像

ゆーふー

メガベンチャーで働く現役Webエンジニア(歴約2年)。
フロントエンドからインフラ構築、セキュリティ対策まで、実務で得た「現場のリアルな技術知見」を発信しています。