多くの飲食店の現場の日々の運営では、重要な判断の多くが長年の「勘」や「経験」に頼らざるを得ない現状があります。
本記事では、この課題を「在庫・ロス管理」「売上機会の損失」「情報のリアルタイム性の欠如」の3つの領域に集約し、それぞれの課題を解決するために必要なデータと、そのデータを活用したシステムについて紹介します。
また、実際にノーコード・ローコードAI構築ツールDifyを用いてシステムを構築する方法と、その過程で直面したLLM特有の課題について解説します。
飲食店における3つの課題
飲食店の現場では、顧客の注文タイミングや注文量は流動的で、それに伴い在庫も常に変化しています。
そのため、日々の運営では非効率性と見えないコストに悩まされています。
これらは主に「在庫・ロス管理」「売上機会の損失」「労働力の偏り」の3つの領域に集約されます。
在庫管理の非効率性と食材ロス
在庫管理は、単なる食材のストック確認ではなく、キャッシュフロー、顧客満足度、そして利益率を直接左右する要素です。
しかし、多くの飲食店では、この重要な在庫管理が「勘」や「経験」に頼っている現状があり、その日の仕込み量が正確に予測できないため、安全策として多めに発注しがちです。
その結果、特に鮮度が命の食材が期限切れとなり、廃棄コスト(食材ロス)が発生します。
また、ロスが確定するのは閉店後の集計時であり、その日のうちに対策を講じることは不可能です。
売上機会の損失
顧客への追加注文やおすすめの提案は、売上を左右する重要な要素ですが、そのタイミングはスタッフの感覚に依存しています。
一般的には、「飲み物が空になったら声をかける」「食事が終わるのを待つ」といったルールに従うことが多く、顧客が本当に欲しいと思う最適な瞬間を逃しがちです。このタイミングの遅れや見逃しは、客単価を伸ばす機会を失うことにつながります。
また、スタッフがおすすめ提案を行う際も、個人的に好きなメニューや、作り慣れているメニューを提案する傾向があり、ロス削減に貢献できるメニューや利益率の高いメニューが適切に提案されないことがあります。
情報の「リアルタイム性」の欠如
従来のPOSシステムや手書きの帳簿では、情報の鮮度が遅く、意思決定に役立ちません。
多くのデータ分析は、一日の営業が終了し、レジを締めた後に行われます。
このデータは「今日の結果」を示すものであり、「今、どう行動すべきか」というリアルタイムのアクションに活かすことはできません。
そのため、売れ行きの良いメニューの追加の仕込みや、緊急の追加発注を行うこともできず、本来提供できたはずの売上を逃すことになります。
効率化するためにどのようなデータが必要か
こうした課題を解決するための一つの手段として、AIの活用があります。
AIを活用し、従来の「勘」や「経験」を超えた正確な予測と最適な提案を行うためには、質の高いデータが必要です。
今回は、「次の注文予測」「在庫推論」「ロス削減」を実現するために必要なデータを紹介します。
1:注文行動と動向を把握するデータ
1つ目は、顧客が「いつ」「何を」「どれだけ」注文したかを記録したデータです。
このデータにより、AIがパターン認識と予測を行うための基盤を作ることができます。
| 必要なデータ | 目的と活用方法 |
|---|---|
| 注文履歴データ | 過去数週間、数ヶ月にわたるすべての注文日時、メニュー名、数量を記録。これにより、時間帯ごとの需要の変動や季節性を学習します。 |
| テーブル単位の注文データ | あるテーブルが最後に注文した時間と内容を記録。AIは「食後のコーヒーを注文したテーブルが、さらに追加のデザートを注文するまでの平均時間」など、次の注文までの時間予測に活用します。 |
| メニューの組み合わせデータ | 「ビールと唐揚げ」のように、一緒に注文される頻度の高いメニューの組み合わせを把握し、提案ロジックの精度向上に役立てます。 |
2:在庫のリアルタイム推論を可能にするデータ
2つ目は、注文量から消費量を差し引き、常に理論上のリアルタイム在庫を把握するために不可欠なデータです。
このデータにより、AIは物理的な食材の状態とメニュー構成に基づき、より現実に近い残量を推論することができます。
| 必要なデータ | 目的と活用方法 |
|---|---|
| レシピ・構成データ | 各メニューを作るために必要な正確な材料と使用量(例:「ハンバーグ1食には牛ひき肉が150g必要」)。これがAIによる「仮想在庫の差し引き計算」の基礎となります。 |
| 初期在庫データ | 営業開始時点、または発注を受けた時点のすべての食材の物理的な初期在庫量を正確にシステムに入力します。在庫推論の計算の起点となります。 |
| 歩留まり率データ | 食材の調理過程で生じるロス率(例: 鶏肉の筋や骨を取り除く際の廃棄率)。このデータを含めることで、AIは注文が入った際により現実に近い残量を推論できます。 |
| 在庫単位の標準化 | 食材の計測単位(kg, 個, mL)をシステム内で統一します。これにより、レシピのグラム単位での消費と、在庫のパック単位での計測との間で正確な変換が可能になります。 |
3:ロス削減と利益最大化のためのデータ
最後のデータ群は、単なるオペレーションの効率化に留まらず、ロス削減と利益向上といった経営的な判断をAIが行うために不可欠な情報です。
このデータにより、AIは食材の鮮度とメニューの収益性を考慮した上で、最も効果的な提案を導き出すことができます。
| 必要なデータ | 目的と活用方法 |
|---|---|
| 食材の賞味期限データ | 各食材の入荷日と厳密な賞味期限を記録。AIは「今日中に使い切らなければならない食材」を特定し、その食材を使ったメニューの提案を最優先します。 |
| 原価率・利益率データ | 各メニューの原価と販売価格を記録。ロス削減のメニューと並行して、利益率の高いメニューを提案することで、売上だけでなく利益の最大化を目指します。 |
3つのコアデータに基づくAIシステム構築案
次に、「注文行動」「リアルタイム在庫推論」「ロス削減と利益最大化」の3つのコアデータ群を活用して、どのようなシステムを構築することができるのか、また、どのような効率化が図れるのかを見ていきます。
注文行動データを活用したシステム
このシステムは、顧客の注文行動と動向を把握するデータを活用し、客単価を最大化することを目指します。
まず、注文履歴データを分析し、あるテーブルが「食後のコーヒーを注文した後に、追加のデザートを注文するまでの平均時間」など、次に注文が入るタイミングとメニューを予測します。
この予測は、時系列分析と確率モデルによって成り立っています。
機械学習モデルが過去の注文履歴データ(日時、メニュー名、数量)を大量に分析し、時間帯ごとや季節ごとの需要の変動を学習します。
学習をしたAIは「メインディッシュの注文完了から平均15分後にデザートの注文が発生しやすい」といった時間的なパターンや、「Aメニューの後にBメニューが注文される確率」といった連続的なパターンを認識します。
さらに、各テーブルの注文状況と時間経過データを取得すれば、次に注文される可能性が最も高いメニューとその注文が発生する時間帯を予測することができます。
また、過去の注文データから、「ビールと唐揚げ」のように、一緒に注文される頻度が高いメニューの組み合わせ(アソシエーションルール)を洗い出すことで、相性の良い組み合わせを提案することもできます。
テーブル単位の注文データを活用すれば、次の注文が入りやすい最適な瞬間をAIが予測し、スタッフの呼びかけをトリガーすることができます。
これには、テーブル単位の注文データに基づき、「最後にドリンクが注文されてから〇〇分経過」「メインディッシュが配膳されてから〇〇分経過」といった時間経過の変数を算出します。
そして、これらの変数と、過去のデータから導かれた「注文発生確率が高い時間帯」を組み合わせ、「今、スタッフが声をかけるべき度合い」をスコア化します。
スコアが一定のしきい値を超えたとき、スタッフのタブレットやインカムに「テーブルT003、ドリンク追加提案の最適タイミング」といった通知を行い、売上機会の逸失を防ぎます。
リアルタイム在庫推論システム
このシステムは、在庫のリアルタイム推論を可能にするデータを基盤とし、物理的な棚卸し負担を減らし、食材の無駄を排除することを目的とします。
レシピ・構成データを利用することで、注文が入るたびに、全てのメニューの仮想在庫(食数)と食材のグラム単位の残量をリアルタイムで差し引き、推論します。
これにより、実地棚卸しを行うことなく、現実に近い在庫を把握できます。
例えば、「ハンバーグ1食には牛ひき肉が150g必要」といったように、すべてのメニューに必要な食材の正確な消費量をシステムに定義します。
そして、注文が入った瞬間、AIはこの定義に基づき、必要な食材量を現在の初期在庫データまたは実行中の理論残高から差し引きます。
このプロセスをすべての注文で瞬時に繰り返すことで、スタッフが棚卸しをしなくても、食材のグラム単位での正確な残量(理論値)をリアルタイムで推論し、表示するというものです。
また、初期在庫データや歩留まり率データ(調理過程で生じる食材のロス率)を組み合わることで、翌日の予約状況や過去の需要パターンに基づき、廃棄が出ない最適な仕込み量を推奨したり、欠品が起きる前に必要な発注量を自動計算・通知したりすることができます。
ロス・利益最大化のためのリアルタイム提案エージェント
このシステムは、ロス削減と利益最大化のための判断を、リアルタイムで実行することを目的とします。
まずは、食材の賞味期限データやリアルタイム在庫推論システムから得られた残量データに基づき、各食材に「鮮度スコア」や「在庫圧迫度」といった数値を割り当てます。
AIまたはビジネスロジックは、その食材を使うすべてのメニューに、これらの数値を合算・重み付けしてロスリスクスコアとして割り当てます。
このスコアに基づき、メニューをリアルタイムで廃棄リスクの高い順にランキングします。このランキングが、接客時の提案優先順位の基礎となります。
ロスリスクスコアが同じメニューが複数ある場合、AIは次に利益率が高いメニューを優先的に選定するロジックを適用します。
これにより、同じロス削減効果を得るならば、より多くの利益をもたらすメニューを優先的に提案します。
このフィルタリングとランキングを通じて、「今、在庫を減らすべきメニュー」かつ「利益率が高いメニュー」という最適解を一つに絞り込みます。
その結果、「新鮮な食材を使った季節のパスタはいかがですか?」といった提案トークを生成し、スタッフのタブレットに表示します。
これらのシステムが連携することで、日々の運営における非効率性とコストを根本的に解消します。
ロスリスクの高いメニューを提案するエージェントをDifyで構築してみた
今回は、前章で紹介した「ロス・利益最大化のためのリアルタイム提案エージェント」の簡易的なデモシステムを、DifyとGoogle Apps Script(以下、GAS)で構築してみました。
最終的には、スタッフが「今日、一番売るべきメニューは何ですか?その理由も教えてください。」と質問すると、中央データベースに集約されている在庫やロスリスクスコアを参照し、適切なメニューを提案してくれることを目指します。
中央データベース(Google Sheets)とGASによるAPIの構築
今回構築するシステムでは、在庫やロスリスクスコアといったデータが集約されている「中央データベース」の代わりに、Google Sheetsに記載された内容をデータベースとして利用し、Google Apps Script(GAS)を使って外部APIを作成しました。
このAPIは、Difyからリクエストを受けるとGoolge Sheetsのデータを参照し、ロスリスクスコアが最も高いメニューをJSON形式で返します。
今回は、「季節のパスタ」が最もロスリスクの高く、利益率が高いメニューとして設定しています。

このGoogle SheetsとGASを連携させ、GASがGoogle Sheets内の最新のデータにアクセスすることで、ロスリスクが最も高いメニューとして「季節のパスタ」が正常に選定され、JSONデータが返ってきています。

Difyでワークフローの構築
次に、このGAS APIを、DifyのワークフローのHTTPリクエストノードに組み込むことで、GASからのJSONデータを取得します。

そして、コード実行ノードにて、外部から取得したデータをLLMが利用できる形に変換するよう、Pythonコードを書いています。

整形済みのレポートはLLMノードに渡され、ユーザーの元の質問を元に、推奨メニューの情報を自然な会話形式の回答に変換します。


まとめ
本記事では、飲食店の運営における「在庫・ロス管理」「売上機会の損失」「情報のリアルタイム性の欠如」という課題に焦点を当て、AIの可能性について紹介してきました。
また、Difyを活用したワークフローでは、ロスリスクの高いメニューを提案をしてくれるエージェントを構築しました。
今後も、その他の課題を解決するエージェントについても紹介していきたいと思います。
無料メルマガ会員に登録しませんか?

現在、デジタルをビジネスに取り込むことで生まれる価値について研究中。IoTに関する様々な情報を取材し、皆様にお届けいたします。

