第一階段:專案初始化
完成項目
1. 專案架構建立
- 建立三個獨立的專案資料夾:
backend/
- API 伺服器admin-dashboard/
- 管理介面chat-widget/
- 聊天小工具
2. 後端設定 (backend/)
技術選擇:Node.js + Express + TypeScript
安裝的套件:
- 基礎:express, cors, dotenv
- 認證:jsonwebtoken, bcrypt
- 資料庫:pg (PostgreSQL)
- 檔案處理:multer, pdf-parse, mammoth
- AI:@anthropic-ai/sdk
專案結構:
src/
├── routes/ # API 路由
├── services/ # 業務邏輯
├── models/ # 資料模型
├── middleware/ # 中介軟體
└── utils/ # 工具函數
資料庫設計:
- 建立完整的 PostgreSQL schema
- 包含 users、documents、conversations 等表格
- 支援全文搜尋功能
- 提供測試用種子資料
3. 管理介面設定 (admin-dashboard/)
- 技術選擇:Vue 3 + TypeScript + Vite
- UI 框架:Element Plus
- 狀態管理:Pinia
- 路由:Vue Router 4
- 開發 Port:8080
4. 聊天小工具設定 (chat-widget/)
- 技術選擇:Vue 3 + TypeScript + Vite
- 建構方式:配置為 library 模式,產出單一 JS 檔案
- 開發 Port:8081
技術決策記錄
為什麼選擇 TypeScript
- 提供類型安全,減少執行時錯誤
- 更好的 IDE 支援和程式碼提示
- 適合團隊協作
為什麼選擇 PostgreSQL
- 支援 JSON 資料類型(適合儲存對話記錄)
- 內建全文搜尋功能
- 成熟穩定,效能優異
為什麼選擇 Element Plus
- 完整的企業級 UI 元件
- 良好的 Vue 3 支援
- 中文文檔友善
遇到的問題與解決方案
路徑問題
問題:使用相對路徑導致 cd 命令失敗
解決:改用絕對路徑,並正確處理空格
Git 配置
問題:CLAUDE.md 檔案衝突
解決:移除了 CLAUDE.md 檔案,配置了適當的 .gitignore
Git Commit
- Commit ID:
b5ce227
- Message: feat: 初始化 AI 客服系統專案架構
- 變更: 46 個檔案變更,7431 行新增
測試檢查清單
- 後端伺服器可以啟動 (npm run dev)
- 管理介面可以啟動 (npm run dev)
- 聊天小工具可以啟動 (npm run dev)
- 資料庫 schema 可以執行
- 環境變數配置正確