FoodAI — 飲食店専用AIエージェントプラットフォーム
飲食店オーナー・店長が抱える「繰り返し業務」をAIエージェントが代替する。
UIはエージェントそのものであり、従来SaaSのような複雑な画面操作は不要。
| 課題 | 解決するエージェント |
|---|---|
| LINE予約の返信漏れ・手動対応 | LINE予約エージェント |
| シフト作成に週2時間かかる | シフト繁忙予測エージェント |
| 口コミ返信・MEO投稿が滞る | MEOエージェント(別リポジトリ) |
LINE公式アカウントに届く予約・問い合わせメッセージをAIが自動処理する。
顧客がLINEでメッセージ送信
↓
Claude APIで意図分類(予約/変更/キャンセル/質問/その他)
↓
[予約の場合]
必要情報が揃っているか確認
→ 不足情報を会話で収集
→ 空き確認(予約台帳DB参照)
→ 予約確定 → Supabaseに保存
→ 確認メッセージをLINEで返信
↓
[質問の場合]
店舗情報DBを参照してRAG回答
-- 予約テーブル
reservations (
id uuid PRIMARY KEY,
shop_id uuid NOT NULL,
name text NOT NULL, -- 予約者名
phone text,
line_user_id text,
date date NOT NULL,
time time NOT NULL,
party_size int NOT NULL,
status text DEFAULT 'confirmed', -- confirmed / cancelled / no_show
note text,
created_at timestamptz DEFAULT now()
)
-- 店舗設定テーブル
shops (
id uuid PRIMARY KEY,
name text NOT NULL,
line_channel_id text,
line_channel_secret text,
opening_hours jsonb,
faq jsonb, -- よくある質問と回答
created_at timestamptz DEFAULT now()
)
予約データ・曜日・天気・地域イベント情報を組み合わせて来客数を予測し、 最適なシフトを自動提案。LINEでスタッフと調整まで完結。
予測スコア =
基準来客数(過去同曜日・同時間帯の平均)
× 天気係数(晴れ: 1.1 / 雨: 0.85)
× イベント係数(近隣イベントあり: 1.3)
× 季節係数
+ 予約済み確定人数
毎週月曜AM9時に自動起動
↓
翌週の予約データ集計
↓
天気API・イベントAPIで外部要因取得
↓
Claude APIで来客予測・シフト必要人数算出
↓
スタッフのLINEに希望収集メッセージ送信
↓
希望収集期限(水曜AM)に自動集計
↓
Claude APIでシフト最適化
↓
オーナーに確認依頼 → 承認 → スタッフに通知
-- スタッフテーブル
staff (
id uuid PRIMARY KEY,
shop_id uuid NOT NULL,
name text NOT NULL,
line_user_id text,
role text, -- hall / kitchen / manager
hourly_wage int,
created_at timestamptz DEFAULT now()
)
-- シフトテーブル
shifts (
id uuid PRIMARY KEY,
shop_id uuid NOT NULL,
staff_id uuid NOT NULL,
date date NOT NULL,
start_time time NOT NULL,
end_time time NOT NULL,
status text DEFAULT 'draft', -- draft / confirmed
created_at timestamptz DEFAULT now()
)
-- 繁忙予測テーブル
demand_forecasts (
id uuid PRIMARY KEY,
shop_id uuid NOT NULL,
date date NOT NULL,
hour int NOT NULL,
predicted_guests int,
actual_guests int,
weather text,
created_at timestamptz DEFAULT now()
)
┌─────────────────────────────────────────────────────┐
│ フロントエンド │
│ ┌──────────────┐ ┌──────────────────────────────┐ │
│ │ LP (静的HTML) │ │ 管理ダッシュボード (SPA) │ │
│ └──────────────┘ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
↕ HTTPS
┌─────────────────────────────────────────────────────┐
│ バックエンド (Supabase) │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Edge Functions │ │ PostgreSQL │ │ Auth │ │
│ │ (AIエージェント)│ │ (DB) │ │ (OAuth) │ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
└─────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────┐
│ 外部サービス │
│ Claude API │ LINE Messaging API │ 天気API │
└─────────────────────────────────────────────────────┘
| レイヤー | 技術 | 理由 |
|---|---|---|
| フロントエンド | HTML/CSS/JS(SPA) | 軽量・高速・デプロイ容易 |
| バックエンド | Supabase Edge Functions | サーバーレス・低コスト |
| DB | Supabase PostgreSQL | RLS・リアルタイム対応 |
| AI | Claude API (claude-sonnet) | 日本語精度・ツール使用 |
| 認証 | Supabase Auth(Googleログイン) | 飲食店オーナー向け簡易性 |
| ホスティング | GitHub Pages(LP)/ Vercel(App) | |
| LINE連携 | LINE Messaging API | Webhook受信 |
functions/
├── line-webhook/ # LINEからのWebhook受信・処理
├── reservation-agent/ # 予約AIエージェントのコア処理
├── shift-planner/ # シフト生成・最適化
├── demand-forecast/ # 繁忙予測の実行
└── shift-notify/ # LINE一斉通知送信
| プラン | 月額 | 対象エージェント | 予約件数上限 |
|---|---|---|---|
| Free | 無料 | LINE予約のみ | 50件/月 |
| Standard | ¥5,500 | LINE予約+シフト予測 | 500件/月 |
| Premium | ¥9,800 | 全エージェント(MEO含む) | 無制限 |
X-Line-Signature 検証必須shop_id によるデータ分離foodai/
├── README.md
├── docs/
│ └── DESIGN.md # この設計書
├── lp/
│ └── index.html # ランディングページ
├── app/
│ └── index.html # 管理ダッシュボード(デモ)
└── supabase/
├── migrations/
│ └── 001_initial.sql
└── functions/
├── line-webhook/
├── reservation-agent/
└── shift-planner/