2025-06-14 無 DB 的 MVP → 加 DB 的進化版

2025-06-14 無 DB 的 MVP → 加 DB 的進化版

把之前設計的 「無 DB 的 MVP → 加 DB 的進化版」學習路線圖,整理成一步步、附上簡稱翻譯的版本,方便你理解每個步驟的角色與目的。每個步驟都非常小、可立即驗收。


心靈算命網站學習路線圖(附簡稱翻譯)

總體概念

  • **MVP (Minimum Viable Product,最小可行產品)**:先做最簡單能跑通的功能,不追求完整。
  • **MCP (Model Context Protocol,模型上下文協定)**:你的 Mac 上的中介 server,用來連接多個 AI 服務。
  • **DB (Database,資料庫)**:存使用者問答歷史、會員資料等。
  • **API (Application Programming Interface,應用程式介面)**:前端與 MCP server、AI 服務之間的通訊介面。

階段 A — 無 DB 的 MVP(快速驗證 AI 互動流程)

目標:前端問問題 → MCP server → AI 服務(OpenAI / DeepSeek) → 回前端。不存資料

Step A1 — 建立 MCP Gateway

  • 功能:在 Mac 上起一個 Node.js server,接收前端請求,轉給不同 AI provider。

  • 驗收:

    • /health 回傳 MCP 狀態。
    • /api/chatprovider=openaiprovider=deepseek 能回傳 mock 或實際回答。
  • 簡稱翻譯:

    • MCP:中介 server
    • AI provider:AI 服務提供者(OpenAI / DeepSeek)
  • 操作:前面我給你的 gateway.mjs 指令與測試。

Step A2 — 前端最小測試頁面

  • 功能:建立 Vite + Vue 前端,能輸入問題並呼叫 MCP /api/chat,顯示回覆。

  • 驗收:輸入問題 → 點送出 → 顯示回覆。

  • 簡稱翻譯:

    • Vite:前端開發工具
    • Vue:前端框架

Step A3 — MCP Gateway 常駐

  • 功能:使用 pm2 或類似工具,讓 MCP 在 Mac 上常駐,避免關掉終端就停止。
  • 驗收:關閉終端 → MCP 仍可接收 API 請求。

階段 B — 加 DB 的進化版(保存歷史、會員系統)

目標:讓使用者問答可以保存到資料庫,方便後續擴展統計、會員、課金等功能。

Step B1 — 在 Windows 用 Docker 啟動 MySQL

  • 功能:

    • Docker:容器化工具,隔離環境、快速部署 DB。
    • MySQL:DB,用於存問答紀錄。
  • 驗收:MySQL container 正常啟動,能連線。

  • 簡稱翻譯:

    • Docker:容器化部署工具
    • MySQL:關聯式資料庫

Step B2 — MCP Gateway 寫入 DB

  • 功能:將每次問答寫入 DB(使用 mysql2 或 ORM),可記錄:

    • 使用者 ID
    • 提問
    • 回答
    • Provider
    • 時間
  • 驗收:

    • 發送問題 → AI 回答 → DB 有對應紀錄。

Step B3 — 前端顯示歷史

  • 功能:前端可查詢歷史對話。

  • 驗收:輸入會員帳號 → 顯示過去問答紀錄。

  • 簡稱翻譯:

    • JWT (JSON Web Token,網頁驗證用令牌):可選,用於會員登入驗證。

資源分配建議

電腦 角色 功能
Mac A(舊) Documentation / 技術文件 編寫設計文檔、流程圖、Git 操作
Mac B(舊) MCP Gateway / 中介 Node.js MCP server,轉發請求給 AI,mock 測試或真實 API 呼叫
Lenovo Windows 11 主開發機 + DB Docker MySQL、前端開發、整合測試、可能放本地 DB 和 CI/CD

實務小提醒

  1. API keys 只放 MCP server 的 .env,前端不要放
  2. Mac B 性能有限 → 只做路由/adapter,不跑大型模型
  3. LAN 測試 → 先不要開網路端口,正式上線再考慮 ngrok 或 port-forward
  4. 日誌與排錯 → 開發期可用 console.log,之後用 winston 寫檔
  5. 驗收逐步做 → 完成 A1 → A2 → A3,再進入 B1 → B2 → B3

我可以幫你把 Step A2(最小前端 Ask.vue) 做成 可直接貼上執行的完整檔案,包括呼叫 MCP、顯示回覆、mock 測試的方式。

你希望我現在直接給你 Step A2 的程式碼嗎?