Skip to content

FallPrediction/must-try-dishes

Repository files navigation

簡介

一個練習 RAG 的專案。根據使用者提出的問題,找出並簡短介紹三間店的餐點

步驟

import_opensearch

從 Foodpanda 以下幾個分類各抓 5 間餐廳,取得菜單的 json:

  1. 飲料
  2. 甜點
  3. 便當
  4. 燒烤
  5. 咖啡
  6. 早餐

抓出需要的資料存入 OpenSearch

  1. 店家名稱
  2. 店家介紹
  3. 店家分類(有多個)
  4. 餐點名稱
  5. 餐點介紹
  6. 店家名稱、分類、餐點名稱、介紹 embedding vector

requirement_parser

根據使用者提出的問題,抓出關鍵字

query

使用 requirement_parser 抓出關鍵字,然後組出關鍵字搜尋和語意搜尋的 DSL,RRF 重排後,指定結果筆數 K,再丟給 LLM 選出三間並介紹餐點

範例

python query.py --query="下午茶喝什麼飲料好?仙草不錯,大概 50 元左右"

輸出

以下是符合您需求的3间店及推荐餐点:

1. **大茗本位製茶堂 (三重自強店)**
   **仙草嫩奶**
   添加3%奶精,甜而不腻,搭配無糖/微糖選項,總糖量90克,熱量362大卡,適合喜歡濃郁仙草味的下午茶。

2. **COMEBUY (台北中正南陽店)**
   **仙草凍奶茶**
   以滑Q仙草凍搭配紅茶甜潤與牛奶香醇的招牌奶茶,甜而不膩,總糖量36.9克,熱量487大卡,風味清爽。

3. **貳虎 OFF TEA (中山南西店)**
   **老派雙料奶茶**
   夏夜東紅調和奶精,加入粉角與菜燕,口感層次豐富,甜而不膩,適合喜歡傳統茶飲風格的下午茶選擇。

每店餐點均在50元內,並突出仙草特色,搭配不同風味與甜度選擇。

測試

test 1

python query.py --query="想吃甜的"

cuisines='甜點' keywords=['蛋糕', '冰淇淋', '布丁', '馬卡龍', '甜點'] price_min=None price_max=None time_period=None

搜尋結果:

keyword hits:
1. BAC (站前凱撒門市) | score=11.4581
2. 橘村屋蛋糕 (三重正義門市) | score=11.2318
3. 迷上甜點 (中山店) | score=9.9641
4. 兩良紅茶 (新北三重店) | score=6.5653
5. 甘記燒仙草飲料店 | score=5.4310
6. 豆花莊 | score=5.2050

semantic hits:
1. 豆花莊 | score=0.8562
2. 早點嚐鮮 | score=0.8516
3. 甘記燒仙草飲料店 | score=0.8368
4. BAC (站前凱撒門市) | score=0.8360
5. COFFEE MOON | score=0.8310
6. 迷上甜點 (中山店) | score=0.8299

RRF 重排:

1. BAC (站前凱撒門市) | score=0.0320
2. 豆花莊 | score=0.0315
3. 甘記燒仙草飲料店 | score=0.0313
4. 迷上甜點 (中山店) | score=0.0310
5. 橘村屋蛋糕 (三重正義門市) | score=0.0161
6. 早點嚐鮮 | score=0.0161

加權重排,keyword 0.8,semantic 0.2:

1. BAC (站前凱撒門市) | score=0.8461
2. 橘村屋蛋糕 (三重正義門市) | score=0.7711
3. 迷上甜點 (中山店) | score=0.6089
4. 豆花莊 | score=0.2000
5. 兩良紅茶 (新北三重店) | score=0.1740
6. 早點嚐鮮 | score=0.1649

test2

python query.py --query="下午茶喝什麼飲料好?仙草不錯,大概 50 元左右"

cuisines='飲料' keywords=['仙草'] price_min=50 price_max=None time_period='下午'

搜尋結果:

keyword hits:
1. 甘記燒仙草飲料店 | score=9.9061
2. 豆花莊 | score=5.1424
3. 兩良紅茶 (新北三重店) | score=5.1424
4. COMEBUY (台北中正南陽店) | score=5.1424
5. 大苑子 (三重五華店) | score=4.1821
6. 大茗本位製茶堂 (三重自強店) | score=3.7020

semantic hits:
1. 甘記燒仙草飲料店 | score=0.8052
2. 豆花莊 | score=0.7701
3. 兩良紅茶 (新北三重店) | score=0.7613
4. 蝦の窩 | score=0.7525
5. 嶌日咖啡 | score=0.7485
6. 大苑子 (三重五華店) | score=0.7420

RRF 重排:

1. 甘記燒仙草飲料店 | score=0.0328
2. 豆花莊 | score=0.0323
3. 兩良紅茶 (新北三重店) | score=0.0317
4. 大苑子 (三重五華店) | score=0.0305
5. COMEBUY (台北中正南陽店) | score=0.0156
6. 蝦の窩 | score=0.0156

加權重排,keyword 0.8,semantic 0.2:

1. 甘記燒仙草飲料店 | score=1.0000
2. 豆花莊 | score=0.2745
3. 兩良紅茶 (新北三重店) | score=0.2469
4. COMEBUY (台北中正南陽店) | score=0.1857
5. 大苑子 (三重五華店) | score=0.0619
6. 蝦の窩 | score=0.0330

test 3

python query.py --query="好吃便當"

cuisines='便當' keywords=['好吃', '便當', '美味', '香', '好'] price_min=None price_max=None time_period=None

搜尋結果:

keyword hits:
1. 大慶便當 | score=10.5156
2. 一級排骨 | score=8.4849
3. 牛小花韓食肉肉便當店 | score=8.0318
4. 京城燒臘舖 (台北民生店) | score=6.2627
5. Dao穗輕食 | score=5.5856
6. 劉家現烤玉米 (寧夏夜市) | score=4.5640

semantic hits:
1. 大慶便當 | score=0.8677
2. 一級排骨 | score=0.8304
3. 早點嚐鮮 | score=0.8275
4. Dao穗輕食 | score=0.8274
5. 艋舺人清粥小菜 | score=0.8190
6. Q炭炸烤屋 | score=0.8177

RRF 重排:

1. 大慶便當 | score=0.0328
2. 一級排骨 | score=0.0323
3. Dao穗輕食 | score=0.0310
4. 牛小花韓食肉肉便當店 | score=0.0159
5. 早點嚐鮮 | score=0.0159
6. 京城燒臘舖 (台北民生店) | score=0.0156

加權重排,keyword 0.8,semantic 0.2:

1. 大慶便當 | score=1.0000
2. 一級排骨 | score=0.5780
3. 牛小花韓食肉肉便當店 | score=0.4661
4. 京城燒臘舖 (台北民生店) | score=0.2283
5. Dao穗輕食 | score=0.1760
6. 早點嚐鮮 | score=0.0391

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors