AdSense

2026/10/28

AI 產品經理學習營 學習日誌 產品構想三 GroupEats

最近突然想到一個多人聚餐的問題,每次要約幾個朋友吃飯其實都很麻煩,要先問大家哪一天有空,再來要決定去哪裡吃,還要考慮每個人的飲食習慣、預算、交通方式等。


Co-created with ChatGPT。

例如有人吃素、有人不吃牛,有人從桃園搭火車過去,有人開車需要停車位,有人覺得餐廳離捷運站走10分鐘沒問題,有人覺得太遠。好不容易時間喬好了,選了一家餐廳,又可能有人覺得太貴或不想吃那種類型,幹!超煩。

通常這些事情就是在LINE群組裡面大家一句一句問,最後由其中一個倒楣的傢伙(主揪)整理。

我就在想,這件事是不是可以讓AI來做?

一開始想得很簡單,就是讓每個人回答自己的條件,例如可以聚餐的時間、從哪裡出發、搭什麼交通工具、預算多少、有什麼不能吃、比較想吃什麼類型的餐廳等,最後把這些條件整理起來,再推薦大家都可以接受的餐廳。

但後來想到一個問題,如果所有人的條件根本沒有交集怎麼辦?

例如A只有星期六可以,B星期六晚上可以,C星期六晚上也可以,但是D星期六完全不行,那系統不能只是回答「沒有符合條件的方案」,不然跟用Google表單統計完發現大家時間對不上也沒什麼差別。

這時候AI比較有用的地方,可能不是單純幫大家填表格,而是繼續協調。

例如D原本回答星期六不行,AI可以再問D:「星期六是整天都不行,還是晚上某個時間以後可以?」如果D回答晚上8點以後可以,那原本沒有交集的條件可能又出現交集。

或是某個人原本回答預算600元以下,但其他所有條件都已經符合,只剩下找到的餐廳大約要800元,AI就可以只去問這個人:「如果其他條件都符合,預算提高到800元可以接受嗎?」

這樣就不用每次條件改變,又叫所有人重新回答一次。

後來和AI討論才知道,這類問題其實叫做GDSS(Group Decision Support System,群體決策支援系統),以前就已經有這類研究,只是現在有LLM後,可以直接用自然語言跟每個人溝通,這件事變得比較容易做。

   ┌───┐      ┌────┐                                                    
   │ A ├─────►┤ AI ├───┐                                                
   └───┘      └────┘   │                                                
   ┌───┐      ┌────┐   │                                                
   │ B ├─────►│ AI ├───┤                                                
   └───┘      └────┘   │                                                
   ┌───┐      ┌────┐   │     ┌─────────────┐     ┌────────────────────┐ 
   │ C ├─────►│ AI ├───┼────►│ Group State ├────►│ AI Decision Engine │ 
   └───┘      └────┘   │     └─────────────┘     └────────────────────┘ 
   ┌───┐      ┌────┐   │                                                
   │ D ├─────►│ AI ├───┤                                                
   └───┘      └────┘   │                                                
   ┌───┐      ┌────┐   │                                                
   │ E ├─────►│ AI ├───┘                                                
   └───┘      └────┘                                                    

我目前想像的使用流程是,首先由其中一個人建立一個新的聚會,例如「11月兄弟聚餐」,系統產生這次聚會專屬的QR Code或連結,建立者再把連結丟到LINE群組給要參加的人。

每個人點進去後,不是在同一個聊天室裡面七嘴八舌,而是各自跟AI回答問題。

例如:

AI:你哪些日期可以?
A:11/7、11/14都可以,但14號最好。
AI:你會從哪裡出發?
A:桃園搭火車。
AI:那餐廳離火車站或捷運站多遠你可以接受?
A:走10分鐘左右吧。
AI:有不能吃的東西嗎?
A:沒有。

其他人也各自回答自己的條件,系統再把每個人的回答整理到這一次聚會共同的Group State裡面。

不過大家不可能同一時間回答,所以這個流程應該是非同步的。

例如建立聚會時設定第一輪回答期限,星期五晚上以前大家回答完,過程中可以看到目前5個人有3個人已經回答,但先不用急著要求任何人改變條件。

等全部的人回答完,或是回答時間截止後,再開始計算大家的條件是否有共同解。

如果有,就繼續找符合條件的餐廳。

如果沒有,就找出到底是哪幾個條件互相衝突,再開始第二輪詢問,而且只問真的需要調整條件的人。

所以目前想像的流程大概是:

               ┌─────────────────────────────┐
               │    主揪建立聚會 (Session)    │
               └──────────────┬──────────────┘
                              │
                              ▼
               ┌─────────────────────────────┐
               │    產生 QR Code / 邀請連結   │
               └──────────────┬──────────────┘
                              │
                              ▼
               ┌────────────────────────────┐
               │      參與者陸續點擊加入      │
               └──────────────┬─────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │ Round 1:AI 分別非同步蒐集    │
               │   每個人的條件 (Hard/Soft)    │
               └──────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │      建立 Group State        │
               └──────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │ 所有人回答完成 或 時間截止     │
               └──────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │   GDSS 共識決策引擎計算:      │
               │     是否存在共同方案?         │
               └──────────────┬───────────────┘
                              │
              ┌───────────────┴───────────────┐
              │                               │
        【有共同方案】                  【沒有共同方案】
              │                               │
              │                               ▼
              │                ┌──────────────────────────────┐
              │                │   分析並找出主要衝突條件       │
              │                └──────────────┬───────────────┘
              │                               │
              │                               ▼
              │                ┌──────────────────────────────┐
              │                │ Round 2:向特定參與者發起      │
              │                │   針對性追問 (條件放寬)        │
              │                └──────────────┬───────────────┘
              │                               │
              │                               ▼
              │                ┌──────────────────────────────┐
              │                │     更新 Group State         │
              │                └──────────────┬───────────────┘
              │                               │
              │                               ▼
              │                ┌──────────────────────────────┐
              │                │   重新計算群體可行方案         │
              │                └──────────────┬───────────────┘
              │                               │
              └───────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │ 產生 1 家主要推薦與備選餐廳    │
               └──────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │     大家決定最終聚餐方案       │
               └──────────────┬───────────────┘
                              │
                              ▼
               ┌──────────────────────────────┐
               │   一鍵生成聚餐資訊卡與連結     │
               └──────────────────────────────┘

這邊還有一個很重要的區別,就是「不能」跟「不喜歡」不能當成同一件事情。

例如某個人星期六要上班,那星期六不能參加就是不能改的條件;但某個人只是比較不想吃日本料理,如果最後日本料理是最符合其他條件的方案,那就還有協調空間。

所以系統裡面應該要把條件分成Hard Constraint(硬性限制)和Soft Preference(軟性偏好)。

Hard Constraint是不能違反的,例如真的沒空、食物過敏等。

Soft Preference則是比較希望怎樣,但必要時可以調整,例如比較想吃燒肉、希望預算600元以下、希望離捷運站近一點等。

這也是我覺得AI在這個產品裡面比較有價值的地方,因為一般表單很容易把這些東西都變成固定欄位,但人在實際回答問題時常常不是這麼明確。

例如:「遠一點沒差,但不要超過半小時」、「14號最好,但21號也不是不行」、「大概600元,如果真的很好吃800也可以」。

AI可以先理解這些自然語言,再把它整理成系統可以處理的條件,如果不確定就再問一次。

餐廳推薦這邊目前反而想要刻意限縮。

一開始有想到是不是可以直接幫使用者訂位,甚至跟餐廳談導流抽成,但仔細想就發現這件事情麻煩死了。

因為很多餐廳根本沒有線上訂位系統,而且「某一家餐廳星期六晚上6點半還有沒有5個人的位子」是一個即時變動的資訊。如果要自己處理,就會牽涉餐廳合作、訂位、取消、No-show、對帳等一堆問題。

所以目前先不碰。

GroupEats只負責幫大家把條件喬好,然後推薦符合條件的餐廳。至於餐廳有沒有位置,由主揪自己打電話確認。

如果第一順位餐廳客滿,就回來標記這個方案不可行,再看第二順位。

這樣產品的邊界會乾淨很多。

商業模式目前也只是個假設。

因為這種東西如果跟餐廳談CPA導流抽成,還是會碰到餐廳合作與對帳的問題,感覺很麻煩。

另一個比較單純的方式可能是直接讓使用者付費。

例如第一次或前幾次免費使用,之後建立新的聚會需要花15~30元,或是先儲值再扣使用次數。被邀請進來回答問題的人則完全免費,只向建立聚會的主揪收費。

但這邊真正需要驗證的不是到底收15元還是30元,而是「有人願不願意為了少掉這些聚餐協調的麻煩付任何錢?」

因為最強的競爭對手其實就是免費的LINE群組。

所以這個產品目前有沒有辦法賺錢,我也不知道。

另外這個構想目前連MVP都還不急著做,甚至可以先全部手工跑一次。

找4~8個人,讓每個人分別回答聚餐條件,我人工把這些資訊丟給AI整理,看看第一輪會不會出現衝突,再模擬第二輪詢問,最後看看是不是真的可以比大家自己在LINE裡面討論更省事。

如果連全部人工幫忙處理,都沒有比大家自己在LINE裡面喊一句「星期六晚上台北車站吃火鍋有人不行嗎?」來得有效率,那可能根本就不需要做這個產品。

反過來,如果真的會碰到很多「沒有交集,但是稍微問一下其中一兩個人就能解開」的情況,那這個多人協調的流程才可能是這個產品真正有價值的地方。

目前這個構想還很粗糙,尤其實際使用流程還沒有完全理順,我腦中雖然已經會不自覺開始想AI、Group State和決策引擎要怎麼串,但現在先不想實作問題。

先把自己當成使用者,從「我今天想約幾個人吃飯」開始,把整個流程實際走一次再說。

沒有留言:

AdSense