歷史專案,保留程式、研究模型與既有結果供回顧參考。本次整理未啟動服務、爬取評論或呼叫雲端 API。
整合 React 地圖介面、Google Maps 餐廳評論、LoRA 問答分析、Vertex AI Gemini 摘要與 Firestore 儲存的美食探索應用。
| 路徑 | 用途 |
|---|---|
| restaurant-app/ | React 18 / Vite 6 前端,提供地圖與餐廳搜尋介面 |
| restaurant-app/package.json | 前端 dev、build、lint、preview 指令 |
| scraper/app.py | Flask API、Selenium 評論擷取、LoRA 問答及 Gemini 分析、Firestore 存取 |
| scraper/pyproject.toml | Python ^3.12 的 Poetry 依賴宣告,另有 poetry.lock 與 requirements.txt |
| restaurant-app/server/ | 另存的 Express 附近餐廳查詢服務,程式標註計畫移往 Python;不代表兩個後端都需同時啟動 |
| scraper/lora_qa_model_new/ | 保存的 LoRA adapter 與訓練相關檔案 |
| results/ | 已保存的分析結果 |
- 需要另行設定 Google Maps API、Google Cloud 服務帳戶、Firestore 與 Vertex AI;雲端專案設定仍含原開發環境的固定值。
- Flask 讀取
VITE_GOOGLE_MAPS_API_KEY與GOOGLE_APPLICATION_CREDENTIALS環境變數;後者是本機服務帳戶憑證檔案路徑。真實憑證不應提交至 repo。 - Gemini 呼叫指定
gemini-1.5-pro-002;本次未驗證該模型與現行雲端 API 的可用性。 - 啟動程式會依 adapter 設定載入基底問答模型,再載入 LoRA adapter;repo 內的 adapter 不等同完整基底模型。
- Selenium 依賴 Chrome 與 ChromeDriver,現行 Flask 程式使用 webdriver-manager;保存的 Windows driver 不代表能配合目前瀏覽器。
- 後端路徑以 repo 根目錄為基準,例如
scraper/lora_qa_model_new/lora_qa_model_new。若重啟研究,需確認工作目錄、前端 API 位址與後端埠一致。 scraper/app.py直接啟動時使用 Flask debug 模式與 5000 埠;Express 預設使用 5001 埠。這些是原始設定,不是生產部署方案。- 未重新驗證 Google Maps 頁面結構、評論筆數、模型效果、前端建置或完整環境安裝。
前端 scripts:
cd restaurant-app
npm install
npm run dev
# 其他:npm run build、npm run lint、npm run previewPython 依賴與外部設定準備完成後,原始 Flask 入口從 repo 根目錄執行:
python scraper/app.py以上僅紀錄入口。完整重現仍需補齊雲端資源、基底模型、瀏覽器環境與設定,並在獨立環境驗證。
保留原始程式、模型 adapter、結果與依賴檔。本次僅整理說明,未替換雲端模型或改動功能。repo 根目錄尚無專案授權文件,本次未自行指定新授權。
以下保留當年的功能定位與設計敘述;其中「最新 100 筆評論」等敘述未在本次重新驗證。
What2eat 是一個幫助用戶快速了解餐廳評論和探索附近美食的應用程式,專為解決繁忙生活中的美食決策困難而設計。
-
快速評論搜尋
- 使用 Google Maps API,支援用戶輸入餐廳名稱或選擇地圖上的餐廳。
- 爬取 Google 上該餐廳的最新 100 筆評論。
-
智能評論分析
- 後端透過 LoRA 模型(小型 LLM)對評論進行優缺點分析,並篩選出推薦的食物。
- 使用 Vertex AI 的 Gemini(大型 LLM)進一步整理數據上述產生的優缺點,進行二次篩選,生成簡短精確的優缺點和推薦食物。
-
地圖定位與餐廳探索
- 系統會自動偵測用戶所在位置,並以地圖方式呈現附近的熱門餐廳。
- 點擊地圖上的餐廳標記,即可快速檢視分析結果。
-
清晰的總結評價
- 提供清晰的優缺點清單與簡短總評,讓用戶能快速掌握餐廳狀況。
- 前端:使用 React 開發,用於實現互動式用戶介面。
- 後端:基於 Python Flask,負責處理爬蟲與評論分析邏輯。
- 資料庫:採用 Firestore 儲存評論的原始數據與分析結果。
- API 整合:
- Google Maps API:定位與餐廳數據顯示。
- Vertex AI Gemini:生成精簡評論分析。
- 個人使用:快速決定想去的餐廳,了解餐廳的優缺點與推薦菜色。
- 餐廳經營者:獲取用戶對餐廳的評論分析,進一步改善經營策略。